La programmazione strutturata
LA SEQUENZA L’ALTERNATIVA LA RIPETIZIONE Le istruzioni di un algoritmo sono organizzate secondo tre costrutti fondamentali LA SEQUENZA L’ALTERNATIVA LA RIPETIZIONE
LA SEQUENZA La sequenza si rappresenta costruendo un blocco di istruzioni, ognuna terminante con il punto e virgola, delimitato all’inizio e alla fine da una coppia di parentesi graffe aperta e chiusa. Le istruzioni comprese tra parentesi graffe possono comparire all’interno di un’altra struttura di controllo oppure possono essere le istruzioni che compongono la parte esecutiva del programma.
Esercizi proposti. Calcolare lo sconto del 20% sul prezzo di un articolo: occorre acquisire in input la descrizione dell’articolo e il suo prezzo. Viene calcolato lo sconto e sottratto dal prezzo iniziale. Da ultimo si devono scrivere la descrizione dell’articolo e il nuovo prezzo scontato. Data la parabola di equazione 𝑦=𝑎 𝑥 2 +bx+c, determinare le coordinate del vertice V.
La struttura di alternativa Per la selezione si usa l’istruzione if che ha la seguente sintassi: if (condizione){ Istruzioni a; } else { istruzioni b; SE LA CONDIZIONE è VERA, VIENE ESEGUITA LA SEQUENZA istruzioni a, ALTRIMENTI VIENE ESEGUITA LA SEQUENZA istruzioni b. Nel caso in cui dopo la condizione o dopo else ci sia un’unica istruzione, le parentesi graffe possono essere omesse. Se si ha una selezione a una sola via non è presente il ramo else.
La CONDIZIONE è un’espressione BOOLEANA di cui viene valutata la verità. Si usano quindi i segni del confronto: ==, <=, >=, != E gli operatori booleani: && (AND), || (OR), ! (NOT) Per costruire espressioni logiche combinando più condizioni. ESEMPIO: If (classe == 5 && anni>18) cout << nome << endl;
ESERCIZI SCRIVERE IN ORDINE CRESCENTE DUE NUMERI Si tratta di scegliere tra due numeri il minore e di scrivere prima il minore e poi il maggiore PRODOTTI IN OFFERTA 3X2 Se di un prodotto vengono acquistati 3 pezzi si deve pagare l’importo pari a 2 pezzi. Per le quantità inferiori a 3 il prezzo resta invariato. Si ipotizza che il prodotto non venga acquistato in quantità maggiori di 3.
(condizione) ? Istruzione1 : istruzione2; Operatore ? In sostituzione della struttura if è possibile utilizzare l’operatore ? E’ un operatore ternario preceduto da una condizione e seguito da due istruzioni separate dal carattere : (condizione) ? Istruzione1 : istruzione2; Di solito usato quando le istruzioni da eseguire sono semplici
(a > 0) ? Cout << a : cout << -a; è equivalente all’istruzione: if(a>0) cout << a; else cout << -a;
Le Strutture nidificate di alternativa In una struttura di alternativa, dopo la condizione o dopo else, può essere presente un gruppo di istruzioni, contenente a sua volta altre strutture if interne alla struttura più esterna. Si dice, in questo caso, che s creano strutture nidificate.
Esercizio (con strutture nidificate) Su una somma di denaro si vuole applicare un’imposta progressiva secondo lo schema: Da 0 a 5000 €: imposta del 5% Dopo i 5000€ e fino a 15000 €: imposta del 7% Oltre i 15000€: imposta dell’8% Si consiglia l’uso di costanti per facilitare un intervento di aggiornamento qualora cambiassero i criteri di calcolo dell’imposta.