Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Selezione multipla

Precedente
SUPERIORE
Successiva

Decidere quale sequenza di istruzioni eseguire tra tante sequenze alternative

Dopo aver eseguito l'istruzione 0 decide se eseguire le istruzioni 11 e 12 (se E = E1) oppure le istruzioni 21 e 22 (se E = E2), oppure 31 e 32 (altrimenti) e poi continua eseguendo l'istruzione 4.

Piuttosto che usare un selettore a tre uscite possiamo trasformare il diagramma di flusso nel successivo

dove cambia l'interpretazione ma non il comportamento dell'algoritmo: dopo aver eseguito l'istruzione 0 decide se eseguire le istruzioni 11 e 12 (se E = E1) oppure continuare, quindi decide se eseguire le istruzioni 21 e 22 (se E = E2) oppure 31 e 32 e poi continua eseguendo l'istruzione 4.

Traduciamo in linguaggio MAC

       I0  ...... '
       LDA E      '
       SUB E1     '
       JEQ ISTR1  ' Se(E = E1): PC <-- ISTR1
       LDA E      '
       SUB E2     '
       JEQ ISTR2  ' Se(E = E2): PC <-- ISTR2
       JMP ISTR3  ' Altrimenti: PC <-- ISTR3
ISTR1  I11 ...... '
       I12 ...... '
       JMP ISTR4  '
ISTR2  I21 ...... '
       I22 ...... '
       JMP ISTR4  '
ISTR3  I31 ...... '
       I32 ...... '
ISTR4  I4  ...... '

oppure

       I0  ...... '
       LDA E      '
       SUB E1     '
       JEQ ISTR1  ' Se(E = E1): PC <-- ISTR1
       LDA E      '
       SUB E2     '
       JEQ ISTR2  ' Se(E = E2): PC <-- ISTR2
       I31 ...... '
       I32 ...... '
       JMP ISTR4  '
ISTR1  I11 ...... '
       I12 ...... '
       JMP ISTR4  '
ISTR2  I21 ...... '
       I22 ...... '
ISTR4  I4  ...... '

Selezione multipla - ApPuNtIdIuNiNfOrMaTiCo

Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Precedente
SUPERIORE
Successiva