Algoritmo numerico con struttura ciclica Dati due numeri interi > 0 calcolare il MCD (algoritmo di Euclide) Esempio con struttura ciclica postcondizionale Start A I B I V A<B C=A A=B B=C Scambio delle variabili in modo che A diventi maggiore di B F R = A Mod B A=B B=R V R≠0 F MCD = A MCD O End Esempio di “Realizzazione di un flow-chart” a cura del Prof. Salvatore DE GIORGI Pag. 1 Algoritmo numerico con struttura ciclica Analisi dei dati Identificatore Descrizione Tipo Input A primo numero intero si B secondo numero intero si MCD contiene il massimo comune divisore (come intero variabile di output si può usare anche la variabile A) Output Lavoro si R comodo : resto della divisione fra A e B si C comodo : utilizzata per lo scambio) si #include <iostream> using namespace std; // ricerca del MCD fra due numeri con l'algoritmo di EUCLIDE // utilizzando un cliclo do...while int main (int argc, char *argv[]) { char quit; quit = '\0'; int a,b,c,resto,MCD; while (quit != 'q') { cout << "inserire il primo numero ......:" ; cin >> a ; cout << "inserire il secondo numero ....:" ; cin >> b ; if (b>a) { c=a; a=b; b=c; } do { resto = a%b; a = b; b = resto; }while(resto !=0); MCD = a; 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. 2 Algoritmo numerico con struttura ciclica Esempio con struttura ciclica precondizionale Start A I B I C=A A=B B=C V A<B F R=1 F R≠0 V R = A Mod B A=B B=R MCD = A MCD O End Esempio di “Realizzazione di un flow-chart” a cura del Prof. Salvatore DE GIORGI Pag. 3 Algoritmo numerico con struttura ciclica #include <iostream> using namespace std; // ricerca del MCD fra due numeri con l'algoritmo di EUCLIDE // utilizzando un cliclo while int main (int argc, char *argv[]) { char quit; quit = '\0'; int a,b,c,resto,MCD; while (quit != 'q') { cout << "inserire il primo numero ......:" ; cin >> a ; cout << "inserire il secondo numero ....:" ; cin >> b ; if (b>a) { c=a; a=b; b=c; } resto=1; while (resto!=0) { resto = a%b; a = b; b = resto; } MCD = a; 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. 4 Algoritmo numerico con struttura ciclica #include <iostream> using namespace std; // ricerca del MCD fra due numeri con l'algoritmo di EUCLIDE // utilizzando un cliclo while e visualizzando b int main (int argc, char *argv[]) { char quit; quit = '\0'; int a,b,c,resto,MCD; while (quit != 'q') { cout << "inserire il primo numero ......:" ; cin >> a ; cout << "inserire il secondo numero ....:" ; cin >> b ; if (b>a) { c=a; a=b; b=c; } while (a%b != 0) { resto = a%b; a = b; b = resto; } MCD = b; 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. 5