Selezione multipla

Decidere quale eseguire tra tante sequenze alternative di istruzioni

Selezione tripla

Dopo aver eseguito Istruzione 0 decide quale blocco eseguire in funzione del valore assunto dall’espressione E:

Se E = E1 esegue

  • Istruzione 11
  • Istruzione 12

altrimenti se E = E2 esegue

  • Istruzione 21
  • Istruzione 22

altrimenti esegue

  • Istruzione n1
  • Istruzione n2

e poi continua eseguendo Istruzione n+1.


Non è necessario introdurre un costrutto di controllo a più uscite perché il diagramma di flusso si può trasformare nel successivo (esempio con 3 scelte…) dove cambia l’interpretazione ma non il comportamento dell’algoritmo.

Selezione tripla

Dopo aver eseguito Istruzione 0 decide se eseguire

  • Istruzione 11
  • Istruzione 12

oppure continua e quindi decide se eseguire

  • Istruzione 21
  • Istruzione 21

oppure

  • Istruzione 31
  • Istruzione 32

e quindi continua eseguendo Istruzione 4.

Codifiche

Si può semplificare il codice, e rimanere più aderenti al primo diagramma di flusso, cambiando l’indentazione delle istruzioni ed eliminando le etichette di blocco superflue.

Top …… down
 Top……downSemplificatoUna sola istruzione
C…
Pascal
Python
SMALL
BASIC
VISUAL
BASIC

Note

  1. Nei linguaggi C… e Python: ==
  2. Il valore assunto dell’unica espressione E decide quale blocco verrà eseguito
  3. Un solo blocco sarà eseguito in esclusiva
  4. Prima dell’Else finale possono essere inseriti ulteriori blocchi di tipo Else If (con E3, E4, …)

Else facoltativo

Se è prevista anche l’eventualità che nessun blocco venga eseguito allora il controllo del valore di E avverrà fino alla fine e non comparirà l’Else finale

Codifiche

 …downSemplificatoUna sola istruzione
C…
Pascal
Python
SMALL
BASIC
VISUAL
BASIC