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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2010, 23:39   #1
Gebbellz
Пользователь
 
Регистрация: 18.04.2010
Сообщений: 24
По умолчанию

Кто поможет с алгоритмом программы. Дам конфету.

Пример такой: y''+y=1+exp(x);

Алгоритм такой (методом Эйлера)
дано уравнение вида y'' = f (x,y,y');
Обозначу z=y'; z'=f(x,y,z);

в основу входит такое решение:
Код:
uses crt;
var
a,b,h:real;
i:integer;
x,y:array [1..100] of real;
function f1 (xx,yy:real):real;
begin 
f1:= 1+exp(x)-y; 
end;
function f2
function z(xx,yy:real):real;
f2:=cosx+sinx+(exp(x)/2)+1; end;
begin
clrscr;
x[1]:=0; y[1]:=2.5
readln (a,b,h);
for i:=1 to trunc ((b-a)/h)+1 do begin
z[1]:=z[i]+h*f(x[i];y[i],z[i]);
y[1]:=y[i]+h*z[1];
z[2]:=z[1]+h*f(x[1],y[1].z[1]);
y[2]:=y[1]+h*z[2];
z[n+1]:=z[n]+h*f(x[n],y[n],z[n]);
y[n+1]:y[n]+h*z[n+1];
помогите составить...

нкто не нает?

Последний раз редактировалось Stilet; 04.06.2010 в 08:57.
Gebbellz вне форума Ответить с цитированием
Старый 11.06.2010, 19:07   #2
Gebbellz
Пользователь
 
Регистрация: 18.04.2010
Сообщений: 24
По умолчанию

вот правильный алгоритм программы...помогите разобраться только где ошибка (((

Код:
uses crt;
var
r0,x0,y0,h:real;
i,a,b,n:integer;
y,x,z,r:array [0..10] of real;
function f1(x2,y2,r2:real):real;
begin
f1:=exp(x2)+5*r2-6*y2;end;
function f2(x3:real):real;
begin 
f2:=(-1)*exp(2*x3)+0.5*(exp(3*x3)+exp(x3));end;
begin 
clrscr;
write ('x0=');readln(x0);
write('y0=');readln(y0);
write ('r0=');readln(r0);
n:=10;a:=0;b:=1;
x[0]:=x0;[y0]:=y0;z[0]:=z0; r[0]:=r0;
h:=(b-a)/n;
for i:=0 to n do begin
r[i+1]:=r[i]+h*f1(x[i],y[i],r[i]);
y[i+1]:=y[i]+h*z[i+1];
x[i+1]:=x[i]+h;
z[i]:=f2(x[i]);
writeln ('x',i,'=',x[i]:5:2,' ','y',i,'=',y[i]:10:12,' ','z',i,'=',z[i]:10:12);end;readkey;end.

Последний раз редактировалось Stilet; 14.06.2010 в 09:57.
Gebbellz вне форума Ответить с цитированием
Старый 12.06.2010, 10:13   #3
Serebro
FORTRAN programmer
Форумчанин
 
Регистрация: 08.12.2009
Сообщений: 153
По умолчанию

Не инициализирована переменная
z0
Serebro вне форума Ответить с цитированием
Старый 12.06.2010, 15:40   #4
Gebbellz
Пользователь
 
Регистрация: 18.04.2010
Сообщений: 24
По умолчанию

вот исправил - всё равно пишет ошибку..error in statement. и можно ли как-нибудь последнюю строчку writeln упростить:? а то слишком громоздкий алгоритм получился))

что никто не знает?

товарищи выручьте пожалуйста срочно в конце программы где-то ошибка - скорее всего во writeln ('x',i,'=',x[i]:5:2,' ','y',i,'=',y[i]:10:12,' ','z',i,'=',z[i]:10:12);end;readkey;end.

как исправить или упростить?

Последний раз редактировалось Stilet; 14.06.2010 в 09:57.
Gebbellz вне форума Ответить с цитированием
Старый 14.06.2010, 09:59   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
что никто не знает?
А что никто из тебя не хочет почитать хелп про readkey?
Изучать уже стало не в моде?
Это же функция и в паскале она полюбому должна возвращать значение в какую-то переменную или выражение
А у тебя она просто как процедура стоит.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.06.2010, 10:08   #6
Gebbellz
Пользователь
 
Регистрация: 18.04.2010
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А что никто из тебя не хочет почитать хелп про readkey?
Изучать уже стало не в моде?
Это же функция и в паскале она полюбому должна возвращать значение в какую-то переменную или выражение
А у тебя она просто как процедура стоит.
помоги пожалуйста если знаешь...я не знаю где тут ошибка может быть
математическая моель этого метода выглядит таким образом:

z[1]:=z[0]+h*f1(x[0],y[0],z[0]);
y[1]:=y[0]+h*z;
z[2]:=z[1]+h*f(x[1],y[1],z[1]);
y2:=y[1]+h*z[1];
z[n+1]:=z[n]+h*f(x[n],y[n],z[n]);
y[n+1]:=y[n]+h*z[n+1];

Последний раз редактировалось Gebbellz; 14.06.2010 в 10:13.
Gebbellz вне форума Ответить с цитированием
Старый 14.06.2010, 10:20   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
var c:char;
...
c:=readkey;
Теперь ясно?
или замени его на Readln;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.06.2010, 10:31   #8
Gebbellz
Пользователь
 
Регистрация: 18.04.2010
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
var c:char;
...
c:=readkey;
Теперь ясно?
или замени его на Readln;
заменил, программа всё равно не хочет работать
пару ошибок ещё исправил:добавил переменную z0 и исправил y[0]:=y0
Gebbellz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pacsal] Быстрая Соритровка и сортировка обменом (ошибка) Dtska Помощь студентам 1 17.12.2009 20:17
Pacsal, Модули, Наработки есть Otre4eHHbIu Помощь студентам 3 11.10.2009 18:27
TURBO PACSAL 7.0 veterok Помощь студентам 1 23.04.2009 01:02