Guest User

FunctionExecutionTime

a guest
Dec 24th, 2018
589
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.43 KB | None | 0 0
  1. program FunctionExecutionTime;
  2. uses crt, utils;
  3.  
  4. var n : integer;
  5.     timeStart_cycle : integer;
  6.     timeEnd_cycle : integer;
  7.     timeStart_recursion : integer;
  8.     timeEnd_recursion : integer;
  9.     factorial_c : real;
  10.     factorial_r : real;
  11.     k : integer;
  12.    
  13.     { Метод вычисления факториала через цикл }
  14.     function fact_cycle(n : integer):real;
  15.     var p : real;
  16.     begin
  17.         p := 1;
  18.         while(n > 1) do begin
  19.             p := p * n;
  20.             dec(n);
  21.         end;
  22.         result := p;
  23.     end;
  24.  
  25.     { Метод вычисления факториала через цикл }
  26.     function fact_rec(n : integer):real;
  27.     var p : real;
  28.     begin
  29.         if( n = 1 ) then result := 1
  30.         else result := n * fact_rec(n - 1);
  31.     end;
  32.  
  33.     begin
  34.        n := 20;
  35.        timeStart_cycle := Milliseconds();
  36.        for k := 1 to 1000 do begin factorial_c := fact_cycle(n); end;
  37.        timeEnd_cycle := Milliseconds();
  38.        
  39.        timeStart_recursion := Milliseconds();
  40.        for k := 1 to 1000 do begin factorial_r := fact_rec(n); end;
  41.        timeEnd_recursion := Milliseconds();
  42.        
  43.        writeln(' Факториал через цикл: ', factorial_c);
  44.        writeln(' время выполнения: ', (timeEnd_cycle - timeStart_cycle)/1000, ' сек' );
  45.        writeln;
  46.        writeln(' Факториал через рекурсию: ', factorial_r);
  47.        writeln(' время выполнения: ', (timeEnd_recursion - timeStart_recursion)/1000, ' сек' );
  48.     end.
Advertisement
Add Comment
Please, Sign In to add comment