|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
07.06.2011, 00:57 | #1 (permalink) |
Member
Регистрация: 30.05.2011
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите разобраться с ошибками, пожалуйста
program a1; uses graph, crt; const n=9; var Q:array[1..n] of real; H:array[1..n] of real; Hp:array[1..n] of real; dH:array[1..n] of real; x:array[1..n] of real; y:array[1..n] of real; i,j:integer; grDriver,grMode:integer; a,b:real; procedure sum_count; var s1,s2,s3,s4: real; begin s1:=0; s2:=0; s3:=0; s4:=0; for i:=1 to n do begin s1:=s1+y[i]; s2:=s2+x[i]; s3:=s3+x[i]*y[i]; s4:=s4+sqr(x[i]); end; a:=(s1*s2-n*s3)/(sqr(s2)-n*s4); b:=(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; writeln('Vvedite znacheniya'); writeln; for i:=1 to n do begin write('Q[',i,']='); readln(q[i]); x[i]:=q[i]; end; writeln; for i:=1 to n do begin write('H[',i,']='); readln(h[i]); y[i]:=h[i]/q[i]; end; sum_count; for i:=1 to n do begin Hp[i]:=hr(q[i]); dH[i]:=abs(Hp[i]-h[i])/abs(h[i]); end; writeln; 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]:3:0,' |',h[i]:8:5,' |',Hp[i]:8:5,' |',dH[i]:8:5,' |'); writeln(' |------|-----|---------|---------|---------|'); readln; GrDriver:=detect; initgraph(GrDriver,GrMode,'C:\BP\BGI'); cleardevice; setcolor(white); outtextXY(10,10,'Zavisimost_H_ot_Q'); outtextXY(15,50,'H'); outtextXY(205,205,'Q'); { Dlya naglyadnosti masshtab raven 2:1 } setcolor(blue); line(10,50,10,200); line(10,200,200,200); for i:=1 to n do putpixel(trunc(q[i])*2+10,200-trunc(h[i])*2,yellow); setcolor(white); outtextXY(300,10,'Zavisimost_Hp_ot_Q'); outtextXY(305,50,'Hp'); outtextXY(505,205,'Q'); setcolor(blue); line(300,50,300,200); line(300,200,500,200); for i:=1 to n do putpixel(300+trunc(q[i])*2,200-trunc(Hp[i])*2,yellow); readln; closegraph; END. помогите с алгоритмами пожалуйста. Написать: Алгоритм решения задачи (слова и блок-схема) Алгоритмы процедур( слова-назначений,формальные параметры,как пользоваться,блок-схема) |
07.06.2011, 00:57 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
На форуме ранее создавались топики которые так или иначе похожи на ваш Помогите разобраться Помогите, пожалуйста, разобраться в схеме Помогите, пожалуйста, разобраться с выбором и совместимостью железа |
08.06.2011, 12:47 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Могу предложить такой (исправленный) вариант программы:
Код:
program a1; uses graph, crt; const n=9; Q:array[1..n] of real=(14.0, 20.5, 35.3, 45.0, 53.8, 62.0, 68.3, 75.2, 82.0); H:array[1..n] of real=(3.05, 4.90, 10.4, 15.3, 20.1, 25.4, 29.8, 34.6, 40.0); var Hp,dH,x,y:array[1..n] of real; i,j,grDriver,grMode:integer; a,b:real; s:String; procedure sum_count; var s1,s2,s3,s4: real; begin s1:=0; s2:=0; s3:=0; s4:=0; for i:=1 to n do begin s1:=s1+y[i]; s2:=s2+x[i]; s3:=s3+x[i]*y[i]; s4:=s4+sqr(x[i]); end; a:=(s1*s2-n*s3)/(sqr(s2)-n*s4); b:=(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; for i:=1 to n do begin Hp[i]:=hr(q[i]); dH[i]:=abs(Hp[i]-h[i])/abs(h[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(' |------|-----|---------|---------|---------|'); readln; GrDriver:=detect; initgraph(GrDriver,GrMode,'C:\BP\BGI'); cleardevice; setcolor(white); outtextXY(300,10,'Zavisimosti_H_i_Hp_ot_Q'); setcolor(blue); line(100,20,100,440); line(100,440,500,440); SetTextJustify(RightText,CenterText); For i:=1 to 12 do begin setcolor(blue); 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(blue); 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. |
08.06.2011, 22:19 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
А что, сделать copy-paste да запустить - никак? Ну что же. Основные отличия:
1. Исходные данные записаны в виде констант, чтобы не вводить каждый раз. 2. Выровнена таблица, исправлены форматы. 3. График построен кардинально иначе: а) Во весь экран. б) Размечены оси. в) Расчетная кривая (Hp) проведена с очень мелким шагом, что дает плавную параболу. г) Табличные точки (Н) нанесены на тот же график - иначе бессмысленно. P.S. Извините, но всякими там алгоритмами да блок-схемами не занимаюсь. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
09.06.2011, 04:39 | #8 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
А вы уверены, что сами писали код, приведенный вами в первом сообщении?
Для получения ответов на ваши вопросы загрузите среду программирования и нажмите кнопку F1.
__________________
Убить всех человеков! |
09.06.2011, 09:13 | #9 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Абсолютно исключено! "Ваш" код, как и мой, написан для Borland Graphics.
Что-то подсказывает мне отрицательный ответ на поставленный вопрос... |
10.06.2011, 01:46 | #10 (permalink) |
Member
Регистрация: 30.05.2011
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
да нет не сам,я просто пробую вникнуть)
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|