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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2010, 18:22   #1
Roman967
 
Регистрация: 12.12.2009
Сообщений: 3
По умолчанию ПРОГРАММА В РУНГЕ-КУТТЕ

Помогите пожалуйста разобраться с прогой.Нужно по шагам расписать каждое действие и указать за что отвечает каждая переменная.Вот сама прога:
program RungeKutt;
uses GraphABC,crt;
const e=2.71;
x0=0;
xk=1;
h=0.05;
kv=1;
var x,v,p,a,m:real;
i,k,t,l,r,rx,ry1,ry2:integer;
y,f,z,y0,fk1,fk2,fk3,fk4:array[1..100] of real;
xx,yy,zz:array[1..30] of real;
procedure PPCH;
begin
f[1]:=y[2];
f[2]:=(exp(x*ln(e))+1)-y[1];
end;
procedure RGK;
begin
PPCH;
for i:=1 to 100 do
begin
fk1[i]:=h*f[i];
y[i]:=z[i]+fk1[i]/2;
end;
x:=x+h/2;
PPCH;
for i:=1 to 100 do
begin
fk2[i]:=h*f[i];
y[i]:=z[i]+fk2[i]/2;
end;
PPCH;
for i:=1 to 100 do
begin
fk3[i]:=h*f[i];
y[i]:=z[i]+fk3[i];
end;
x:=x+h/2;
PPCH;
for i:=1 to 100 do
begin
fk4[i]:=h*f[i];
y[i]:=z[i]+1/6*(fk1[i]+2*fk2[i]+2*fk3[i]+fk4[i]);
z[i]:=y[i];
end;
end;
begin
t:=0;
x:=x0;
y0[1]:=2.5;
y0[2]:=1.5;
for i:=1 to 100 do
begin
y[i]:=y0[i];
z[i]:=y[i];
end;
k:=0;
repeat
RGK;
v:=cos(x)+sin(x)+1+(1/2)*exp(x*ln(e));
p:=y[1]-v;
k:=k+1;
if k=kv then
begin
t:=t+1;
writeln('x=',x:3:3,' y[1]=', y[1]:3:5, ' y[2]=', y[2]:3:5, ' v=',v:3:5,' p=',p:3:7);
xx[t]:=x;
yy[t]:=y[1];
zz[t]:=y[2];
k:=0;
end;
until x>xk;
writeln('Для просмотра графика нажмите "Enter"');
readln;
clrscr;
SetWindowCaption('График функции y=cos(a)+sin(a)+1+(1/2)*exp(a*ln(e))');
SetWindowSize(600,600);
{Ось “Y”}
line(30,30,30,600);
{Ось “X”}
line(0,570,570,570);
{Стрелка на оси “Y”}
line(30,30,27,40);
line(30,30,33,40);
{Стрелка на оси “X”}
line(570,570,560,567);
line(570,570,560,573);
textout(15,40,'Y');
textout(560,575,'X');
a:=0;
for i:=1 to 1500 do
begin
M:=cos(a)+sin(a)+1+(1/2)*exp(a*ln(e));
L:=round(100*m);
putpixel(30+r,570-L,clred);
A:=A+0.001;
r:=round(100*a);
end;
for i:=1 to 6 do
begin
rx:=round(100*xx[i]);
ry1:=round(100*yy[i]);
setpencolor(clblue);
CIRCLE(30+rx,570-ry1,3);
setpencolor(clgreen);
ry2:=round(100*zz[i]);
CIRCLE(30+rx,570-ry2,3);
end;
end.

Помогите пожалуйста!Очень надо!В долгу не останусь.Спасибо.

Последний раз редактировалось Roman967; 20.05.2010 в 18:25.
Roman967 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рунге- Кутта на Си Ekатерина Помощь студентам 5 28.04.2010 19:31
Метод Рунге-Кутта (Си) PPPPPP Общие вопросы C/C++ 1 13.04.2010 00:55
Метод Рунге-Кутта (Си) PPPPPP Помощь студентам 2 12.04.2010 02:58
метод Рунге sneZZZinka Помощь студентам 1 21.12.2009 17:31
Чиленное интегрирование.Метод Рунге sneZZZinka Помощь студентам 0 20.12.2009 19:29