La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Equazione di secondo grado.

Presentazioni simili


Presentazione sul tema: "Equazione di secondo grado."— Transcript della presentazione:

1 Equazione di secondo grado.
If “annidati”. Piero Scotto - C14

2 Finalità del corso Finalità del corso Finalità del corso
Piero Scotto - C14

3 Esercizio 4. Scrivere un programma per risolvere equazioni del tipo ax2 + bx + c = 0, cioè di secondo grado. Pensiamo di ottenere a, b, c da input e risolvere fornendo i valori dell’incognita x. Piero Scotto - C14

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

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

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

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

8 #include <stdio.h> #include <math.h> int main(void)
{ float a, b, c, delta, x1, x2; /* variabili */ printf("Risoluzione equazione: ax^2 + bx + c = 0. Inserire nell’ordine a, b, c  "); scanf("%f %f %f", &a, &b, &c); /* se a=0 allora l’equazione si abbassa di grado */ if (a==0)   { if (b==0) {printf (“L’equazione è una identità”);} else / b diverso da zero */  {  x1=-c/b;       printf("La soluzione e’ x= %.2f",x1);    } } else     { delta = b*b-4*a*c; /* calcolo il delta */       if (delta < 0)                   printf("Le soluzioni non sono reali");       else {  x1=(-b+sqrt(delta))/(2*a); x2=(-b-sqrt(delta))/(2*a);                   printf("Le soluzioni sono: x1=%.2f  x2=%.2f ",x1,x2);  } } return 0; Piero Scotto - C14

9 Piero Scotto - C14

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: Piero Scotto - C14

11 Sono 12 casi. Possiamo usare una serie di if uno dentro l’altro o, come si dice, annidati.
Piero Scotto - C14

12 La variabile è di tipo char (carattere), chiamiamola M (mese).
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 <stdio.h> 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; } Piero Scotto - C14

13 #include <stdio.h> 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; } Piero Scotto - C14

14 #include <stdio.h> 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; } Piero Scotto - C14

15 printf("Scrivere la lettera del mese del codice fiscale ");
#include <stdio.h> /* 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; } Piero Scotto - C14


Scaricare ppt "Equazione di secondo grado."

Presentazioni simili


Annunci Google