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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2010, 14:35   #1
Денис999
Форумчанин
 
Регистрация: 24.05.2010
Сообщений: 124
По умолчанию Факториал

Подскажите как можно усовершенствовать программу, сделать ее универсальной, что бы можно было вводить факториал например 3 раза и оно его обчисляло и выводило на экран как оно делает это.
Код:
program lab31;
uses crt;
function Fact(n:integer):integer;
begin
if n=1 then Fact:=20
else
begin
writeln(n);
Fact:=Fact(n-1)+1;
end;
end;
var
rez:longint;
i,n:byte;
begin
clrscr;
write ('Vedite n = ');
readln(n);
write ('Rezultat = ',Fact(n));
readln;
end.
Денис999 вне форума Ответить с цитированием
Старый 22.11.2010, 14:42   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Да хоть 10 раз, ты популярно объясни - чего тебе надо? По-русски желательно, то есть так, чтобы тебя смогли понять другие.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 22.11.2010, 14:47   #3
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цикл ему,видимо, нужен
Код:
While n >= 0 do
Begin 
   write ('Vedite n = ');
   readln(n);
   write ('Rezultat = ',Fact(n));
End;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 22.11.2010, 21:40   #4
Денис999
Форумчанин
 
Регистрация: 24.05.2010
Сообщений: 124
По умолчанию

Одним словом мне надо что бы я ввел n=30, программа вывела мне 1 2 3...30 и правильно посчитало.
Денис999 вне форума Ответить с цитированием
Старый 22.11.2010, 22:03   #5
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
Одним словом мне надо что бы я ввел n=30, программа вывела мне 1 2 3...30 и правильно посчитало.
;
Код:
Var
   i:byte;
Begin
  write ('Vedite n = ');
  readln(n);
  For i:=1 to N do
  Begin
     write ('При N = ',i,' Rezultat = ',Fact(i));
  End;
  Readln
End.
А что бы правильно посчитало надо функцию переделать
Код:
Function Fact(M:Byte):LongInt;
Begin
   If (M = 0) or (M = 1) then Fact:=1
   Else
   Fact:=Fact(M-1)*M
End.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 23.11.2010, 16:45   #6
Денис999
Форумчанин
 
Регистрация: 24.05.2010
Сообщений: 124
По умолчанию

Спасибо большое))
Денис999 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
факториал locdoc Помощь студентам 11 14.11.2010 10:37
C++ (факториал) slim>>> Помощь студентам 2 13.01.2010 20:34
Факториал. dimka660i Помощь студентам 11 10.10.2009 23:28
Факториал в C++ slog Помощь студентам 2 03.12.2008 07:56
Факториал Killbrum Софт 14 13.08.2008 00:34