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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2014, 13:34   #1
wolsenpak
Новичок
Джуниор
 
Регистрация: 26.06.2014
Сообщений: 2
По умолчанию Паскаль с факториалом

Добрый день.
Нужна Ваша помощь.
Дано задание. Но там факториал... никак не могу понять, куда его вставлять и как с ним работать

задание:
сумма от i=1 до 10
под суммой i^2
это всё мы умножаем на
сумма от j=1 до бесконечности
под суммой i+j/!j
и это всё с точность вычисления до 10^-4

код:
Код:
const
 eps=0.001;
var
 i,j:integer;
 Kon,S1,S2,p:real;
begin
 function fact(j : integer) : longint;
  begin
    if j <= 1 then
      fact := 1
    else
      fact := j * fact(j - 1);
  end;
begin
 S1:=0;
 for i:=1 to 10 do
 S1:= (i*i)*S2;
begin
 S2:=0;
 j:=1;
repeat
 Kon:=(i+j)/fact;
 S2:=S2+Kon;
 j:=j+1
until Abs(Kon) <= Eps;
end;
 writeln('сумма ряда равна: ', S2);
end.

Последний раз редактировалось Stilet; 27.06.2014 в 14:18.
wolsenpak вне форума Ответить с цитированием
Старый 27.06.2014, 21:24   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Так не пойдет:
Код:
const
 eps=0.001;
var
 i,j:integer;
 Kon,S1,S2,p:real;
begin
 function fact(j : integer) : longint;
  begin
    if j <= 1 then
      fact := 1
    else
      fact := j * fact(j - 1);
  end;
begin
 S1:=0;
 for i:=1 to 10 do
 S1:= (i*i)*S2;          {По умолчанию S2 = 0. Какова роль S2}
begin                       {Явно этот begin не наместе}
 S2:=0;
 j:=1;
repeat
 Kon:=(i+j)/fact;   {может надо fact(j) ?}
 S2:=S2+Kon;
 j:=j+1
until Abs(Kon) <= Eps;
end;
 writeln('сумма ряда равна: ', S2);
end.
Вроде так получается. Если все правильно понял.
Код:
const
 eps=0.001;
var
 i,j:integer;
 Kon,S1,S2,p:real;
begin
 function fact(j : integer) : longint;
  begin
    if j <= 1 then
      fact := 1
    else
      fact := j * fact(j - 1);
  end;
begin
 S1:=0;
 for i:=1 to 10 do
 begin
   S2:=0;
   j:=1;
   repeat
     Kon:=(i+j)/fact(j);
     S2:=S2+Kon;
     j:=j+1
   until Kon <= Eps;  {i и j больше нуля всегда}
   S1:= S1 + (i*i)*S2;
 end;
 writeln('сумма ряда равна: ', S2);
end.
Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с факториалом! maxick96 Помощь студентам 5 03.12.2012 11:41
Вычисления с факториалом Vlt Помощь студентам 4 18.05.2012 22:41
Проблемы с факториалом as1212 Помощь студентам 1 13.10.2011 20:21
Задача с факториалом bobkoff Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 13.01.2011 18:52