Esercizio 1
Scrivere un programma interattivo
che attraverso opportuni messaggi
sullo standard output richieda in
ingresso un numero intero positivo,
ne calcoli il fattoriale, e lo stampi
sullo standard output
Fondamenti di Informatica – CdL Ingegneria Gestionale – aa 2006/2007
Esercizio 1- Analisi problema
Calcolo del fattoriale:
n! = 1*2*3*…*(n-1)*n
In pseudo codice:
fattoriale=1
for(i=1..n)
fattoriale = fattoriale*i
Fondamenti di Informatica – CdL Ingegneria Gestionale – aa 2006/2007
Esercizio 1 – Algoritmo
Inizio
Lettura n
fattoriale 1
i1
i <= n?
no
Stampa fattoriale
sì
fattoriale fattoriale * i
ii+1
Fine
Fondamenti di Informatica – CdL Ingegneria Gestionale – aa 2006/2007
Esercizio 1 – Codice
/* lettura dati in ingresso */
unsigned long int fattoriale = 1;
unsigned int i;
for(i= 1; i <= n; i++)
fattoriale *= i;
printf(“il fattoriale di %d è %ld\n”, n, fattoriale);
Fondamenti di Informatica – CdL Ingegneria Gestionale – aa 2006/2007
Esercizio 2
Scrivere un programma interattivo
che attraverso opportuni messaggi
sullo standard output richieda in
ingresso un numero intero positivo n,
calcoli la somma dei primi n numeri
interi pari, e stampi il risultato sullo
standard output
Fondamenti di Informatica – CdL Ingegneria Gestionale – aa 2006/2007
Esercizio 2- Analisi problema
Calcolo della somma:
s = 2+4+6+…+(2*n-2)+(2*n)
In pseudo codice:
somma=0
for(i=2..2*n, ii+2)
somma = somma+i
Fondamenti di Informatica – CdL Ingegneria Gestionale – aa 2006/2007
Esercizio 2 – Algoritmo
Inizio
Lettura n
somma 0
i2
i <= 2*n?
no
Stampa somma
sì
somma somma + i
ii+2
Fine
Fondamenti di Informatica – CdL Ingegneria Gestionale – aa 2006/2007
Esercizio 2 – Codice
/* lettura dati in ingresso */
unsigned long int somma = 0;
unsigned int i;
for(i= 2; i <= 2*n; i+=2)
somma += i;
printf(“la somma dei primi %d numeri pari è %ld\n”, n,
somma);
Fondamenti di Informatica – CdL Ingegneria Gestionale – aa 2006/2007
Esercizio 2- Analisi alternativa:
Calcolo della somma:
s = [2+(2*n)] + [4+(2*n-2)] + … =
(n/2) * (2*n + 2) = n*n + n
esempi: n = 3 s = 2 + 4 + 6 = 12
s = 3*3 + 3 = 12
n = 4 s = 2 + 4 + 6 + 8 = 20
s = 4*4 + 4 = 20
In pseudo codice:
somma=n*n + n
Fondamenti di Informatica – CdL Ingegneria Gestionale – aa 2006/2007
Esercizio 3
Scrivere un programma interattivo
che attraverso opportuni messaggi
sullo standard output richieda in
ingresso un numero intero positivo n,
calcoli la somma dei primi n numeri
interi dispari, e stampi il risultato
sullo standard output
Fondamenti di Informatica – CdL Ingegneria Gestionale – aa 2006/2007