Salve ragazzi, oggi vedremo le strutture di controllo, stiamo studiando e cercando di mettere in pratica le teorie che abbiamo appunto studiato agli inizi, chi ha seguito le lezioni capirà.
Allora ricordiamoci quali sono queste strutture di controllo.
abbiamo dunque la struttura di controllo a:
- Sequenza
- Selezione binaria
- iterazione
- a condizione iniziale
- a condizione finale
Abbiamo già avuto modo di scrivere una struttura di controllo sequenza, un banale esempio lo possiamo vedere sotto.
La struttura di controllo a selezione binaria:
Abbiamo avuto modo di vedere in passato che le parole chiave di questa struttura di controllo sono:
Se <condizione> allora …… altrimenti
Vi ricordo che la condizione è un espressione che produce un valore booleano che può assumere due valori di verità o vero o falso a seconda del valore che assume si segue un percorso di questa selezione oppure se ne segue un altro.
Nel linguaggio di programmazione C questa struttura di controllo si traduce in questo modo:
if (condizione) inserito fra parentesi tonde
<istruzione> oppure <struttura di controllo>
else
<istruzione> oppure <struttura di controllo>
Se condizione risulterà essere vera verrà eseguito il primo ramo di istruzione, altrimenti se risulterà essere falsa verrà eseguito la seconda istruzione.
Possono esserci più di una istruzione per ramo come in figura:
Il compilatore in questo caso per capire se la condizione e vera e deve eseguire un numero superiore ad una istruzione lo capisce se dopo la parentesi tonda chiusa apriamo una parentesi graffa, la chiudiamo alla fine del ramo relativo alla condizione vera.
le parentesi graffe non sono necessarie per una sola istruzione.
La stessa cosa vale per quanto riguarda else.
Le istruzioni che possiamo mettere all’interno di una condizione sono quelle che abbiamo studiato fin’ora per esempio una istruzione di assegnazione:
In questo caso se la condizione risulta essere vera eseguimi la prima istruzione (numero1 =15;) e la seconda istruzione (numero2=10;), il compilatore trova la parentesi graffa chiusa quindi capisce che il blocco delle istruzioni che deve eseguire è finito salta la parte relativa a quando la istruzione e falsa è va ad eseguire le altre istruzioni.
Come scrivere una condizione?
La condizione è una espressione che produce un valore booleano, nel linguaggio C, come per tutti gli altri linguaggi si usano gli operatori di controllo:
il maggiore <
il minore >
uguale ==
diverso !=
negazione (not) !
per esempio:
Come notiamo le parentesi graffe non sono necessarie perché vi troviamo una sola istruzione, allora vediamo questa istruzione:
se somma è maggiore di 10, incrementa somma di 1 altrimenti decrementa somma di 1
un altro esempio, proviamo a cambiare la condizione:
Come vedete posso anche evitare di scrivere la parte falsa, difatti come spiegato in precedenza non necessariamente quando si scrive una struttura di selezione bisogna scrivere per forza le 2 alternative, in questo caso la condizione se vera verrà eseguita la moltiplicazione se falsa non verrà eseguita la moltiplicazione, ma se voglio far eseguire l’istruzione se la condizione e falsa? Esistono due modi, o cambiare l’operatore di controllo che da diverso (!=) diventa uguale (==) oppure usare sempre un operatore di controllo di negazione.
esempio:
L’operatore di controllo di negazione va posto all’interno di parentesi tonde, e sempre all’interno di essa anche l’istruzione che deve essere negata. In definitiva dice:
Eseguimi questa istruzione solo quando somma è diverso da 5.
Per oggi è tutto amici, a presto.