Версия для печати темы
Форум «Всё о Паскале» _ Задачи _ итерационный цикл
Автор: -олег- 9.01.2007 23:43
помогите найти ошибку
Код
program c;
var N:integer; YN,YN1,YN2,e:real;
begin
writeln('vvedite e');
readln (e);
YN:=YN1;YN1:=YN2;
N:=1;
repeat
N:=N+1;YN:=0.352*YN1+ cos(1.57 + YN2)
until ABS (YN - YN1)<E;
writeln ('predel ',YN:12:8)
end.
Автор: мисс_граффити 9.01.2007 23:47
YN:=YN1;
а чему равно YN1?
Автор: Гость 9.01.2007 23:55
YN:=Y(n-1); это вписать?
Автор: мисс_граффити 10.01.2007 0:05
еще б знать, что такое Y и что должна делать программа... совсем круто было бы
Автор: Гость 10.01.2007 0:23
Код
program c;
var N:integer; Y,YN,YN1,YN2,e:real;
begin
writeln('vvedite e');
readln (e);
YN:=YN1;
YN1:=Yn-1;
YN1:=YN2;
N:=1;
repeat
N:=N+1;YN:=0.352*YN1+ cos(1.57 + YN2)
until ABS (YN - YN1)<E;
writeln ('predel ',YN:12:8)
end.
вычислить предел последовательности .но результат один и тот же выходит
Автор: мисс_граффити 10.01.2007 1:21
ну естественно!!!
вот в этом месте чему у тебя равен YN1?
YN:=YN1;
Что ты пытаешься записать в YN?
С высокой степенью вероятности 0, хотя не факт.
Автор: Гость 10.01.2007 1:43
Код
program c;
var N:integer; Y,YN,YN1,YN2,e:real;
begin
writeln('vvedite e');
readln (e);
YN1:=Yn-1;
YN2:=YN-2;
N:=1;
repeat
N:=N+1;YN:=0.352*YN1+ cos(1.57 + YN2)
until ABS (YN - YN1)<E;
writeln ('predel ',YN:12:8)
end.
если тока вот так
Автор: Malice 10.01.2007 3:27
Сдается мне ты вот такое хотел изобразить:
program c;
var N:integer; Y,YN,YN1,YN2,e:real;
begin
writeln('vvedite e');
readln (e);
YN1:=0; yn:=0;
repeat
YN2:=YN1;
YN1:=YN;
YN:=0.352*YN1+ cos(1.57 + YN2);
until ABS (YN - YN1)<E;
writeln ('predel ',Yn:12:8)
end.
Но если просят условие, трудно ответить ?
Автор: Archon 10.01.2007 3:29
Извини, но приведи задание, а?
Автор: Гость 10.01.2007 3:50
задание привел надо выщитать предел YN:=0.352*YN1+ cos(1.57 + YN2);
ну запутался малость
Автор: Гость 10.01.2007 3:56
Код
program c;
var N:integer; Y,YN,YN1,YN2,e:real;
begin
writeln('vvedite e');
readln (e);
YN1:=0; yn:=0;
repeat
YN2:=YN1;
YN1:=YN;
YN:=0.352*YN1+ cos(1.57 + YN2);
until ABS (YN - YN1)<E;
writeln ('predel ',Yn:12:8)
end.
это неправильно!
результат один и тотже
Автор: мисс_граффити 10.01.2007 4:03
это какой-то вычислительный рекурсивный метод?
а как ты определяешь, что ответ неправильный?
что должно получиться?
Автор: Гость 10.01.2007 4:06
ээээ вводиш разные е результат разный
или так должно быть?
Автор: Гость 10.01.2007 4:07
результат одинаковый всмысле
Автор: Archon 10.01.2007 4:13
E - это точность. Чем меньше E, тем результат точнее.
Цитата
это какой-то вычислительный рекурсивный метод?
Это сходящаяся рекурентная последовательность (ряд).
Автор: Гость 10.01.2007 4:15
так чо с самого начало моя прога выдавала првильный результат ????
Автор: Archon 10.01.2007 4:23
Нет. С самого начала твоя прога вязла в бесконечном цикле.
Автор: Гость 10.01.2007 4:32
Код
program c;
var N:integer; Y,YN,YN1,YN2,e:real;
begin
writeln('vvedite e');
readln (e);
YN1:=0; yn:=0;
repeat
YN2:=YN1;
YN1:=YN;
YN:=0.352*YN1+ cos(1.57 + YN2);
until ABS (YN - YN1)<E;
writeln ('predel ',Yn:12:8)
end.
а это правильно хоть?
Автор: Гость 10.01.2007 20:59
ктонить знает как посчитать глубину рекуретной формулы?
Код
YN:=0.352*YN1+ cos(1.57 + YN2);
Автор: Гость 10.01.2007 21:54
обясните хоть что такое глубина рекурентной формулы