Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Calcolo Combinatorio - Comb_Calc.lpr

Comb_Calc.lpr

Caricato da: A_butta
Scarica il programma completo

  1. program Comb_Calc;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. uses
  6.   {$IFDEF UNIX}{$IFDEF UseCThreads}
  7.   cthreads,
  8.   {$ENDIF}{$ENDIF}
  9.   Classes,crt;
  10.  
  11. var
  12.   scelta,n,k,i: byte;
  13.   risp:char;
  14. label start;
  15.  
  16. function Fatt(x:integer):integer;
  17. begin
  18.   if ((x=1) or (x=0)) then Result:=1
  19.   else Fatt:= x* Fatt(x-1);
  20. end;
  21.  
  22. function Disp(n,k:integer):integer;
  23. begin
  24.   if not(k = 1) then Disp:= n*Disp(n-1,k-1);
  25. end;
  26.  
  27. function Comb(n,k:integer):integer;
  28. begin
  29.   Result:= Disp(n,k) div Fatt(n);
  30. end;
  31.  
  32. {$IFDEF WINDOWS}{$R Comb_Calc.rc}{$ENDIF}
  33.  
  34. begin
  35. repeat
  36. clrscr;
  37. start: Writeln('         ******************************    ');
  38. writeln('         *  SCEGLIERE L''OPERAZIONE    *   ');
  39. writeln('         *     1) Permutazione        *    ');
  40. writeln('         *     2) Disposizioni        *    ');
  41. writeln('         *     3) Combinazioni        *    ');
  42. Writeln('         *                            *')  ;
  43. writeln('         //////////////////////////////    ');
  44. writeln;
  45. writeln;
  46. write('Selta: ');
  47. readln(scelta);
  48. clrscr;
  49. k:=1;
  50. if ((scelta<1) or (scelta>3)) then goto start;
  51. write('Inserire il numero "n" di elementi: n = ');
  52. readln(n);
  53. clrscr;
  54. if not(scelta = 1) then
  55.   begin
  56.     write('Inserire la classe "k" in cui operare:  k = ');
  57.     readln(k);
  58.     clrscr;
  59.   end;
  60.  
  61. case scelta of
  62.   1: writeln('P(',n,') = ',Fatt(n));
  63.   2: writeln('D(',n,',',k,') = ',Disp(n,k));
  64.   3: writeln('C(',n,',',k,') = ',Comb(n,k));
  65. end;
  66. writeln;
  67. writeln;
  68. write('Si desidera ripetere l''operazione? {s/n}: ');
  69. readln(risp);
  70. until risp='n';
  71. end.