Помощь - Поиск - Пользователи - Календарь
Полная версия: Цикл с параматером
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Breid
Помогите плз решить задачу, условие следующее: Даны действительное число a, натуральное число n. Вычислить сумму: 1/a + 1/(a*(a+1)) +....+1/(a*(a+1)...(a+n)), во вложении эта же формула просто более наглядно. очень прошу помчоь, я сам новичок в этом деле, паскаль никогда не изучал, у меня не получается задать цикл с формулой, вообщем толком ничего, пытался делать по простым примерам, не вышло..
заранее благодарен за помощь
volvo
Показал бы, что-ли как пытался...
var
i, n: integer;
next, s, a: real;

begin
write('a = '); readln(a);
write('n = '); readln(n);

s := 0; next := 1;
for i := 0 to n do begin
next := next / (a + i);
s := s + next;
end;
writeln('s = ', s:10:5);
end.
klem4
мне кажется в дано у тебя ошибка

в знаменателе везде начиная со второго слагаемого не ..*(a+1)*.. , а (a+i)

и рашает получается вот так :

uses crt;
var
a,n,i,r : word;
s : single;

begin
readln(n);
readln(a);
r := a;
s := 0;
for i := 1 to n do begin
s := s + 1/r;
r := r * (a+i);
end;
writeln(s:6:3);
readln
end.


Volvo, опередил smile.gif

хмм только интересно у кого из нас прога считает не правильно ...))
Breid
Цитата(volvo @ 22.12.2005 19:43) *

Показал бы, что-ли как пытался...

спасибо огромное, все работает, а по поводу "Показал бы, что-ли как пытался...", там действительно ничего толком нет, в твоей программе под оператором "var" что означает "next", я просто не представляю, сейчас разбираться буду...а за помощь спасибо еще раз
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.