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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 02.03.2010, 19:24   #1
koshkarjov
Пользователь
 
Аватар для koshkarjov
 
Регистрация: 31.01.2009
Сообщений: 26
По умолчанию [Pascal] Циклы

Задача:
Программа должна предусматривать ввод исходных данных с клавиатуры и вывод результата на экран.
Определить число e – основание натуральных логарифмов с помощью ряда:

для всех значений n от 1 до 20. Для каждого случая напечатать n и соответствующее приближение e.

Вопрос:
Как реализовать данный цикл? Можно пример?
koshkarjov вне форума
Старый 02.03.2010, 19:36   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Можно. Нажимаете кнопочку Поиск, вводите "Сумма ряда" и... магия - целая куча примеров
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума
Старый 02.03.2010, 19:41   #3
Codemaster_N1
Новичок
Джуниор
 
Регистрация: 01.03.2010
Сообщений: 18
По умолчанию

Код:
function F(const N: Byte): Extended;
var
  i: Byte;
  R: Extended;
begin
  R := 1;
  for i := 1 to N do
    R := R * i;
  F := R;
end;

function E(const N: Byte): Extended;
var
  i: Integer;
  R: Extended;
begin
  R := 1;
  for i := 1 to N do
  begin
    WriteLn('for N = ', i, ':   ', R :5:5);
    R := R + 1 / F(i);
  end;
  E := R;
end;

begin
  E(20);
  ReadLn;
end.

Последний раз редактировалось Codemaster_N1; 02.03.2010 в 21:43.
Codemaster_N1 вне форума
Старый 02.03.2010, 19:54   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,829
По умолчанию

2 Codemaster_N1
Вам не кажется, что излишне каждый раз заново пересчитывать факториал?
p51x вне форума
Старый 02.03.2010, 21:09   #5
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Не только не излишне, но и в корне неправильно, ибо уже 13! ни в какой longint не влезет
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума
Старый 02.03.2010, 21:50   #6
Codemaster_N1
Новичок
Джуниор
 
Регистрация: 01.03.2010
Сообщений: 18
По умолчанию

p51x, никак не кажется. здесь вычисление одного значения не час занимает, а несколько микросекунд, поэтому абсолютно пофигу сто раз я посчитаю или один раз. Поверь наслово, ты никак не почувствуешь разницу между 10мс и 1000мс.

Greblin, и что? заменой Longint на Extended эта проблема запросто решается. И что умничать то? У тебя самого то хоть ума хватит написать процедуру нецелочисленного деления двух длинных чисел? Нет? Ну и нефиг дешевые понты тут кидать.

P. S. Я привел простейший пример, ибо человек, написавший задание, не знает даже, что такое цикл.

P. P. S. Представляю сколько было бы еще криков, если бы факториал рекурсией написал бы
Код:
function F(const N: Byte): Extended;
begin
  if N <= 1 then F := 1
  else F := N * F(N - 1);
end;
но увы, умники, от этого программа никак хуже не станет работать и несколько килобайт занятой памяти ни на что не повлияет.

а вы тут кричите так, как будто у вас на компьютере 1КБ ОЗУ и процессор на 1КГц...

Последний раз редактировалось Codemaster_N1; 02.03.2010 в 22:01.
Codemaster_N1 вне форума
Старый 02.03.2010, 22:43   #7
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Codemaster_N1
Про мои способности Вы, пожалуйста, не судите, не Вам про них говорить. А вот к своим знаниям добавьте, что extended даёт существенную ошибку точности
Если бы надо было факториал писать, то никаких вопросов не было бы, но писать надо не факториал, а ряд, каждый следующий член которого выражается через предыдущий.
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума
Старый 02.03.2010, 22:57   #8
Codemaster_N1
Новичок
Джуниор
 
Регистрация: 01.03.2010
Сообщений: 18
По умолчанию

про ошибку точности я и без тебя знаю, может ты еще расскажешь как числа с плавающей запятой в памяти представляются? хотя врядли ты это знаешь...
в условии задачи нужно приближенно число e вычислить, поэтому пофигу абсолютно на потерю точности при подсчете факториала, умник.
я еще раз повторяю: вы понтуетесь здесь про ресурсы, потерю точности и т. п. - а я вам еще раз повторяю, что в этой задаче на это абсолютно пофигу!!! если такие умные, то напишите свою типа "правильную" программу и проверьте. только вот, Greblin, каким образом ты иррациональное число e точно представишь, это действительно загадка для всего мира. гением себя видать считаешь?

Greblin, полюбуйся на потерю точности:

Последний раз редактировалось Codemaster_N1; 02.03.2010 в 23:08.
Codemaster_N1 вне форума
Старый 02.03.2010, 23:09   #9
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Codemaster_N1 Посмотреть сообщение
про ошибку точности я и без тебя знаю, может ты еще расскажешь как числа с плавающей запятой в памяти представляются? хотя врядли ты это знаешь...
Чего вы умничаете? Вам, или даже скорее ТС, указали на недочёты программы, при чём резонно, отчего же вы так нервничаете?
netrino вне форума
Старый 02.03.2010, 23:10   #10
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Рассказывать я Вам ничего не собираюсь, ибо считаю это бесполезной тратой времени.
Будьте уверены, что и число e, и многих другие ряды с наперёд заданной точностью вычислял, и я, и большинство здесь присутствующих вычисляли, о чём я и указал ТС в посте 2
На этом я свой разговор с Вами считаю законченным, хотя Вы, конечно, вправе хамить здесь, пока не забанят.
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Циклы в Pascal Кара Помощь студентам 2 02.10.2009 23:21
Pascal.Циклы. Задача NitriNKa Помощь студентам 2 02.05.2009 13:29
Циклы (Pascal) Дима82 Помощь студентам 4 07.06.2008 17:07