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