La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Piero Scotto - C141 C14 #4 Equazione di secondo grado. If annidati.

Presentazioni simili


Presentazione sul tema: "Piero Scotto - C141 C14 #4 Equazione di secondo grado. If annidati."— Transcript della presentazione:

1 Piero Scotto - C141 C14 #4 Equazione di secondo grado. If annidati.

2 Finalità del corso Piero Scotto - C142

3 3 Esercizio 4. Scrivere un programma per risolvere equazioni del tipo ax 2 + bx + c = 0, cioè di secondo grado. Pensiamo di ottenere a, b, c da input e risolvere fornendo i valori dellincognita x.

4 Piero Scotto - C144 Sappiamo che la soluzione generale è: Dobbiamo fare attenzione che: 1.il valore di a sia diverso da zero, se a=0 lequazione si abbassa di grado 2. il delta (b 2 -4ac) sia maggiore di zero, se il delta è zero cè una soluzione doppia x =-b, se il delta è minore di zero lequazione è impossibile

5 Piero Scotto - C145 Equazioni secondo grado Inserire a, b, c a = 0 ? SI NO b = 0 ? Delta >= 0 ? Equazione impossibile x1= [-b+sqrt(delta)]/2a x2= [-b-sqrt(delta)]/2a Stampa risposta SINO SI NO Identitàx=-b/c

6 Piero Scotto - C146 int main(void) { float ; /* variabili saranno float*/ printfprintf("Risoluzione equazione: ax^2 + bx + c = 0. Inserire nellordine a, b, c "); scanfscanf("%f %f %f", &a, &b, &c); /* se a=0 allora lequazione si abbassa di grado */ /* se b=0 allora lequazione diventa lidentità c=0*/ /* altrimenti (a e b diversi da zero) calcolo il delta */ if (delta < 0.0) printf("Le soluzioni non sono reali"); printf else { /* calcolo le soluzioni e le stampo */ printf("Le soluzioni sono: x1=%.2f x2=%.2f ",x1,x2);printf return 0; }

7 Piero Scotto - C147 { float a, b, c, delta, x1, x2; /* variabili */ printfprintf("Risoluzione equazione: ax^2 + bx + c = 0. Inserire nellordine a, b, c "); scanfscanf("%f %f %f", &a, &b, &c); /* se a=0 allora lequazione si abbassa di grado */ if (a==0) { if (b==0) {printf ("Lequazione è una identità");} else / b diverso da zero */ { x1=-c/b; printf("La soluzione e x= %.2f",x1); }printf } else { delta = b*b-4*a*c; /* calcolo il delta */ if (delta < 0) printf("Le soluzioni non sono reali"); printf else { x1=(-b+sqrt(delta))/(2*a); x2=(-b-sqrt(delta))/(2*a);sqrt printf("Le soluzioni sono: x1=%.2f x2=%.2f ",x1,x2); }printf } return 0; }

8 Piero Scotto - C148 #include int main(void) { float a, b, c, delta, x1, x2; /* variabili */ printfprintf("Risoluzione equazione: ax^2 + bx + c = 0. Inserire nellordine a, b, c "); scanfscanf("%f %f %f", &a, &b, &c); /* se a=0 allora lequazione si abbassa di grado */ if (a==0) { if (b==0) {printf (Lequazione è una identità);} else / b diverso da zero */ { x1=-c/b; printf("La soluzione e x= %.2f",x1); }printf } else { delta = b*b-4*a*c; /* calcolo il delta */ if (delta < 0) printf("Le soluzioni non sono reali"); printf else { x1=(-b+sqrt(delta))/(2*a); x2=(-b-sqrt(delta))/(2*a);sqrt printf("Le soluzioni sono: x1=%.2f x2=%.2f ",x1,x2); }printf } return 0; }

9 Piero Scotto - C149

10 10 If annidati Scriviamo un programma che inserito il codice fiscale, restituisce la data di nascita. Occorre sapere dove è scritta la data di nascita nel codice fiscale, e poi trattare le informazioni in maniera corretta. Per ora consideriamo solo il mese di nascita che è indicato da una lettera GRLGPP48L21D969E. Cerchiamo di convertire quella lettera nel mese corrispondente. Sappiamo che:

11 Piero Scotto - C1411 Sono 12 casi. Possiamo usare una serie di if uno dentro laltro o, come si dice, annidati.

12 Piero Scotto - C1412 Per non complicare troppo le cose, ipotizziamo che la lettera corrispondente al mese venga passata da input. La leggiamo e poi facciamo tutti i casi possibili, dalla A alla T. La variabile è di tipo char (carattere), chiamiamola M (mese). #include int main(void) {char M; short mese; printf("Scrivere la lettera del mese del codice fiscale "); scanf("%c", M); if (M=='A') mese=1; printf(" Il mese è %d",mese); return 0; }

13 Piero Scotto - C1413 #include int main(void) {char M; short mese=0; printf("Scrivere la lettera del mese del codice fiscale "); /* al posto di scanf("%c", M) usiamo getchar */ M= getchar(); if (M=='A') mese=1; if (M=='B') mese=2; if (M=='C') mese=3; if (M=='D') mese=4; if (M=='E') mese=5; if (M=='H') mese=6; if (M=='L') mese=7; if (M=='M') mese=8; if (M=='P') mese=9; if (M=='R') mese=10; if (M=='S') mese=11; if (M=='T') mese=12; printf(" Il mese è %d",mese); return 0; }

14 Piero Scotto - C1414 #include int main(void) {char M; short mese=0; printf("Scrivere la lettera del mese del codice fiscale "); /* al posto di scanf("%c", M) usiamo getchar */ M= getchar(); if (M=='A') mese=1; if (M=='B') mese=2; if (M=='C') mese=3; if (M=='D') mese=4; if (M=='E') mese=5; if (M=='H') mese=6; if (M=='L') mese=7; if (M=='M') mese=8; if (M=='P') mese=9; if (M=='R') mese=10; if (M=='S') mese=11; if (M=='T') mese=12; printf(" Il mese è %d",mese); return 0; }

15 Piero Scotto - C1415 #include /* calcolo del mese usando if annidati e controllo errore */ int main(void) {char M; short mese=0; printf("Scrivere la lettera del mese del codice fiscale "); /* scanf("%c", M); */ M= getchar(); if (M=='A') mese=1; else if (M=='B') mese=2; else if (M=='C') mese=3; else if (M=='D') mese=4; else if (M=='E') mese=5; else if (M=='H') mese=6; else if (M=='L') mese=7; else if (M=='M') mese=8; else if (M=='P') mese=9; else if (M=='R') mese=10; else if (M=='S') mese=11; else if (M=='T') mese=12; else printf(" Lettera errata"); /* in caso di errore */ printf(" Il mese è %d",mese); return 0; }


Scaricare ppt "Piero Scotto - C141 C14 #4 Equazione di secondo grado. If annidati."

Presentazioni simili


Annunci Google