Strutture di controllo
Problematica sul controllo
 Le
strutture di controllo permettono di
definire il percorso (flusso) di ogni
istruzione all'interno di un programma;
 La programmazione strutturata propone tre
schemi:
1.Sequenza
2.Alternativa o Selezione
3.Iterazione
Risultato fondamentale

TEOREMA (Böhm-Jacopini) :
Dato un programma, ne
esiste uno equivalente che
utilizza esclusivamente le tre
strutture di controllo
fondamentali: sequenza,
selezione e iterazione.
La sequenza
 La
sequenza è il più semplice dei tre
costrutti fondamentali e viene
utilizzato quando le istruzioni devono
essere eseguite ordinatamente, con lo
stesso ordine con cui sono scritte, per
cui l’istruzione successiva è quella in
posizione successiva.
 E’ spesso indicata col termine blocco.
La sequenza
Sequenza
Diagramma a
blocchi
Esempio
Problema: Calcolare l’area di un rettangolo,
essendo note la base e l’altezza.
 I dati iniziali sono: il valore della base, il valore
dell’altezza. Inoltre conosciamo la relazione che
permette di calcolare l’area del rettangolo.
La procedura (parte esecutiva) può essere
schematizzata nel modo seguente:
 LEGGI i valori dell’altezza e della base (l’esecutore
deve acquisire i dati dall’esterno);
 CALCOLA L’AREA;
 SCRIVI il risultato (l’esecutore deve mandare il
risultato in output).
INIZIO
O
“Inserire base e altezza”
base
altezza
I
I
area-->base*altezza
area
FINE
O
Esercizi
Rappresenta con il diagramma a blocchi gli
algoritmi che risolvono i seguenti problemi:
1. Noti i cateti determinare l’area e il
perimetro di un triangolo rettangolo;
2. Noti il voto dell’orale, quello di laboratorio e
quello dello scritto, visualizzare il voto
medio;
3. Un noleggio di automobili applica le
seguenti tariffe: 75 euro di spesa fissa più
0.5 euro per ogni km percorso. Calcolare la
spesa del noleggio.
Selezione o alternativa
 La
selezione o alternativa permette di
effettuare una scelta fra due possibili
alternative. Per effettuare la scelta
occorre valutare una condizione.
 Possiamo distinguere tre tipi di
alternative:
 a una via
 a due vie
 multipla
Alternativa a una via
Diagramma a
blocchi
vero
Istruzione
condizione
falso
Alternativa a due vie
Diagramma a
blocchi
vero
Istruzione 1
condizione
falso
Istruzione 2
Esempio
 Dati
due numeri in input visualizzare il
massimo tra i due.
Tabella delle variabili
Nome
Descrizione
Primo
Primo numero
Tipo
Utilizz
o
numerico Input
Secondo Secondo numero numerico
Massim
o
Massimo tra X e
Y
Input
numerico Output/
Lavoro
INIZIO
Diagramma
a blocchi
“Inserisci i due numeri”
i
Primo
Secondo
vero
o
i
falso
Primo >
Secondo
Massimo = Primo
Massimo = Secondo
Massimo
FINE
o
Esercizi:
 Dati
due numeri visualizzare il minimo tra i
due.
 Dato il nome e l’età di una persona ,
stampare il nome e la scritta
MAGGIORENNE se la persona è
maggiorenne, MINORENNE altrimenti.
 Dati il nome e il sesso (F o M) di una
persona, si visualizzi il messaggio “Egregio
Signore” o “Gentilissima signora” a seconda
che si tratti di un uomo o di una donna.
Strutture di ripetizione



I costrutti di ripetizione detti anche cicli o di
iterazione, consentono di eseguire molte volte la
stessa istruzione fino al verificarsi di una
condizione. Due tipi:
Condizionale: la ripetizione viene decisa in base al
risultato di un test, da effettuarsi ad ogni
iterazione
ripeti Istruzione finché succede una certa cosa
mentre succede una certa cosa esegui Istruzione
Enumerativa: ripetizione di un’azione per un
numero di volte fissato all’inizio dell’esecuzione
dell’istruzione “ripeti tot volte”
Sono equivalenti ma appropriati in situazioni
diverse!
Ripetizione condizionale
1. Ripetizione precondizionale
Controllo la condizione; in base al
suo valore di verità l’esecutore
stabilisce se eseguire il blocco
oppure continuare con l’esecuzione
della prima istruzione successiva al
ciclo
Precondizionale
Se la condizione è inizialmente falsa, il blocco
di istruzioni non viene mai eseguito.
 Quindi un blocco con una ripetizione
precondizionale può:
1.
essere eseguito più volte
2.
non essere mai eseguito
 Attenzione: Il corpo di un blocco con una
ripetizione precondizionale deve alla fine
rendere falsa la condizione perchè il ciclo si
fermi, altrimenti si va avanti all’infinito (loop)

Ripetizione precondizionale
Codice in Visual Basic:
Do While Condizione
Istruzioni
Loop
F
Che equivale a:
1. Valuta la condizione
2. Se il valore è vero torna al
passo 1
3. Se il valore è falso esci dal
ciclo
Condizione
V
istruzioni
Ripetizione condizionale
2. Ripetizione postcondizionale
L’esecutore esegue il blocco di
istruzioni, poi controlla la condizione;
in base al suo valore di verità
l’esecutore decide se eseguire ancora
il blocco oppure continuare
l’esecuzione della prima azione
successiva.
Ripetizione postcondizionale
Codice in Visual Basic
Do
istruzioni
Loop Until condizione
istruzioni
Che equivale a:
1.
2.
3.
4.
Esegui le istruzioni
Valuta la condizione
Se il valore è falso si torna al passo 1
Se il valore è vero si esce dal ciclo
condizione
F
V
Postcondizionale
 Con
una ripetizione
postcondizionale, se la condizione
è inizialmente vera, il blocco di
istruzioni verrà comunque
eseguita almeno una volta.
 Per essere sicuri che il ciclo
termini, esso dovrà contenere
qualche istruzione che modifichi il
valore di verità dell’espressione.
Ripetizione enumerativa
In certi casi si conosce a priori il numero
delle iterazioni che devono essere eseguite
 Esiste una struttura di ripetizione che
funziona esattamente in questo modo:
utilizza una variabile contatore che viene
inizializzata ad un valore particolare e
successivamente incrementata fino ad un
valore massimo.
 Per ogni valore che il contatore assume
viene ripetuta l’esecuzione di un blocco di
istruzioni.

Ripetizione enumerativa
Codice in Visual Basic:
For Contatore = min to max step 1
istruzioni
Next Contatore
For Contatore = min to max
step 1
Che equivale a:
1. Inizializza il Contatore al valore
min;
2. Se Contatore > massimo esci,
altrimenti vai alla 3
3. Esegui istruzioni
4. Incrementa Contatore di 1
(step)
5. vai alla 2
istruzioni
Scarica

Strutture di controllo