Primo programma in C Esercizi risolti 1 Esercizio

Transcript

Primo programma in C Esercizi risolti 1 Esercizio
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