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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2011, 11:10   #1
KAPICH55
 
Регистрация: 12.12.2011
Сообщений: 3
По умолчанию Программирование циклических процессов в Паскале

Код:
program expon;
const e=0.001; x=1.3;
var x, n,: integer;
begin
for n:=0 to n-1 do
begin
 
Как правильно построить этот цикл???
 
end.
Заранее Спасибо.
Изображения
Тип файла: jpg лаба5.JPG (6.4 Кб, 37 просмотров)
KAPICH55 вне форума Ответить с цитированием
Старый 13.12.2011, 12:55   #2
zhan313
Пользователь
 
Регистрация: 09.12.2011
Сообщений: 44
По умолчанию

Сразу скажу, что при n=0 происходит деление на "0"

Код:
program expon;
const e=0.001; x=1.3;
var
n:integer;
r,r1:real;

function fakt(i:integer):longint;
var f:longint;
begin
  f:=1;
  while i>1 do begin f:=f*i; dec(i); end;
  fakt:=f;
end;

function step(i:integer):real;
var f:real;
begin
  f:=1;
  while i>0 do begin f:=f*x; dec(i); end;
  step:=f;
end;

begin
  r:=0;
  n:=0;
  repeat
    inc(n);
    r1:=r;
    r:=r+step(n)/fakt(n);
  until r-r1<=0.001;
  writeln(r:10:4);
end.
zhan313 вне форума Ответить с цитированием
Старый 13.12.2011, 13:16   #3
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Ну вообще с точки зрения математики 0!=1.

Код:
function fakt(i:integer):longint;
var f:longint;
begin
  if i=0 then result:=1
  else
  begin
  f:=1;
  while i>1 do begin f:=f*i; dec(i); end;
  fakt:=f;
  end;
end;
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 13.12.2011, 15:07   #4
zhan313
Пользователь
 
Регистрация: 09.12.2011
Сообщений: 44
По умолчанию

Да, подзабыл математику, но результаты функции выдают правильные.
Единственно inc(n) нужно переместить в конец цикла вычисления .
zhan313 вне форума Ответить с цитированием
Старый 13.12.2011, 16:46   #5
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
var x,stx,ex,e: real;
    i,fakt: integer;
Begin
Write('Введите x: ');
Readln(x);
Write('Введите точность e: ');
Readln(e);
 stx:=x;  {x в степени}
 fakt:=1;  {значение факториала в знаменателе}
 ex:=1;  {первый элемент в разложении}
 i:=1;  {счётчик}
while stx/fakt>=e do begin  {до тех пор, пока элемент в разложении не меньше точности}
                     ex:=ex+stx/fakt;
                     inc(i);
                     stx:=stx*x;
                     fakt:=fakt*i;
                     end;
Writeln('Количество элементов в разложении = ',i+1);
Writeln('Значение e^',x:6:6,'= ',ex:6:6);
Writeln('Значение компьютера: ',exp(x):6:6);
Readln;
End.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 13.12.2011 в 16:51.
Mad_Cat вне форума Ответить с цитированием
Старый 14.12.2011, 05:51   #6
KAPICH55
 
Регистрация: 12.12.2011
Сообщений: 3
По умолчанию

Большое спасибо за помощь=)
KAPICH55 вне форума Ответить с цитированием
Старый 14.12.2011, 06:51   #7
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Небольшое замечание, не лучше ли считать сумму через рекуррентные соотношения?
т.к. даже факториал 20 уже довольно большое число, а если считать как (пред элемент)*x/(текущее n), то считать можно хоть до миллиона
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование циклических процессов в Паскале KAPICH55 Помощь студентам 0 12.12.2011 20:20
программирования циклических вычислительных процессов и массивы Artemuys Помощь студентам 4 03.11.2011 01:08
Программирование циклических процессов на С++ ZeX Помощь студентам 0 17.10.2011 13:42
Программирование циклических процессов KnighTeX Помощь студентам 5 04.10.2009 00:35