C++:Strutture di Controllo Fabio Scanu a.s. 2014/2015 La Programmazione Strutturata • Un algoritmo risolve il problema attraverso una sequenza finita di passi • Questi passi sono classificabili in tre costrutti fondamentali • Questi costrutti sono chiamati strutture di controllo La sequenza • Organizzazione in sequenza delle istruzioni: • Istruzione 1 • Istruzione 2 • …. • Le istruzioni si devono eseguire una dopo l’altra • Bisogna mantenere l’ordine La struttura alternativa • Ci sono istruzioni eseguite in alternativa ad altre • L’esecutore deve fare una scelta in base a ciò che succede in quel momento • Avviene una selezione La struttura alternativa SE condizione ALLORA istruzione 1 ALTRIMENTI istruzione 2 FINE SE La ripetizione • Istruzioni che devono essere eseguite più volte • Il termine della ripetizione avviene quando smette di verificarsi una determinata condizione ESEGUI Istruzioni RIPETI MENTRE condizione La Squenza in C++ • Blocco di istruzioni terminanti ciascuna col punto e virgola • Blocco delimitato dalle parentesi graffe {} La Sequenza in C++ #include <iostream> using namespace std; int main() { int num1,num2,differenza; cout<<"Inserisci due numeri: "; cin >>num1>>num2; differenza = num1-num2; cout<< "Risultato = " <<differenza<<endl; return 0; } La Sequenza in C++ Esercizio: Calcolare lo sconto del 20% sul prezzo di un articolo Prende in ingresso il nome dell’articolo e il prezzo Calcola lo sconto e lo sottrae dal prezzo Stampa il nome dell’articolo e il nuovo prezzo scontato La struttura alternativa in C++ • Utilizza l’ if…else • La struttura è la seguente: if (condizione){ Istruzioni A; } else{ Istruzioni B; } La struttura alternativa in C++ #include <iostream> using namespace std; int main() { int num1,num2,differenza; cout<<"Inserisci due numeri: "; cin >>num1>>num2; if(num1 < num2){ cout<< num1<<endl; cout<< num2<<endl; } else{ cout<< num2<<endl; cout<< num1<<endl; } return 0; } La struttura alternativa in C++ Esercizio: Se di un prodotto ne vengono acquistati 3 pezzi si paga l’importo di due pezzi Per le quantità inferiori si paga il prezzo pieno La ripetizione in C++ • Esistono tre modi: • Ripetizione • Ripetizione pre-condizionata • Ripetizione con contatore Ripetizione in C++ • Il blocco di istruzioni si ripete finché una condizione è vera do{ Istruzioni; } while(condizione) Ripetizione in C++ do{ cout<< "Il Mese: "; cin >>mese; }while (mese <1 || mese > 12); Ripetizione in C++ Esercizio: Calcola il prodotto tra interi usando la sola operazione di somma Ripetizione Pre-condizionale in C++ • Verifica la condizione prima di effettuare le operazioni while(condizione){ istruzioni; } Ripetizione Pre-condizionale in C++ int numero; cout<< " Inserisci numero (0=fine) "; cin>>numero; while(numero != 0){ cout<< " Inserisci numero (0=fine) "; cin>>numero; } Ripetizione Pre-condizionale in C++ Esercizio: Prendendo in ingresso un nome e un’età stampa il nome solo se la persona è maggiorenne Ripetizione con contatore in C++ • Esegue un’operazione per un numero determinato di volte • Può essere implementato attraverso il while e il do…while for(int i = min; i<=max; i++){ istruzioni; } Ripetizione con contatore in C++ for(int i = 1; i<=20; i++){ cin>>numero; cout<< numero*2<<endl; } Ripetizione con contatore in C++ Esercizi Sommare i primi 10 numeri Sommare i numeri da 15 a 36