2002/03 – Fase scolastica – 07

Considerate le seguenti sei funzioni, con argomento N (un intero non negativo).
Ciascuna di esse calcola un qualche valore scelto tra: N, 2N , N2, N3, 2N, N!, NN.
Dovete stabilire qual è il valore calcolato da ogni funzione.

  1. FUNCTION A(N: INTEGER): INTEGER;
    BEGIN
       IF N > 0 THEN
          A:=A(N-1)+A(N-1)
       ELSE
          A:=1
    END;
  2. FUNCTION B(N: INTEGER): INTEGER;
    BEGIN
       IF N > 0 THEN
          B:=B(N-1)+2*N-1
       ELSE
          B:=0
    END;
  3. FUNCTION C(N: INTEGER): INTEGER;
    VAR
       I, R: INTEGER;
    BEGIN
       R:=1;
       FOR I:=1 TO N DO
          R:=R+R;
       C:=R
    END;
  4. FUNCTION D(N: INTEGER): INTEGER;
    VAR
       I, R: INTEGER;
    BEGIN
       R:=1;
       FOR I:=1 TO N DO
          R:=R*I;
       D:=R
    END;
  5. FUNCTION E(N: INTEGER): INTEGER;
    VAR
       I, R: INTEGER;
    BEGIN
       R:=0;
       FOR I:=1 TO N DO
          R:=R+N;
       E:=R
    END;
  6. FUNCTION F(N: INTEGER): INTEGER;
    BEGIN
       IF N > 1 THEN
          F:=N*F(N-1)
       ELSE
          F:=1
    END;

Note

  • potrebbero esserci doppioni: più funzioni potrebbero calcolare lo stesso valore;
  • N! = 1x2x3….xN; quindi 3!=6 e 5!=120;
  • si assume che 0!=1.