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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2011, 14:15   #1
Jon1kus
Новичок
Джуниор
 
Регистрация: 20.02.2011
Сообщений: 8
Смущение паскаль цикл for + факториал

Помогите пожалуиста решить задачку

Дано целое число N (>0), используя цикл For, наити сумму 1+1/(1!)+1/(2!)...1/(N!), (N!) - факториал произведение всех чисел от 1 до N, !!!Полученное число являеться приблеженному значению константы e=exp(1)
Jon1kus вне форума Ответить с цитированием
Старый 20.02.2011, 14:29   #2
VadikV
Форумчанин
 
Аватар для VadikV
 
Регистрация: 08.01.2011
Сообщений: 226
По умолчанию

Код:
f := 1;
s := 1;
for i := 1 to n do begin
   f := f * i;
   s := s + 1 / f;
end;
icq 223-630-454
e-mail vysotskiy@list.ru
сайт http://www.big-library.net/
VadikV вне форума Ответить с цитированием
Старый 20.02.2011, 15:19   #3
Jon1kus
Новичок
Джуниор
 
Регистрация: 20.02.2011
Сообщений: 8
По умолчанию

Спасибо , но как приближенно к e=exp(1) сделать?
Код:
Program lab9;
Uses crt;
Var f,n,s,i:integer;
begin
f := 1;
s := 1;
for i := 1 to n do
begin
f := f * i;
s := s + 1;
end;
writeln('-------------')
end.
составил по вашему образцу, только вот ответ он мне никакой не выдает

Последний раз редактировалось Stilet; 20.02.2011 в 19:06.
Jon1kus вне форума Ответить с цитированием
Старый 20.02.2011, 15:58   #4
tools
Форумчанин
 
Регистрация: 07.10.2008
Сообщений: 213
По умолчанию

так вы и не выводите в конце ничего, допустим, так:
Код:
writeln(s:3:2)
а чтобы сопоставлять результат с экспонентой числа, загоните вычисления в цикл while или repeat

Последний раз редактировалось tools; 20.02.2011 в 16:11.
tools вне форума Ответить с цитированием
Старый 20.02.2011, 16:18   #5
Jon1kus
Новичок
Джуниор
 
Регистрация: 20.02.2011
Сообщений: 8
По умолчанию

Вот я подправил, как вы говорили , но увы ответа так и не получил=(
Код:
Program lab9;
Uses crt;
Var f,n,s,i:integer;
begin
f := 1;
s := 1;
for i := 1 to n do
begin
f := f * i;
s := s + 1;
writeln('i',i:2,'f=',f:4,'s=',s:5);
end;
writeln('-------------')
end.
а можете кратко показать через повтор repeat как с экспонентои сравнить? Я в прогромирываний плохо разбираюсь, так как с компьютерами моя проффесия не связана, а информатик такое выдает

Последний раз редактировалось Stilet; 20.02.2011 в 19:07.
Jon1kus вне форума Ответить с цитированием
Старый 20.02.2011, 16:32   #6
Sanek-MU
 
Регистрация: 19.12.2010
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Jon1kus Посмотреть сообщение
Вот я подправил, как вы говорили , но увы ответа так и не получил=(
Program lab9;
Uses crt;
Var f,n,s,i:integer;
begin
f := 1;
s := 1;
for i := 1 to n do
begin
f := f * i;
s := s + 1;
writeln('i',i:2,'f=',f:4,'s=',s:5);
end;
writeln('-------------')
end.

а можете кратко показать через повтор repeat как с экспонентои сравнить? Я в прогромирываний плохо разбираюсь, так как с компьютерами моя проффесия не связана, а информатик такое выдает
Не s := s + 1, а
Код:
S := S + 1 / F
Данная сумма и есть разложение числа e в ряд Маклорена.
Я бы сделал так:
Код:
Program lab9;
Uses crt;
Var f,n,s,i:integer;
begin
  f := 1;
  s := 1;
  for i := 1 to n do
  begin
    f := f * i;
    s := s + 1 / f;
  end;
  WriteLn('N = ',n,', S = ',s);
  ReadLn;
end.
Sanek-MU вне форума Ответить с цитированием
Старый 20.02.2011, 16:42   #7
Jon1kus
Новичок
Джуниор
 
Регистрация: 20.02.2011
Сообщений: 8
По умолчанию

Код:
Program lab9;
Uses crt;
Var f,n,s,i:integer;
begin
  f := 1;
  s := 1;
  for i := 1 to n do
  begin
    f := f * i;
    s := s + 1 / f;
  end;
  WriteLn('N = ',n,', S = ',s);
  ReadLn;
end.

Ошибка: попытка присвоить переменнои типа интенжер типа real

Последний раз редактировалось Stilet; 20.02.2011 в 19:07.
Jon1kus вне форума Ответить с цитированием
Старый 20.02.2011, 16:48   #8
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
Ошибка: попытка присвоить переменнои типа интенжер типа real
Ну и че сразу паникуете? Объявите сумму как вещественную переменную:
Код:
Var
  S:Real;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 20.02.2011, 17:19   #9
Jon1kus
Новичок
Джуниор
 
Регистрация: 20.02.2011
Сообщений: 8
По умолчанию

Сделал все работает, спасибо=) Осталось только как то с экспонентой сравнить =/
ибо вот это "Данная сумма и есть разложение числа e в ряд Маклорена." думаю не устроит препода=(
Jon1kus вне форума Ответить с цитированием
Старый 20.02.2011, 17:40   #10
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

очень даже просто
Код:
e:=exp(1);
WriteLn('N = ',n,', S = ',s:4:2,' E =',e:4:2);
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Факториал(паскаль) locdoc Помощь студентам 1 05.12.2010 11:03
Факториал. Паскаль Gorchakova Помощь студентам 2 28.05.2010 08:01
Факториал числа(паскаль) Кьюби Помощь студентам 2 01.04.2010 09:38
Паскаль, факториал, рекурсия.... netcher Помощь студентам 2 22.04.2009 00:48