Equazione di secondo grado.

Slides:



Advertisements
Presentazioni simili
Corso di Fondamenti di Programmazione canale E-O
Advertisements

INFORMATICA Altre Istruzioni di I/O
LINGUAGGIO DI PROGRAMMAZIONE C
INFORMATICA Algoritmi fondamentali
INFORMATICA Strutture condizionali
Sottoprogrammi: funzioni e procedure
Uso avanzato di C.
Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire.
Procedure e funzioni ricorsive
EQUAZIONI DI 2° GRADO.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Introduzione al linguaggio C
Introduzione al linguaggio C Dr. Francesco Fabozzi Corso di Informatica.
La ricorsione Simulazione. Il Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n:
ESERCITAZIONE N. 5 ESERCIZIO N. 1 Autore: Biagio Brattoli S I Corso.
Tail recursion: esempio
Esercizi su strutture dinamiche Fondamenti di Programmazione Canale AD a.a. 2009/2010.
Algoritmi Politecnico di Milano C Primi programmi Politecnico di Milano.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
CORSO DI PROGRAMMAZIONE II Introduzione alla ricorsione
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Procedure e funzioni nei linguaggi di alto livello Lab Programmazione - turno /2006.
Esempi di riuso del codice nei linguaggi di alto livello Lab Programmazione - turno /2006.
INFORMATICA Esercizi.
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
A.A. 2010/2011Ambienti di Programmazione per il Software di Base1 (Es. – 6) Ambienti di Programmazione per il Software di Base Le Stringhe in C Input.
Struct, enum, Puntatori e Array dinamici
Strutture di controllo nel C
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Strutture di controllo in C -- Flow Chart --
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Dichiarazioni e tipi predefiniti nel linguaggio C
La Programmazione Ricorsiva
I File.
Le funzioni.
PUNTATORI Un puntatore è una variabile destinata a contenere lindirizzo di unaltra variabile Vincolo di tipo: un puntatore a T può contenere solo lindirizzo.
C14 #12 Verso le olimpiadi Piero Scotto - C14.
EQUAZIONI DI SECONDO GRADO
Piero Scotto - C141 C14 #6 I VETTORI (#define e const)
In molti casi è utile assegnare a degli identificatori dei valori che restino costanti durante tutto il programma e che non possano essere cambiati nemmeno.
Piero Scotto - C141 C14 #09 Gestione stringhe: esercizio. Switch case. Variabili logiche.
void binario(int n); …………………
Massimo Comun Divisore
Radice quadrata di un numero
Regola di Cartesio Consideriamo l’equazione di secondo grado
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Piero Scotto - C141 C14 SINTASSI DEL C VARIABILI e COSTANTI.
Gestione dei file di testo, matrici e struct
C14 #5 I cicli FOR e WHILE Piero Scotto - C14.
Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive.
Piero Scotto - C141 C14 #10 Il programma Dev-c++ Gestione dei file.
Soluzioni e commenti esercizi 1 e 2
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni – BCOR Ingegneria Elettronica – BELR Introduzione al C Esercitazione 5 D. Bloisi, A.
Anno accademico Le istruzioni di controllo in C.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
1 Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( ) Laboratorio di programmazione Lezione 11 e 12 -
RISOLUZIONE DI EQUAZIONI
EQUAZIONI BIQUADRATICHE
#include void main() { int a,b,c,; float s, x,x1,x2,delta,alfa,beta; int num[3]; int i; printf("La forma classica dell'equazione di 2° grado è: a*x^2+b*x+c=0\n.
Flusso Statico e Dinamico 20/03/2006. Codice da Interpretare int valore; valore = funz(); if( valore > 0 ) { [codice1] } else { [codice2] } return valore;
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
Arduino: introduzione alla programmazione
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Operatori di incremento e decremento
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Transcript della presentazione:

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

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

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

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

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

{ 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

{ 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

#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

Piero Scotto - C14

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

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

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

#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

#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

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