1 / 15

C14 #4 Equazione di secondo grado. If “ annidati”.

C14 #4 Equazione di secondo grado. If “ annidati”. Finalità del corso. Finalità del corso. Finalità del corso. Finalità del corso. Finalità del corso. Esercizio 4. Scrivere un programma per risolvere equazioni del tipo ax 2 + bx + c = 0, cioè di secondo grado.

wilton
Download Presentation

C14 #4 Equazione di secondo grado. If “ annidati”.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Finalità del corso Finalità del corso 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. intmain(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> intmain(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. 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> intmain(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> intmain(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> intmain(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. #include <stdio.h> /* calcolo del mese usando if annidati e controllo errore */ intmain(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

More Related