Помощь - Поиск - Пользователи - Календарь
Полная версия: вычисление факториала в виде процедуры и составить программу
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Artf
Прошу вас, напишите мне программу!
Оформить вычисление факториала в виде процедуры и составить программу, вычисляющую для
заданного числа x сумму: 1 + (x)/1! + (x^2)/2! + ...
volvo
Вопрос на засыпку: ты уверена, что для вычисления этой суммы вообще необходима процедура (хм... вычислять факториал процедурой - интересное извращение, функция здесь подошла бы лучше) или даже функция вычисления факториала?
Artf
Цитата(volvo @ 27.10.2006 22:33) *

Вопрос на засыпку: ты уверена, что для вычисления этой суммы вообще необходима процедура (хм... вычислять факториал процедурой - интересное извращение, функция здесь подошла бы лучше) или даже функция вычисления факториала?


понимаешь такое условие! я знаю как с функцией! а с процедурой убилась
Мне на днях сдавать! Помоги чем сможешь
спасиба
мисс_граффити
Цитата(Artf @ 27.10.2006 22:57) *

понимаешь такое условие! я знаю как с функцией! а с процедурой убилась
Мне на днях сдавать! Помоги чем сможешь
спасиба

покажи, как ты знаешь с функцией - поможем переделать в процедуру.
Artf
Цитата(мисс_граффити @ 27.10.2006 23:06) *

покажи, как ты знаешь с функцией - поможем переделать в процедуру.

Код

Function FFactorial(n:integer):Longint;
Begin
      if (n=0) then
         FFactorial:=1
      else
         FFactorial:=FFactorial(n-1)*n
End;

Function FStepen(s:real;n:real):real;
   Begin
      if (n=0) then
         FStepen:=1
      Else
         FStepen:=FStepen(s,n-1)*s
   End;


var x, i, n, fcrtl:integer;
s: real;
begin
    write('vvedite n=');
    readln(n);
    if n<0 then writeln('Error! vvedite n>0 !!!')
    else  if n=0 then begin s:=1;writeln('summa= ',s:5:2)end  else
    begin  write('vvedite x=');
    readln(x);
    s:=0;
    fcrtl:=FFactorial(1); s:=1+x/fcrtl;
    for i:=2 to n do s:=s+(Fstepen(x,i))/FFactorial(i);
    writeln('Pri x=',x,' summa= ',s:5:2 )
end
end.


вот я разбиралась с ней 3 часа!!!!!!!
мисс_граффити
Зато понимаешь, как это делается smile.gif
Процедура... ну, например:
Код

procedure factp(n:byte; var res:extended);
var i:byte;
  begin
  res:=1;
  for i:=1 to n do
    res:=res*i;
  end;

то есть идея какая: мы передаем 2 переменные. n - это число, факториал которого надо посчитать. res - куда мы будем записывать результат. если для функции вызов выглядел так:
Код

res:=FFactorial(n);

то для процедуры:
Код

factp(n,res);
Artf
Цитата(мисс_граффити @ 27.10.2006 23:59) *

Зато понимаешь, как это делается smile.gif
Процедура... ну, например:
Код

procedure factp(n:byte; var res:extended);
var i:byte;
  begin
  res:=1;
  for i:=1 to n do
    res:=res*i;
  end;

то есть идея какая: мы передаем 2 переменные. n - это число, факториал которого надо посчитать. res - куда мы будем записывать результат. если для функции вызов выглядел так:
Код

res:=FFactorial(n);

то для процедуры:
Код

factp(n,res);




аааааааа вот каааак....сложно! Огромное спасибо!!! должно получиться еси я прально вставлю


а у тея есть МейлАгент? мой ящик вот.. censored точнее это ящик моего любимого! Я бы хотела от тея получать помощь когда потребуется мне! Если ты не против то добавь меня в свой список контактов и будем общатсья!

М
Сорри, я вынужден опять вмешаться в вашу милую беседу...
Цитата(Правила Форума)
1. на форуме запрещается:
...
12. просить ответить на какой-либо e-mail... e-mail адреса вырезаются. Уважайте собеседников - вы пришли на форум а не на доску объявлений...
E-Mail удален...

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.