Технический форум
Вернуться   Технический форум > Программирование > Форум программистов


Ответ
 
Опции темы Опции просмотра
Старый 10.06.2011, 01:48   #11 (permalink)
bastilio
Member
 
Регистрация: 30.05.2011
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

а можете еще помочь,мне надо сделать первую процедуру для нахождения А и Б,с параметрами,а то она без них.
и вторую процедуру сделать еще для МАХ погрешности,а то есть только для минимальной, и в конце,что бы она выводила,эти 2 погрешности на экран))
bastilio вне форума   Ответить с цитированием

Старый 10.06.2011, 01:48
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

На форуме ранее создавались топики которые так или иначе похожи на ваш

Помогите разобраться
Помогите, пожалуйста, разобраться в схеме
Помогите, пожалуйста, разобраться с выбором и совместимостью железа

Старый 10.06.2011, 10:02   #12 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от bastilio Посмотреть сообщение
да нет не сам,я просто пробую вникнуть)
Ну что ж - уже ценно!
Цитата:
Сообщение от bastilio Посмотреть сообщение
а можете еще помочь,мне надо сделать первую процедуру для нахождения А и Б,с параметрами,а то она без них.
и вторую процедуру сделать еще для МАХ погрешности,а то есть только для минимальной, и в конце,что бы она выводила,эти 2 погрешности на экран))
Как говорил незабвенный Василь Иваныч: "Могу, Петька, могу...". Только уж, извините, для максимальной и минимальной погрешностей заморачиваться с процедурой не стал - просто добавил вычисление и вывод этих параметров.
И еще - на будущее. Делать ли процедуру с параметрами или без таковых - это Ваше, как программиста, право решать. Делайте так, как Вам удобнее, благо Паскаль тут предоставляет широкие возможности. А если препод требует, чтобы непременно были параметры, то таких преподов надо в раннем детстве в ведре топить. Чтобы из них не вырастали преподы.
Код:
program a1;
uses graph, crt;
const
 n=9;
Type
 Ar=Array[1..n] of real;
const
 Q:Ar=(14.0, 20.5, 35.3, 45.0, 53.8, 62.0, 68.3, 75.2, 82.0);
 H:Ar=(3.05, 4.90, 10.4, 15.3, 20.1, 25.4, 29.8, 34.6, 40.0);
var
 Hp,dH,x,y:Ar;
 i,j,grDriver,grMode:integer;
 a,b,dH_min,dH_max:real;
 s:String;

procedure sum_count(Xsc,Ysc:Ar; var Asc:Real; var Bsc:Real);
var s1,s2,s3,s4: real;
begin
 s1:=0;
 s2:=0;
 s3:=0;
 s4:=0;
 for i:=1 to n do
  begin
   s1:=s1+Ysc[i];
   s2:=s2+Xsc[i];
   s3:=s3+Xsc[i]*Ysc[i];
   s4:=s4+sqr(Xsc[i]);
  end;
 Asc:=(s1*s2-n*s3)/(sqr(s2)-n*s4);
 Bsc:=(s3*s2-s4*s1)/(sqr(s2)-n*s4);
end;

function hr(z:real):real;
var m:real;
begin
 m:=a*sqr(z)+b*z;
 hr:=m;
end;

BEGIN
 clrscr;
 for i:=1 to n do
  begin
   x[i]:=q[i];
   y[i]:=h[i]/q[i];
  end;
 sum_count(x,y,a,b);
 dH_min:=1;
 dH_max:=0;
 for i:=1 to n do
  begin
   Hp[i]:=hr(q[i]);
   dH[i]:=abs(Hp[i]-h[i])/abs(h[i]);
   If dH[i]<dH_min then dH_min:=dH[i];
   If dH[i]>dH_max then dH_max:=dH[i];
  end;

 textcolor(lightred);
 writeln('Rezultati vi4islenii:');
 writeln;
 textcolor(white);
 writeln(' a=',a:8:5);
 writeln(' b=',b:8:5);
 writeln;
 writeln(' |------|-----|---------|---------|---------|');
 writeln(' |  n   | Qi  |    Hi   |   Hp    |    dH   |');
 writeln(' |------|-----|---------|---------|---------|');
 for i:=1 to n do
  writeln(' |  ',i:2,'  | ',q[i]:4:1,'|',h[i]:8:2,' |',Hp[i]:8:5,' |',dH[i]:8:5,' |');
 writeln(' |------|-----|---------|---------|---------|');
 writeln;
 writeln('Min dH = ',dH_min:8:5);
 writeln('Max dH = ',dH_max:8:5);
readln;

 GrDriver:=detect;
 initgraph(GrDriver,GrMode,'C:\BP\BGI');
 
 cleardevice;
 setcolor(white);
 outtextXY(300,10,'Zavisimosti_H_i_Hp_ot_Q');
 setcolor(lightblue);
 line(100,20,100,440);
 line(100,440,500,440);
 SetTextJustify(RightText,CenterText);
 For i:=1 to 12 do
  begin
   setcolor(lightblue);
   line(100, 440-35*i, 105, 440-35*i);
   Str(5*i,s);
   setcolor(white);
   If i<12 then
    OutTextXY(95, 440-35*i, s);
  end;
 setcolor(Yellow);
 OutTextXY(80,20,'Hp');
 setcolor(white);
 OutTextXY(88,20,',');
 setcolor(lightred);
 OutTextXY(95,20,' H');
 SetTextJustify(CenterText,TopText);
 For i:=1 to 10 do
  begin
   setcolor(lightblue);
   line(100+40*i, 440, 100+40*i, 435);
   Str(10*i,s);
   setcolor(white);
   If i<10 then
    OutTextXY(100+40*i, 445, s);
  end;
 OutTextXY(500,445,'Q');
 SetColor(yellow);
 MoveTo(100,440);
 for i:=1 to 1000 do
  LineTo(Round(100+i*0.4),Round(440-Hr(i*0.1)*7));
 SetColor(lightred);
 SetLineStyle(SolidLn,0,ThickWidth);
 for i:=1 to n do
  Circle(Round(100+q[i]*4),Round(440-Hp[i]*7),2);
 ReadKey;
 closegraph;
END.
Vladimir_S вне форума   Ответить с цитированием
Старый 11.06.2011, 03:12   #13 (permalink)
bastilio
Member
 
Регистрация: 30.05.2011
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

спасибо))
bastilio вне форума   Ответить с цитированием
Старый 12.06.2011, 01:25   #14 (permalink)
bastilio
Member
 
Регистрация: 30.05.2011
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

согласен насчет препода,такой гад,вообще придирается ко всему)
bastilio вне форума   Ответить с цитированием
Старый 13.06.2011, 23:47   #15 (permalink)
bastilio
Member
 
Регистрация: 30.05.2011
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

program a1;
uses graph, crt;
const
n=9;
Type
Ar=Array[1..n] of real;
const
Q:Ar=(14.0, 20.5, 35.3, 45.0, 53.8, 62.0, 68.3, 75.2, 82.0);
H:Ar=(3.05, 4.90, 10.4, 15.3, 20.1, 25.4, 29.8, 34.6, 40.0);
var
Hp,dH,x,y:Ar;
i,grDriver,grMode:integer;
a,b,dH_min,dH_max:real;
s:String;

procedure sum_count(Xsc,Ysc:Ar; var Asc:Real; var Bsc:Real);
var s1,s2,s3,s4: real;
begin
s1:=0;
s2:=0;
s3:=0;
s4:=0;
for i:=1 to n do
begin
s1:=s1+Ysc[i];
s2:=s2+Xsc[i];
s3:=s3+Xsc[i]*Ysc[i];
s4:=s4+sqr(Xsc[i]);
end;
Asc:=(s1*s2-n*s3)/(sqr(s2)-n*s4);
Bsc:=(s3*s2-s4*s1)/(sqr(s2)-n*s4);
end;

function hr(z:real):real;
var m:real;
begin
m:=a*sqr(z)+b*z;
hr:=m;
end;

Procedure MinMax(var dH_min,dH_max : real);
var i integer;
begin
dH_min:=1;
dH_max:=0;

for i:=1 to n do
begin
Hp[i]:=hr(q[i]);
dH[i]:=abs(Hp[i]-h[i])/abs(h[i]);
If dH[i]<dH_min then dH_min:=dH[i];
If dH[i]>dH_max then dH_max:=dH[i];
end;
end;

BEGIN
clrscr;
for i:=1 to n do
begin
x[i]:=q[i];
y[i]:=h[i]/q[i];
end;
sum_count(x,y,a,b);

MiMax(dH_min, dH_max);

textcolor(lightred);
writeln('Rezultati vi4islenii:');
writeln;
textcolor(white);
writeln(' a=',a:8:5);
writeln(' b=',b:8:5);
writeln;
writeln(' |------|-----|---------|---------|---------|');
writeln(' | n | Qi | Hi | Hp | dH |');
writeln(' |------|-----|---------|---------|---------|');
for i:=1 to n do
writeln(' | ',i:2,' | ',q[i]:4:1,'|',h[i]:8:2,' |',Hp[i]:8:5,' |',dH[i]:8:5,' |');
writeln(' |------|-----|---------|---------|---------|');
writeln;
writeln('Min dH = ',dH_min:8:5);
writeln('Max dH = ',dH_max:8:5);
readln;

GrDriver:=detect;
initgraph(GrDriver,GrMode,'C:\BP\BGI');

cleardevice;
setcolor(white);
outtextXY(300,10,'Zavisimosti_H_i_Hp_ot_Q');
setcolor(lightblue);
line(100,20,100,440);
line(100,440,500,440);
SetTextJustify(RightText,CenterText);
For i:=1 to 12 do
begin
setcolor(lightblue);
line(100, 440-35*i, 105, 440-35*i);
Str(5*i,s);
setcolor(white);
If i<12 then
OutTextXY(95, 440-35*i, s);
end;
setcolor(Yellow);
OutTextXY(80,20,'Hp');
setcolor(white);
OutTextXY(88,20,',');
setcolor(lightred);
OutTextXY(95,20,' H');
SetTextJustify(CenterText,TopText);
For i:=1 to 10 do
begin
setcolor(lightblue);
line(100+40*i, 440, 100+40*i, 435);
Str(10*i,s);
setcolor(white);
If i<10 then
OutTextXY(100+40*i, 445, s);
end;
OutTextXY(500,445,'Q');
SetColor(yellow);
MoveTo(100,440);
for i:=1 to 1000 do
LineTo(Round(100+i*0.4),Round(440-Hr(i*0.1)*7));
SetColor(lightred);
SetLineStyle(SolidLn,0,ThickWidth);
for i:=1 to n do
Circle(Round(100+q[i]*4),Round(440-Hp[i]*7),2);
ReadKey;
closegraph;
END.
bastilio вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 13.06.2011, 23:48   #16 (permalink)
bastilio
Member
 
Регистрация: 30.05.2011
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

как вам такой вариант,с процедурой,сойдет?)
bastilio вне форума   Ответить с цитированием
Старый 14.06.2011, 14:42   #17 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от bastilio Посмотреть сообщение
как вам такой вариант,с процедурой,сойдет?)
Не знаю, но если считает правильно - сойдет. И вообще, тут главное, чтобы "сошло" не мне, а Вам. Мне-то что...
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 13:51.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.