Si considerino le due seguenti funzioni:
Function A(n: Integer): Integer; Begin If n > 0 Then A:=n+A(n-1) Else A:=0 End; function B(n: integer): integer; begin B := (n*(n+1) div 2) end;
Quale delle seguenti affermazioni è vera?
Risposte:
- la funzione A calcola il fattoriale di un numero mentre la funzione B calcola la sommatoria di tutti i numeri compresi fra 1 ed n.
- sia la funzione A che la funzione B calcolano la sommatoria di tutti i numeri compresi fra 1 ed n, assumendo n maggiore o uguale a 1.
- la funzione A e la funzione B calcolano esattamente la stessa funzione.
- nessuna delle precedenti affermazioni è vera.
Soluzione: b.
Soluzione
Tratta da: Materiali didattici 2008
Si tratta di riconoscere semplici algoritmi e formule di base; nel caso specifico della funzione A l’algoritmo ricorsivo che calcola la somma dei naturali da 1 ad n.
Nel caso della funzione B occorre riconoscere la formula di Gauss per lo stesso calcolo.