Silnia, czas wykonywania - Pascal
This commit is contained in:
parent
a5d8492211
commit
8eaf0b9eec
|
@ -0,0 +1,71 @@
|
||||||
|
program silnia;
|
||||||
|
uses sysUtils;
|
||||||
|
function Czytaj_liczbe: Int64;
|
||||||
|
var
|
||||||
|
liczba : Int64;
|
||||||
|
begin
|
||||||
|
Write('Podaj liczbę calkowita: ');
|
||||||
|
ReadLn(liczba);
|
||||||
|
Czytaj_liczbe := liczba;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function Silnia_rekurencyjna(n: Int64): Int64;
|
||||||
|
begin
|
||||||
|
if n = 0 then
|
||||||
|
Silnia_rekurencyjna := 1
|
||||||
|
else
|
||||||
|
Silnia_rekurencyjna := n * Silnia_rekurencyjna(n - 1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function Silnia_iteracyjna(n: Int64): Int64;
|
||||||
|
var
|
||||||
|
wynik, i : Int64;
|
||||||
|
begin
|
||||||
|
wynik := 1;
|
||||||
|
for i := 1 to n do
|
||||||
|
wynik := wynik * i;
|
||||||
|
Silnia_iteracyjna := wynik;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Wypisz_wyniki(liczba,ile,wynikRek, wynikIter : Int64; CzasI, CzasR : TdateTime);
|
||||||
|
begin
|
||||||
|
writeln('Podana liczba: ', liczba);
|
||||||
|
writeln('Podana liczba iteracji', ile);
|
||||||
|
writeln('Czas silni rekurencyjnej: ', CzasR:0:2, ' sekund');
|
||||||
|
WriteLn('Silnia rekurencyjna: ', wynikRek:10);
|
||||||
|
writeln('Czas silni iteracyjnej: ', CzasI:0:2, ' sekund');
|
||||||
|
WriteLn('Silnia iteracyjna: ', wynikIter:10);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure Glowna_procedura;
|
||||||
|
var
|
||||||
|
CzasI, CzasR : TdateTime;
|
||||||
|
i : Int64;
|
||||||
|
ile, liczba : Int64;
|
||||||
|
wynikI, wynikR : Int64;
|
||||||
|
begin
|
||||||
|
liczba := Czytaj_liczbe();
|
||||||
|
Write('Podaj liczbę iteracji: ');
|
||||||
|
ReadLn(ile);
|
||||||
|
CzasI := Time();
|
||||||
|
for i := 0 to ile do
|
||||||
|
wynikI := Silnia_iteracyjna(liczba);
|
||||||
|
CzasI := Time()-CzasI;
|
||||||
|
CzasI := CzasI*24*60*60;
|
||||||
|
|
||||||
|
|
||||||
|
CzasR := Time();
|
||||||
|
for i := 0 to ile do
|
||||||
|
wynikR := Silnia_rekurencyjna(liczba);
|
||||||
|
CzasR := Time()-CzasR;
|
||||||
|
CzasR := CzasR*24*60*60;
|
||||||
|
|
||||||
|
|
||||||
|
Wypisz_wyniki(liczba,ile,wynikR,wynikI,CzasI,CzasR);
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
begin
|
||||||
|
Glowna_procedura()
|
||||||
|
end.
|
Loading…
Reference in New Issue