“Algoritmi numerici” Dati due numeri interi calcolare il MCD Algoritmo 1 (per differenze successive) ¾ Analisi dei dati Identificatore Descrizione Tipo Input A primo numero intero si B secondo numero intero si C comodo usata per lo scambio intero si Output Lavoro si Esempio di “Realizzazione di un flow-chart” a cura del Prof. Salvatore DE GIORGI si Pag. 1 “Algoritmi numerici” #include <iostream> using namespace std; // ricerca del MCD fra due numeri per differenze successive int main (int argc, char *argv[]) { char quit; quit = '\0'; int a,b,c; while (quit != 'q') { cout << "inserire il primo numero ......:" ; cin >> a ; cout << "inserire il secondo numero ....:" ; cin >> b ; while (a!=b) { if (a<b) { c=a; a=b; b=c; } a=a-b; } cout << "il M.C.D. e' : " << b<<endl; // ======================================================= // termine programma con richiesta di uscita cout << "Premere q per uscire "; cin >> quit; } return 0; } Esempio di “Realizzazione di un flow-chart” a cura del Prof. Salvatore DE GIORGI Pag. 2 “Algoritmi numerici” Algoritmo 2 (per differenze successive) ¾ Analisi dei dati Identificatore Descrizione Tipo Input Output si A primo numero intero si B secondo numero intero si Esempio di “Realizzazione di un flow-chart” a cura del Prof. Salvatore DE GIORGI Pag. 3 “Algoritmi numerici” #include <iostream> using namespace std; // ricerca del MCD fra due numeri per differenze successive int main (int argc, char *argv[]) { char quit; quit = '\0'; int a,b,c; while (quit != 'q') { cout << "inserire il primo numero ......:" ; cin >> a ; cout << "inserire il secondo numero ....:" ; cin >> b ; while (a!=b) { if (a>b) { a=a-b; } else { b=b-a; } } cout << "il M.C.D. e' : " << a<<endl; // ======================================================= // termine programma con richiesta di uscita cout << "Premere q per uscire "; cin >> quit; } return 0; } Esempio di “Realizzazione di un flow-chart” a cura del Prof. Salvatore DE GIORGI Pag. 4 “Algoritmi numerici” Algoritmo 3 Esempio di “Realizzazione di un flow-chart” a cura del Prof. Salvatore DE GIORGI Pag. 5 “Algoritmi numerici” ¾ Analisi dei dati Identificatore A B MCD Descrizione Tipo Input primo numero intero si secondo numero intero si massimo comune divisore intero Output Lavoro si comodo : resto delle divisioni intero si K contatore intero si C comodo : utilizzata per lo scambio R, RA, RB si #include <iostream> using namespace std; // ricerca del MCD fra due numeri int main (int argc, char *argv[]) { char quit; quit = '\0'; int a,b,c,r,ra,rb,k,MCD; while (quit != 'q') { cout << "inserire il primo numero ......:" ; cin >> a ; cout << "inserire il secondo numero ....:" ; cin >> b ; if (a<b) { c=a; a=b; b=c; } r=a%b; if(r==0) {MCD = b;} else { MCD=1; for(k=2; k<b/2; k++) { ra = a%k; rb = b%k; if(ra==0 && rb==0) {MCD = k;} } } cout << "il M.C.D. e' : " << MCD<<endl; // ====================================================== // termine programma con richiesta di uscita cout << "Premere q per uscire "; cin >> quit; } return 0; } Esempio di “Realizzazione di un flow-chart” a cura del Prof. Salvatore DE GIORGI Pag. 6 “Algoritmi numerici” Algoritmo 4 Esempio di “Realizzazione di un flow-chart” a cura del Prof. Salvatore DE GIORGI Pag. 7 “Algoritmi numerici” ¾ Analisi dei dati Identificatore Descrizione Tipo Input A primo numero intero si B secondo numero intero si massimo comune divisore intero MCD R, RA, RB Output Lavoro si comodo : resto delle divisioni intero si F flag intero si K comodo : divisore comune intero si C comodo : utilizzata per lo scambio si #include <iostream> using namespace std; // ricerca del MCD fra due numeri int main (int argc, char *argv[]) { char quit; quit = '\0'; int a,b,c,r,ra,rb,k,MCD,f; while (quit != 'q') { cout << "inserire il primo numero ......:" ; cin >> a ; cout << "inserire il secondo numero ....:" ; cin >> b ; if (a<b) { c=a; a=b; b=c;} r=a%b; if(r==0) {MCD = b;} else { MCD=1; k=b/2; f=0; do {ra = a%k; rb = b%k; if(ra==0 && rb==0) {MCD = k; f=1;} else {k--;} }while(f==0); } cout << "il M.C.D. e' : " << MCD<<endl; // ===================================================== // termine programma con richiesta di uscita cout << "Premere q per uscire "; cin >> quit; } return 0; } Esempio di “Realizzazione di un flow-chart” a cura del Prof. Salvatore DE GIORGI Pag. 8