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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2008, 21:10   #1
TheKnyazz
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 40
По умолчанию Паскаль(задача на итерационные циклы)

Сори сразу не заметил этот раздел создал тему не там. Так вот моя проблема в том что я все написал все норм, но вот числа получаются ну вообще негодные(
вот мой исходник.
program lab4;
uses crt;
const maxiter = 500;
var
x1,x2,dX,E:real; {x1 - Xnach, x2- Xkon, dX- shag, E -tochnost}
n:integer; {schetchik vicheslennih elementov ryada}

function getY(x,E:real):real;
var y,ch:real; {y-znachenie funcii arcctg(x), ch - element ryada}
begin
ch:=1/3*x*x*x; {pervii element ryada}
y:=-pi/2;
n:=1;
y:=y+1/x;
while (abs(ch)>E) do
begin
ch:=ch*(-1)*(2*n+1)/((2*n+3)*x*x);{vichislaem ocherednoi element ryada}
{if (n mod 2) <> 0 then ch:=-ch;}
y:=y+ch;
inc(n); {podschitivaem kol-vo vicheslennih elementov ryada}
if (n>maxIter) then
begin
write('ryad rashoditsa!');
break;
end;
end;
getY:=y;
end;

begin
clrscr;
writeln('vvedite x1,x2,dX,E:');
readln(x1,x2,dX,E);
if (x1>=(-pi/2)) and (x1<=(pi/2)) and (x2>=(-pi/2)) and (x2<=(pi/2)) and (x1<>0) and (x2<>0) then {sootvetvuet oblasti dop. znachenii ? stroim tablicu}
begin

writeln('arcctg(x)------------------------------');
writeln('|X |Y |N'); {shapka tablici}

while (x1<=x2) do
begin
writeln('|',x1,'|',getY(x1,e),'|',n ); {postroenie tablici znachenii ot x1 do x2 s shagom dX}
x1:=x1+dX;
end;
writeln('---------------------------------------');

end
else
writeln('nevernie dannie x1<=x2,x=[-pi/2;pi/2]!!');

begin
writeln('nazmyte enter');
readln;
end;
end.
вот условие задачки.
Изображения
Тип файла: jpg 4.jpg (9.1 Кб, 144 просмотров)
TheKnyazz вне форума Ответить с цитированием
Старый 27.10.2008, 02:35   #2
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

между первым begin и while....... все сотри и напиши следущее......
ch:=1/(3*x*x*x); {поспешишь как говорится....}
y:=-pi/2;
n:=1;
y:=y-1/x; {аналогично}
y:=y+ch; {про этот элемент ты забыл...... посчитал а к функции не прибавил}

может ещё где опечатки есть...... не проверял сильно)))))
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на итерационные циклы. TheKnyazz Паскаль, Turbo Pascal, PascalABC.NET 9 26.10.2008 22:40
ПАСКАЛЬ задача gotex Помощь студентам 3 04.06.2008 21:08
Итерационные циклы Андрюха из ПХТТ Паскаль, Turbo Pascal, PascalABC.NET 3 14.02.2008 15:49
Паскаль. задача с помощью FOR TO DO Маринуська Помощь студентам 7 29.10.2007 18:49