Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2012, 21:11   #1
Kipaut
Новичок
Джуниор
 
Регистрация: 09.04.2012
Сообщений: 1
Восклицание Построить график по массивам

Зделал программу для решения системи диф. уравнений n-го порядка. Но мне нужно еще построить графики по выведенным точкам. Помогите плиз.

Вот код программы:
Код:
program RKM;
 
 uses crt;
  var N,j,d1:integer; x,h,xm,e1,e2,e3: real;
  y:array[1..50] of real; w:array[1..50] of real;
  c:array[1..50] of real; F:array[1..50] of real;
  a:array[1..50] of real; d:array[1..50] of real;
  e:array[1..50] of real;
Procedure V1;
   {Predstavlaem sistemu dif uravnenii dyi/dx=fi(x,yi) v vide F(i)=fi(x,y)}
 begin
  F[1]:=y[3];
  F[2]:=y[2];
  F[3]:=-2*y[3]+3*y[2]+2*y[1]-x*x-9;
 end;
 begin
  ClrScr;
  writeln('zadaite cislo dif uravnenii 1 poradka');  write('N= ');  readln(N);
  writeln('vvedite nacalnoe cislo argumenta');  write('A= ');  readln(x);
  writeln('vvedite coneecnoe cislo argumenta');  write('B= ');  readln(xm);
  writeln('zadaite pogresnost vucislenia');  write('E= ');  readln(e1);
  writeln('vedite nacalnoe znacenie');
  for j:=1 to N do begin write('Y0(',j,')= ');
  readln(w[j]);
  y[j]:=w[j];
 end;
  writeln('vvedite nacalnoe znacenie shaga integririv');  write('h= ');  readln(h);
  repeat e3:=0; V1; d1:=0; for j:=1 to N do
 begin
  a[j]:=F[j]*h;
  y[j]:=w[j]+(a[j]/3);
 end;
  x:=x+(h/3); V1; for j:=1 to N do
 begin
  y[j]:=w[j]+((a[j]+F[j]*h)/6);
 end;
  V1; for j:= 1 to N do
 begin
  c[j]:=F[j]*h;
  y[j]:=w[j]+(a[j]/8)+0.375*c[j];
 end;
  x:=x+(h/6); V1; for j:=1 to N do
 begin
  d[j]:=F[j]*h;
  y[j]:=w[j]+(a[j]/2)-1.5*c[j]+2*d[j];
 end;
  x:=x+(h/2); V1; for j:=1 to N do
 begin
  e[j]:=F[j]*h;
  y[j]:=w[j]+(a[j]+4*d[j]+e[j])/6;
  e2:=(abs(-2*a[j]+9*c[j]-8*d[j]+e[j]))/30;
  if e2<=e1 then begin
  if e2<(e1/30) then begin
  d1:=d1+1;
 end; end
  else begin e3:=1; end; end;
  if e3=0 then begin if d1=N then begin h:=h+h;
 end;
  write('X=',x:5:2);
  for J:=1 to N do
 begin
  write (' Y(',j,')= ',y[j]:12:9);
  w[j]:=y[j]; end; end
  else begin x:=x-h;
  for j:=1 to N do
 begin y[j]:=w[j];
 end;
  h:=h/2;
 end;
  writeln;
  until x>xm;
  readln;
  END.
Kipaut вне форума Ответить с цитированием
Старый 09.04.2012, 21:42   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

подключите модуль graph
Код:
PutPixel(координата_х, координата_у, цвет);
как то так точечки рисуются в паскале...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нарисовать график (TChart) по 2-ум массивам iKarma Общие вопросы Delphi 2 23.10.2011 19:05
построить график salmon172 Паскаль, Turbo Pascal, PascalABC.NET 0 25.05.2011 22:19
построить график. с++ Yokka C++ Builder 1 13.05.2010 18:23
Построить график!! Inferno777 Помощь студентам 10 30.06.2009 17:46
Построить график в Паскале. LEX.darnica Помощь студентам 3 28.11.2007 18:11