Добавил:
Hist
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Паскаль (I семестр) / K01-172 / 03 / fact
.pas program Factorial;
procedure InputN(var n:byte);
begin
write('‚ўҐ¤ЁвҐ зЁб«® N, ¤«п Є®в®а®Ј® бзЁв Ґвбп д Єв®аЁ « (N!): ');
readln(n);
end;
function FactorialCycle(n:byte):longint;
var
i:byte;
Factorial:longint;
begin
Factorial:=1;
for i:=1 to n do
Factorial:=Factorial*I;
FactorialCycle:=Factorial;
end;
function FactorialRecursive(n:byte):longint;
begin
if n=1 then
FactorialRecursive:=1
else
FactorialRecursive:=n*FactorialRecursive(n-1);
end;
procedure ComputeFactorials(var FactorialC,FactorialR:longint;n:byte);
begin
if n>0 then
begin
FactorialC:=FactorialCycle(n);
FactorialR:=FactorialRecursive(n);
end;
if n=0 then
begin
FactorialC:=1;
FactorialR:=1;
end;
end;
procedure OutputFactorials(FactorialC,FactorialR:longint;n:byte);
begin
if (FactorialC<>0) and (FactorialR<>0) then
begin
writeln('–ЁЄ«®¬ ',n,'!=',FactorialC);
writeln('ђҐЄгабЁў® ',n,'!=',FactorialR);
end
else
begin
writeln('” Єв®аЁ « ўўҐ¤Ґ®Ј® зЁб« Ґ ®ЇаҐ¤Ґ«Ґ Ё«Ё б«ЁиЄ®¬ Ў®«ми®©!');
end;
readln;
end;
var
n:byte;
FactorialC,FactorialR:longint;
begin
InputN(n);{ўў®¤ зЁб« , ¤«п Є®в®а®Ј® бзЁв Ґвбп д Єв®аЁ «}
ComputeFactorials(FactorialC,FactorialR,n);{а ббзҐв д Єв®аЁ « }
OutputFactorials(FactorialC,FactorialR,n);{ўлў®¤ д Єв®аЁ « нЄа }
end.
procedure InputN(var n:byte);
begin
write('‚ўҐ¤ЁвҐ зЁб«® N, ¤«п Є®в®а®Ј® бзЁв Ґвбп д Єв®аЁ « (N!): ');
readln(n);
end;
function FactorialCycle(n:byte):longint;
var
i:byte;
Factorial:longint;
begin
Factorial:=1;
for i:=1 to n do
Factorial:=Factorial*I;
FactorialCycle:=Factorial;
end;
function FactorialRecursive(n:byte):longint;
begin
if n=1 then
FactorialRecursive:=1
else
FactorialRecursive:=n*FactorialRecursive(n-1);
end;
procedure ComputeFactorials(var FactorialC,FactorialR:longint;n:byte);
begin
if n>0 then
begin
FactorialC:=FactorialCycle(n);
FactorialR:=FactorialRecursive(n);
end;
if n=0 then
begin
FactorialC:=1;
FactorialR:=1;
end;
end;
procedure OutputFactorials(FactorialC,FactorialR:longint;n:byte);
begin
if (FactorialC<>0) and (FactorialR<>0) then
begin
writeln('–ЁЄ«®¬ ',n,'!=',FactorialC);
writeln('ђҐЄгабЁў® ',n,'!=',FactorialR);
end
else
begin
writeln('” Єв®аЁ « ўўҐ¤Ґ®Ј® зЁб« Ґ ®ЇаҐ¤Ґ«Ґ Ё«Ё б«ЁиЄ®¬ Ў®«ми®©!');
end;
readln;
end;
var
n:byte;
FactorialC,FactorialR:longint;
begin
InputN(n);{ўў®¤ зЁб« , ¤«п Є®в®а®Ј® бзЁв Ґвбп д Єв®аЁ «}
ComputeFactorials(FactorialC,FactorialR,n);{а ббзҐв д Єв®аЁ « }
OutputFactorials(FactorialC,FactorialR,n);{ўлў®¤ д Єв®аЁ « нЄа }
end.