Помощь - Поиск - Пользователи - Календарь
Полная версия: Цикл с параматером
Форум «Всё о Паскале» > 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", я просто не представляю, сейчас разбираться буду...а за помощь спасибо еще раз
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.