La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Piero Scotto - C141 C14 #3 Soluzioni e commenti esercizi 1 e 2.

Presentazioni simili


Presentazione sul tema: "Piero Scotto - C141 C14 #3 Soluzioni e commenti esercizi 1 e 2."— Transcript della presentazione:

1 Piero Scotto - C141 C14 #3 Soluzioni e commenti esercizi 1 e 2

2 Finalità del corso Piero Scotto - C142

3 3 Esercizio 1. Usando i programmi descritti a lezione scrivere un programma in C che calcoli la media aritmetica dei voti di uno studente, supponendo che i voti siano 9.

4 Piero Scotto - C144 /* Viene calcolata la media di 9 voti */ #include int main(void) { float a, b, c, d, e, f, g, h, i, media; scanf("%f %f %f %f %f %f %f %f %f",&a,&b,&c,&d,&e,&f,&g,&h,&i); media = (a + b + c + d + e + f + g + h + i)/9; printf("La media dei valori %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f e' %.2f ",a,b,c,d,e,f,g,h,i, media) ; return 0; }

5 Piero Scotto - C145 Possiamo migliorare il programma e far sì che onlinecompiler produca un eseguibile che interagisca con lutente.

6 Piero Scotto - C146 /* Viene calcolata la media di 9 voti */ #include int main(void) { float a, b, c, d, e, f, g, h, i, media, pausa; printf(" Inserire separati da spazio i nove voti: "); scanf("%f %f %f %f %f %f %f %f %f",&a,&b,&c,&d,&e,&f,&g,&h,&i); media = (a + b + c + d + e + f + g + h + i)/9; printf("La media dei valori %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f e' %.2f ",a,b,c,d,e,f,g,h,i, media) ; scanf("%f",&pausa); return 0; } /* i commenti non ci sono per motivi di spazio */

7 Piero Scotto - C147

8 8 Esercizio2. Scrivere un programma che calcoli larea del trapezio. Lutente inserirà base maggiore, base minore, altezza

9 Piero Scotto - C149 /* Calcolo area del trapezio. Fornire basi e altezza */ #include int main(void) { float B, b, h,area, pausa ; /* variabili */ printf("Calcolo dell'area del trapezio. Inserire le basi e l'altezza: "); scanf("%f %f %f", &B, &b, &h); /* chiedo i numeri da input e li assegno alle variabili */ area = ( B + b ) / 2 *( h ) ; /* calcolo il valore dell'area */ %.2f area printf("L'area del trapezio con base maggiore %.2f cm base minore %.2f cm altezza %.2f cm e': Area= %.2f cm^2 ", B,b,h,area ); printf(" Digitare 0 e invio per finire "); scanf("%f", &pausa); /* il solito trucco per vedere il risultato */ return 0; }

10 Piero Scotto - C1410 Come si vede il programma non è in grado di distinguere la base maggiore da quella minore. Possiamo istruirlo perché lo faccia. Basterà confrontare i due valori e poi mettere il più grande in B (base maggiore) e il più piccolo in b (base minore).

11 Piero Scotto - C1411 Variabile di scambio swap Scriviamo un programma che dati due numeri passati da input, metta il maggiore in B e il minore in b. Poi stampi il risultato. Partiamo con un semplice programma che legge e stampa i numeri. #include int main(void) { float B, b; /* variabili */ printf("Inserire i due numeri: "); scanf("%f %f",&B,&b); printf("B=%f b=%f",B,b); return 0; }

12 Piero Scotto - C1412 Prima di stampare occorre confrontare B e b Userò il costrutto if If (b>B) { swap=b; b=B; B=swap; } Tra parentesi graffe il blocco che viene eseguito se la condizione (b>B) è vera. Ad es. se b=6, B=2, b>B quindi la condizione dellif è vera e avremo lesecuzione del blocco {swap = 6; b = 2; B = 6; } swap è la variabile temporanea (a volte è indicata come tmp) che mi serve per lo scambio.

13 Piero Scotto - C1413 #include int main(void) { float B, b, swap; /* variabili */ printf("Inserire i due numeri: "); scanf("%f %f",&B,&b); if (b>B) { swap=b; b=B; B=swap; } printf("B=%f b=%f",B,b); return 0; }

14 Piero Scotto - C1414 /* Calcolo dellarea del trapezio. Fornire basi e altezza */ #include int main(void) { float B, b, h,area, pausa, swap ; /* variabili */ printf("Calcolo dell'area del trapezio. Inserire le basi e l'altezza: "); scanf("%f %f %f", &B, &b, &h); if (b>B) { swap=b; b=B; B=swap; } area = ( B + b ) / 2 *( h ) ; /* calcolo il valore dell'area */ printf("L'area del trapezio con base maggiore %.2f cm base minore %.2f cm altezza %.2f cm e': Area= %.2f cm^2 ", B,b,h,area ); printf(" Digitare 0 e invio per finire "); scanf("%f", &pausa); return 0; }

15 Piero Scotto - C1415 Listruzione if else

16 Piero Scotto - C1416 #include int main(void) { float B, b, swap; /* variabili */ printf("Inserire i due numeri: "); scanf("%f %f",&B,&b); if (b>B) { swap=b; b=B; B=swap; } printf("B=%f b=%f",B,b); return 0; }

17 Piero Scotto - C1417

18 Piero Scotto - C1418 Se si verifica la divisione per 0 il risultato è indefinito! Occorre prevenire questo rischio. If (a==0) {printf(Equazione non possibile);} else #include int main(void) { float a, b, x; /* variabili */ printf("Programma per risolvere equazioni del tipo ax + b = 0 Inserire a e b : "); scanf("%f %f",&a,&b); if (a==0) {printf("Equazione non possibile");} else {x = -(b/a); printf("Soluzione x= %f",x);} return 0; }

19 Piero Scotto - C1419

20 Piero Scotto - C1420

21 Piero Scotto - C1421 Esercizio 3. Scrivere un programma per risolvere equazioni del tipo ax + b = 0, cioè di primo grado. Pensiamo di ottenere a, b da input e risolvere ricavando x.

22 Piero Scotto - C1422 #include int main(void) { float a, b, x; /* variabili */ printf("Programma per risolvere equazioni del tipo ax + b = 0 Inserire a e b : "); scanf("%f %f",&a,&b); x = -(b/a); /* soluzione dellequazione di primo grado */ printf("Soluzione x= %f",x); return 0; } Questo programma presenta un potenziale rischio. Quale?

23 Piero Scotto - C1423 Se a=0, si verifica la divisione per 0 e il risultato è indefinito! Occorre prevenire questo rischio. If (a==0) {printf(Equazione non possibile);} else … #include int main(void) { float a, b, x; /* variabili */ printf("Programma per risolvere equazioni del tipo ax + b = 0 Inserire a e b : "); scanf("%f %f",&a,&b); if (a==0) {printf("Equazione non possibile");} else {x = -(b/a); printf("Soluzione x= %f",x);} return 0; }


Scaricare ppt "Piero Scotto - C141 C14 #3 Soluzioni e commenti esercizi 1 e 2."

Presentazioni simili


Annunci Google