Programmazione in C Primo programma in C Primo programma in C Esercizi risolti 1 Esercizio “Somma di due numeri” Si scriva un programma in linguaggio C che legga due valori interi e visualizzi la loro somma. Soluzione 1 /* PROGRAMMAZIONE IN C */ 2 3 4 /* File: somma.c */ /* Soluzione proposta esercizio "Somma di due numeri" */ 5 6 7 #include <stdio.h> #include <stdlib.h> 8 9 10 11 12 int main(void) { int a, b ; /* addendi */ int c ; /* somma */ 13 /* STAMPA COSA ESEGUIRA’ IL PROGRAMMA */ printf("Somma due numeri\n\n") ; 14 15 16 /* LEGGI GLI ADDENDI */ printf("Immetti il primo numero: ") ; scanf("%d", &a) ; 17 18 19 20 printf("Immetti il secondo numero: ") ; scanf("%d", &b) ; 21 22 23 /* CALCOLA LA SOMMA */ c = a + b ; 24 25 26 /* STAMPA IL RISULTATO */ printf("\n") ; printf("La somma %d + %d e’ uguale a %d\n", a, b, c) ; 27 28 29 30 exit(0) ; 31 32 } 2 Esercizio “Precedente e successivo” Si scriva un programma in linguaggio C che legga un valore intero e visualizzi il valore intero precedente e il successivo. Soluzione 1 /* PROGRAMMAZIONE IN C */ 2 3 /* File: precedente_successivo.c */ c 2006 Politecnico di Torino 1 Programmazione in C 4 Primo programma in C /* Soluzione proposta esercizio "Precedente e successivo" */ 5 6 7 #include <stdio.h> #include <stdlib.h> 8 9 10 11 12 int main(void) { int a ; /* numero inserito */ int prec, succ ; /* numero precedente e numero successivo */ 13 /* LEGGI IL NUMERO */ printf("Immetti il numero: ") ; scanf("%d", &a) ; 14 15 16 17 /* CALCOLA IL NUMERO PRECEDENTE */ prec = a - 1 ; 18 19 20 /* CALCOLA IL NUMERO SUCCESSIVO */ succ = a + 1 ; 21 22 23 /* STAMPA IL RISULTATO */ printf("\n") ; printf("Il numero inserito e’ %d\n", a) ; printf("Il numero precedente a %d e’ %d\n", a, prec) ; printf("Il numero successivo a %d e’ %d\n", a, succ) ; 24 25 26 27 28 29 exit(0) ; 30 31 } 3 Esercizio “Media tra due numeri” Si scriva un programma in linguaggio C che legga due valori interi e visualizzi la loro media aritmetica. Soluzione 1 /* PROGRAMMAZIONE IN C */ 2 3 4 /* File: media.c */ /* Soluzione proposta esercizio "Media tra due numeri" */ 5 6 7 #include <stdio.h> #include <stdlib.h> 8 9 10 11 12 13 int main(void) { int a, b ; /* numeri inseriti */ float somma ; /* somma dei due numeri */ float media ; /* media dei due numeri */ 14 15 16 /* STAMPA COSA ESEGUIRA’ IL PROGRAMMA */ printf("Calcolo della media di due numeri\n\n") ; 17 18 19 20 /* LEGGI I DUE NUMERI */ printf("Immetti il primo numero: ") ; scanf("%d", &a) ; 21 c 2006 Politecnico di Torino 2 Programmazione in C Primo programma in C printf("Immetti il secondo numero: ") ; scanf("%d", &b) ; 22 23 24 /* CALCOLA LA SOMMA DEI DUE NUMERI */ somma = a + b ; 25 26 27 /* CALCOLA LA MEDIA DEI DUE NUMERI */ media = somma / 2 ; 28 29 30 /* SOLUZIONE ALTERNATIVA PER IL CALCOLO DELLA MEDIA DEI DUE NUMERI. LA MEDIA E’ CALCOLATA SENZA UTILIZZARE LA VARIABILE SOMMA: media = ( a + b ) / 2 ; */ 31 32 33 34 35 /* STAMPA IL RISULTATO */ printf("\n") ; printf("La media aritmetica di %d e %d e’ %f\n", a, b, media); 36 37 38 39 exit(0) ; 40 41 } 4 Esercizio “Semplice Calcolatrice” Si scriva un programma in linguaggio C capace di compiere le 4 operazioni (somma, sottrazione, moltiplicazione e divisione) tra due numeri reali inseriti da tastiera. Dopo che sono stati inseriti i due numeri, detti A e B, il programma dovrı̈¿ 21 visualizzare i quattro valori A+B, A-B, A*B, A/B. Si ipotizzi che sia B6=0. Soluzione 1 /* PROGRAMMAZIONE IN C */ 2 3 4 /* File: calcolatrice.c */ /* Soluzione proposta esercizio "Semplice calcolatrice" */ 5 6 7 #include <stdio.h> #include <stdlib.h> 8 9 10 11 12 int main(void) { float a, b ; /* numeri inseriti */ float somma, differenza, prodotto, quoziente ; 13 14 15 /* STAMPA COSA ESEGUIRA’ IL PROGRAMMA */ printf("Programma: Calcolatrice\n\n") ; 16 17 18 19 /* LEGGI I DUE NUMERI */ printf("Inserisci il primo numero: ") ; scanf("%f", &a) ; 20 21 22 printf("Inserisci il secondo numero: ") ; scanf("%f", &b) ; 23 24 25 /* CALCOLA LA SOMMA */ somma = a + b ; 26 27 /* CALCOLA LA DIFFERENZA */ c 2006 Politecnico di Torino 3 Programmazione in C Primo programma in C differenza = a - b ; 28 29 /* CALCOLA IL PRODOTTO */ prodotto = a * b ; 30 31 32 /* CALCOLA LA DIVISIONE */ quoziente = a / b ; 33 34 35 /* STAMPA IL RISULTATO */ printf("\n") ; printf("Numeri inseriti %f e %f\n", a, b) ; printf("La somma e’ %f\n", somma) ; printf("La differenza e’ %f\n", differenza) ; printf("Il prodotto e’ %f\n", prodotto) ; printf("La divisione e’ %f\n", quoziente) ; 36 37 38 39 40 41 42 43 exit(0) ; 44 45 } 5 Esercizio “Calcolo di aree” Si scriva un programma in linguaggio C che, dato un numero reale D immesso da tastiera, calcoli e stampi: 1. l’area del quadrato di lato D 2. l’area del cerchio di diametro D 3. l’area del triangolo equilatero di lato D Soluzione 1 /* PROGRAMMAZIONE IN C */ 2 3 4 /* File: aree.c */ /* Soluzione proposta esercizio "Calcolo di aree" */ 5 6 7 8 #include <stdio.h> #include <stdlib.h> #include <math.h> 9 10 11 12 13 14 int main(void) { float d ; float aq, ac, at; float r ; /* numero inserito */ /* area quadrato, cerchio, triangolo */ /* raggio del cerchio */ 15 16 17 /* STAMPA COSA ESEGUIRA’ IL PROGRAMMA */ printf("Calcolo di aree\n\n") ; 18 19 20 21 /* LEGGI IL NUMERO */ printf("Immetti il valore di D: ") ; scanf("%f", &d) ; 22 23 24 /* CALCOLA L’AREA DEL QUADRATO DI LATO D */ aq = d * d ; 25 c 2006 Politecnico di Torino 4 Programmazione in C Primo programma in C /* soluzione alternativa per il calcolo dell’area del quadrato utilizzando la funzione pow(base, esponente) definita in math.h aq = pow(d, 2) ; */ 26 27 28 29 30 /* CALCOLA L’AREA DEL CERCHIO DI DIAMETRO D */ /* calcola il raggio del cerchio */ r = d/2 ; 31 32 33 34 /* calcola l’area del cerchio */ ac = M_PI * ( r * r ) ; /* nota: il valore di PI greco e’ definito in math.h come M_PI */ 35 36 37 38 /* soluzione alternativa per il calcolo dell’area del cerchio ac = M_PI * pow(r, 2) ; */ 39 40 41 42 /* CALCOLA L’AREA DEL TRIANGOLO EQUILATERO DI LATO D*/ at = ( sqrt( 3 ) / 4 ) * ( d * d ) ; 43 44 45 /* soluzione alternativa per il calcolo dell’area del triangolo equilatero at = ( sqrt( 3 ) / 4 ) * pow( d, 2 ) ; */ 46 47 48 49 /* STAMPA IL RISULTATO */ printf("\n") ; printf("Le aree calcolate sono:\n") ; printf("Area del quadrato di lato %f = %f\n", d, aq) ; printf("Area del cerchio di diametro %f = %f\n",d, ac) ; printf("Area del triangolo equilatero di lato %f = %f\n", d, at) ; 50 51 52 53 54 55 56 exit(0) ; 57 58 } c 2006 Politecnico di Torino 5