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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2007, 15:58   #1
figovproger
 
Регистрация: 26.11.2007
Сообщений: 4
По умолчанию программа на иттарационные циклы

Помогите доделать программку на иттарационные циклы.
Нужно на паскале,пробовал разными способами, программа ни чего не считает. Вот мой код:
var e,sum,x,k:real;i,n:integer;
begin
readln(e,x);
n:=1;
while k>e do
begin
for i:=1 to n do
k:=exp(n*ln(-1))*exp(2*n*ln(x))/(n-1)*(n-1);
sum:=sum+k;
n:=n+1;
end;
write(sum:2:2);
end.
Я думаю ошибка здесь "exp(n*ln(-1))". Нужно что нибудь придумать, мне кажется чётность, нечётность сделать, но как? Помогите
http://www.programmersforum.ru/attac...1&d=1196081863 -задача
Изображения
Тип файла: gif 1.GIF (1.9 Кб, 153 просмотров)
figovproger вне форума Ответить с цитированием
Старый 26.11.2007, 16:27   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
(n-1)*(n-1);
просто sqr(n);
И еще в начале "к" ничему не равно. Т.е. изначально оно у тебя =0, а е больше него, потому в цикл даже не входит

Только я чет не понял причем тут бесконечность...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.11.2007, 16:35   #3
figovproger
 
Регистрация: 26.11.2007
Сообщений: 4
По умолчанию

Цитата:
Только я чет не понял причем тут бесконечность...
цикл повторяется до бесконечности, то есть сначала n=1, потом 2, и до бесконечности...
Цитата:
просто sqr(n);
это понятно,не в том суть...

я пробовал разными способами, ошибка в моей формуле, незнаю как релизовать, Ln(-1) не может быть, нужно смотреть степень n чётная или нет, а вот как реализовать .......

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

Тут наверное луче отдельной функой,
if n mod 2=0 then result:=exp(n*Ln(1)) else result:=-exp(n*Ln(1))
ну типа этого
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.11.2007, 17:15   #5
figovproger
 
Регистрация: 26.11.2007
Сообщений: 4
По умолчанию

попробовал, выдаёт ошибку Division by zero,после ввода значений e и x, чё йет? вот код:
var e,sum,x,k,t:real;i,n:integer;
begin
readln(e,x);
n:=1;
if n mod 2=0 then t:=exp(n*ln(1)) else t:=-exp(n*ln(1));
k:=t*exp(2*n*ln(x))/(n-1)*(n-1);
while k>e do
begin
for i:=1 to n do
k:=-1*x*n*n/sqr(n+1);
sum:=sum+k;
n:=n+1;
end;
write(sum:2:2);
end.
figovproger вне форума Ответить с цитированием
Старый 02.12.2007, 13:17   #6
figovproger
 
Регистрация: 26.11.2007
Сообщений: 4
По умолчанию

сделал, вот окончательный ответ, может кому пригодиться:
Код:
program test;
var e,sum,x,k,o,ost:real;n:longint;
begin
    readln(e,x);
    n:=1;
    sum:=0.0;
    o:=-1*x*x;
    ost:=1;
    {cycle begin}
    repeat
        ost:=ost*o;
        k:=ost/(n*n);
        sum:=sum+k;
        n:=n+1;
    until abs(k)<e;
    {cycle end}
    writeln(sum,' k=',k,' n=',n);
end.
figovproger вне форума Ответить с цитированием
Старый 02.12.2007, 19:35   #7
Patriot
Новичок
Джуниор
 
Регистрация: 02.12.2007
Сообщений: 1
Счастье

Помогите решить задачку:

Вычислить значение суммы с точностью до e :

Изображения
Тип файла: jpg 1.jpg (3.6 Кб, 157 просмотров)
Patriot вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Циклы (Pascal) Дима82 Помощь студентам 4 07.06.2008 17:07
Циклы и выход из них. alikk Общие вопросы Delphi 23 13.04.2008 08:44
Вопрос массивы и циклы probmat Помощь студентам 7 16.03.2008 13:35
Итерационные циклы Андрюха из ПХТТ Паскаль, Turbo Pascal, PascalABC.NET 3 14.02.2008 15:49