Visibilità delle risorse

Le risorse (costanti, variabili, sottoprogrammi, …) che un programma utilizza diventano presto centinaia e difficili da gestire. Risorse globali   Sequenzialità  Il sottoprogramma P1 ha accesso alle risorse globali a e b. Il blocco principale ha accesso alle risorse locali a, b e P1. Il sottoprogramma P1 ha accesso alle risorse globali a e b. … Leggi tutto

Sottoprogrammi

Un programma può diventare molto lungo… Per migliorare la leggibilità si può ricorrere a delle linee vuote o di commento dare dei nomi a a parti di codice riconoscibili separare questi blocchi dal flusso principale scrivere una sola volta parti di codice che si ripetono … Se a questi blocchi di codice si da un … Leggi tutto

Ripetizione con controllo in testa

Ripetere più volte l’esecuzione di una sequenza (con decisione in testa alla sequenza) Decide se eseguire istruzione 1, istruzione 2, … e poi ritornare in alto oppure proseguire direttamente con le istruzioni successive. Rispetto alla ripetizione con controllo in coda c’è la possibilità che la sequenza controllata non venga eseguita neanche una volta. While A … Leggi tutto

Ripetizione con controllo in coda

Ripetere più volte l’esecuzione di una sequenza (con decisione in coda alla sequenza) Dopo aver eseguito istruzione 1 istruzione 2 decide se ripetere la loro esecuzione o continuare con le istruzioni successive. Note La sequenza controllata è stata eseguita almeno una volta. Le istruzioni controllate devono necessariamente modificare il valore di A, altrimenti la ripetizione … Leggi tutto

Alternativa ciondolante

Considera attentamente i due diagrammi di flusso e le codifiche corrispondenti If A > 0 Then   Begin       If B > 0 Then         Begin             Istr11;             Istr12;         End     Else         … Leggi tutto

Selezioni annidate

Le condizioni perché dei blocchi siano eseguiti a scapito di altri possono essere complicate… Procedi in modo top-down utilizzando sempre le etichette di inizio e fine blocco Top… If A > 0 Then   Begin       (* … da sistemare … *)   End Else   Begin       (* … da … Leggi tutto

Selezione multipla 2

Decidere quale eseguire tra tante sequenze alternative di istruzioni  Se le espressioni E, E1, E2, … sono di tipo semplice si può utilizzare una struttura di controllo che permette un’interpretazione molto fedele al diagramma di flusso Case(E) Of     E1: Begin           Istr11;           Istr12;   … Leggi tutto

Selezione multipla

Decidere quale eseguire tra tante sequenze alternative di istruzioni 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 … Leggi tutto

Selezione doppia

Decidere quale eseguire tra due diverse sequenze di istruzioni Dopo aver eseguito l’istruzione 0 decide se eseguire istruzione 11 istruzione 12 oppure istruzione 21 istruzione 22 e poi continua eseguendo istruzione 3. … If E = 1 Then    Begin       Istr11;       Istr12;    End Else    Begin     … Leggi tutto