IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на итерационные циклы, вроде написал, а ответы дикие...
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской

Репутация: -  0  +


Нужна помощь в решении задачи на итерациооные циклы
в общем вот мой код
 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/x; {pervii element ryada}
y:= -pi/2;
n:=1;

while (abs(ch)>E) do
begin
y:=y+ch;
inc(n);
ch:=ch*(-1)*(2*n+1) /((2*n+3)*x*x); {vichislaem ocherednoi element ryada}
{if (n mod 2) <> 0 then ch:=-ch;}

{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)) 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('nazmite enter');
readln;
end;
end.


помогите пожалуйста. вот условие задачи.


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской

Репутация: -  0  +


Вот правильное вычисление арктангенса с помощью итерационнго цикла.

program lab4;
uses crt;
const maxiter = 500;
var x1,x2,dX,E,y:real; {x1 - Xnach, x2- Xkon, dX- shag, E -tochnost}
n:integer; {schetchik vicheslennih elementov ryada}
Procedure getY(x,E:real; var y:real; var n:integer);
var ch:real; {y-znachenie funcii arcctg(x), ch - element ryada}
begin
ch:=x; {pervii element ryada}
n:=0;y:=0;
while (abs(ch)>E) do
begin
y:=y+ch;
ch:=ch*((-1)*x*x)/((2*n+1)); {vichislaem ocherednoi element ryada}
inc(n); {podschitivaem kol-vo vicheslennih elementov ryada}
if (n>maxIter) then
begin
write('ryad rashoditsa!');
break;
end;
end;
end;

begin
clrscr;
repeat
writeln('vvedite x1,x2,dX,E:');
readln(x1,x2,dX,E);
until (x1>=-1) and (x1<=1) and (x2>=-1) and (x2<=1);
{sootvetvuet oblasti dop. znachenii ? stroim tablicu}
writeln;
writeln('-----------------------');
writeln('| X | ARCTG (X) | N |'); {shapka tablici}
while (x1<=x2) do
begin
getY(x1,e,y,n);
writeln('|',x1:5:2,'|',y:11:5,'|',n:2,' |'); {postroenie tablici znachenii ot x1 do x2 s shagom dX}
x1:=x1+dX;
end;
writeln('-----------------------');
writeln('nazmite enter');
readln
end.

.
Спасибо за помощь

Сообщение отредактировано: TheKnyazz -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 7:09
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name