Sei sulla pagina 1di 94

Fondamenti di Informatica

A l g o B u i l d : S t r u tt u re s e l e tt i v e e i te rat i v e

P r o f. R a f f a e l e P i z z o l a n t e
A.A. 2016/17
AlgoBuild : Strutture iterative e selettive
OUTLINE
• Blocco condizionale (Struttura selettiva IF)
• Esempi
• Cicli a condizione iniziale (Strutture iterative WHILE
e FOR)
• Esempi
• Ciclo a condizione finale (Struttura iterativa
DO/WHILE)
• Esempi

AlgoBuild: Strutture selettive e iterative


Diagrammi di Flusso: Blocco di
Decisione Binaria (o Condizionale)
• Possono essere presenti istruzioni condizionali, la cui esecuzione
dipende cioè da scelte effettuate in base ai dati
• Concettualmente, possiamo immaginare che il flusso di esecuzione si
ramifichi
• In base ad una condizione viene deciso se eseguire un’operazione oppure
un’altra

Diramazione
(condizionale)

AlgoBuild: Strutture selettive e iterative


Strutture di Controllo:
Selezione a Due Vie

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF – Esempio 1
• Definiamo un diagramma di flusso che
• Prende in input la variabile VOTO da parte
dell’utente
• Mostra in output «Superato!» se VOTO è
maggiore o uguale di 18
• Mostra «NON Superato», altrimenti

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF – Esempio 1
• Iniziamo dal prendere in input la variabile VOTO

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF – Esempio 1

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF – Esempio 1

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF – Esempio 1

Ci verrà richiesto di inserire l’espressione


(condizione booleana) che la struttura selettiva
IF deve soddisfare. Tale espressione può
assumere un valore booleano: vero (T) o falso (F)
AlgoBuild: Strutture selettive e iterative
Struttura Selettiva IF – Esempio 1

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF – Esempio 1

Flusso di esecuzione se la condizione è falsa

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF – Esempio 1

Flusso di esecuzione se la condizione è vera

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF – Esempio 1

PSEUDO-CODICE

PROG main
IN VOTO
IF VOTO >= 18
OUT "Superato!"
ELSE
OUT "NON Superato"
END IF
END PROG

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF – Esempio 1

PSEUDO-CODICE

PROG main
IN VOTO
IF VOTO >= 18
OUT "Superato!"
ELSE
OUT "NON Superato"
END IF
END PROG

Istruzione/i da eseguire in caso la


condizione sia vera

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF – Esempio 1

PSEUDO-CODICE

PROG main
IN VOTO
IF VOTO >= 18
OUT "Superato!"
ELSE
OUT "NON Superato"
END IF
END PROG

Istruzione/i da eseguire in caso la


condizione sia falsa (caso ELSE)

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF – DEMO

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF – DEMO

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF – DEMO

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF – DEMO

Variabile VOTO presa in input dall’istruzione precedente


AlgoBuild: Strutture selettive e iterative
Struttura Selettiva IF – DEMO

Condizione vera

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF – DEMO

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF – DEMO

Cosa sarebbe accaduto se avessi usato VOTO = 16?

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata)
• Nelle istruzioni del blocco “Vero”
o del blocco “Falso”, è possibile
inserire altre strutture selettive V F
C1
• In tal caso si dice che la seconda
A1 B
struttura risulta annidata
all’interno della prima
V C2 F
A2 A3

A4

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata)
• Nelle istruzioni del blocco “Vero”
o del blocco “Falso”, è possibile
inserire altre strutture selettive V F
C1
• In tal caso si dice che la seconda
A1 B
struttura risulta annidata
all’interno della prima
V C2 F
A2 A3

A4
Analizziamo quali saranno le possibili sequenze
di istruzioni che verranno eseguite, in base alla
valutazione delle condizioni C1 e C2

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata)
• Viene valutata la condizione C1

V F
C1

A1 B

V C2 F
A2 A3

A4

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata)
• Viene valutata la condizione C1
• Se la condizione C1 è Vera V F
• Viene eseguita l’istruzione: C1
• A1 A1 B

V C2 F
A2 A3

A4

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata)
• Viene valutata la condizione C1
• Se la condizione C1 è Vera V F
• Viene eseguita l’istruzione: C1
• A1 A1 B
• Viene valutata la condizione C2

V C2 F
A2 A3

A4

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata)
• Viene valutata la condizione C1
• Se la condizione C1 è Vera V F
• Viene eseguita l’istruzione: C1
• A1 A1 B
• Viene valutata la condizione C2
• Se la condizione C2 è Vera
• Viene eseguita l’istruzione: V C2 F
• A2 A2 A3

A4

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata)
• Viene valutata la condizione C1
• Se la condizione C1 è Vera V F
• Viene eseguita l’istruzione: C1
• A1 A1 B
• Viene valutata la condizione C2
• Se la condizione C2 è Vera
• Viene eseguita l’istruzione: V C2 F
• A2 A2 A3
• Viene eseguita l’istruzione:
• A4 A4

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata)
• Viene valutata la condizione C1
• Se la condizione C1 è Vera V F
• Viene eseguita l’istruzione: C1
• A1 A1 B
• Viene valutata la condizione C2
• Se la condizione C2 è Vera
• Viene eseguita l’istruzione: V C2 F
• A2 A2 A3
• Viene eseguita l’istruzione:
• A4 A4
• Il flusso prosegue in accordo al
diagramma di flusso

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata)
• Viene valutata la condizione C1
• Se la condizione C1 è Vera V F
• Viene eseguita l’istruzione: C1
• A1 A1 B
• Viene valutata la condizione C2

V C2 F
A2 A3

A4

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata)
• Viene valutata la condizione C1
• Se la condizione C1 è Vera V F
• Viene eseguita l’istruzione: C1
• A1 A1 B
• Viene valutata la condizione C2
• Se la condizione C2 è Falsa
• Viene eseguita l’istruzione: V C2 F
• A3 A2 A3

A4

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata)
• Viene valutata la condizione C1
• Se la condizione C1 è Vera V F
• Viene eseguita l’istruzione: C1
• A1 A1 B
• Viene valutata la condizione C2
• Se la condizione C2 è Falsa
• Viene eseguita l’istruzione: V C2 F
• A3 A2 A3
• Viene eseguita l’istruzione:
• A4 A4

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata)
• Viene valutata la condizione C1
• Se la condizione C1 è Vera V F
• Viene eseguita l’istruzione: C1
• A1 A1 B
• Viene valutata la condizione C2
• Se la condizione C2 è Falsa
• Viene eseguita l’istruzione: V C2 F
• A3 A2 A3
• Viene eseguita l’istruzione:
• A4 A4
• Il flusso prosegue in accordo al
diagramma di flusso

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata)
• Viene valutata la condizione C1

V F
C1

A1 B

V C2 F
A2 A3

A4

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata)
• Viene valutata la condizione C1
• Se la condizione C1 è Falsa V F
• Viene eseguita l’istruzione: C1
• B A1 B

V C2 F
A2 A3

A4

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata)
• Viene valutata la condizione C1
• Se la condizione C1 è Falsa V F
• Viene eseguita l’istruzione: C1
• B A1 B
• Il flusso prosegue in accordo al
diagramma di flusso C2
V F
A2 A3

A4

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata) – Esempio 2
• Raffiniamo l’esempio precedente…
• Definiamo un diagramma di flusso che
• Prende in input la variabile VOTO da parte dell’utente
• Mostra in output «Superato!» se VOTO è maggiore o uguale di
18
• «NON Superato», altrimenti
• Il valore della variabile VOTO è valido se e solo se è compreso
tra 0 e 30
• Se si immette, in input, un valore non valido, l’algoritmo deve:
• Mostrare in output “Valore VOTO non valido” e
• Terminare

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata) – Esempio 2

PSEUDO-CODICE

PROG main
IN VOTO
END PROG //main

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata) – Esempio 2

PSEUDO-CODICE

PROG main
IN VOTO
END PROG //main

Il passo successivo sarà quello di


verificare se il valore di VOTO è
valido (ovvero compreso tra 0 e 30)

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata) – Esempio 2

VOTO deve essere compreso


tra 0 e 30

???

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata) – Esempio 2

VOTO deve essere compreso


tra 0 e 30

0 ≤ VOTO ≤ 30
???

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata) – Esempio 2

VOTO deve essere compreso


tra 0 e 30

0 ≤ VOTO ≤ 30
???
VOTO ≥ 0 AND VOTO ≤ 30

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata) – Esempio 2

VOTO deve essere compreso


tra 0 e 30

0 ≤ VOTO ≤ 30
???
VOTO ≥ 0 AND VOTO ≤ 30

VOTO >= 0 && VOTO <= 30


(sintassi AlgoBuild)

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata) – Esempio 2

PSEUDO-CODICE

PROG main
IN VOTO
IF VOTO >= 0 && VOTO <= 30
ELSE //if VOTO >= 0 && VOTO <= 30
END IF //VOTO >= 0 && VOTO <= 30
END PROG //main

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata) – Esempio 2

PSEUDO-CODICE

PROG main
IN VOTO
IF VOTO >= 0 && VOTO <= 30
IF VOTO >= 18
OUT "Superato!"
ELSE //if VOTO >= 18
OUT "NON superato"
END IF //VOTO >= 18
ELSE //if VOTO >= 0 && VOTO <= 30
END IF //VOTO >= 0 && VOTO <= 30
END PROG //main

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata) – Esempio 2

PSEUDO-CODICE

PROG main
Il passo successivo sarà quello
IN VOTOdi mostrare in
output la stringa "Valore VOTO
IF VOTO >=non valido",
0 && VOTO <= 30
nel caso in cui il valore delIF OUT
VOTO >= 18
VOTO NON sia
"Superato!"
valido ELSE //if VOTO >= 18
OUT "NON superato"
END IF //VOTO >= 18
ELSE //if VOTO >= 0 && VOTO <= 30
END IF //VOTO >= 0 && VOTO <= 30
END PROG //main

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata) – Esempio 2
PSEUDO-CODICE

PROG main
IN VOTO
IF VOTO >= 0 && VOTO <= 30
IF VOTO >= 18
OUT "Superato!"
ELSE //if VOTO >= 18
OUT "NON superato"
END IF //VOTO >= 18
ELSE //if VOTO >= 0 && VOTO <= 30
OUT "Valore VOTO non valido"
END IF //VOTO >= 0 && VOTO <= 30
END PROG //main

AlgoBuild: Strutture iterative e selettive


Struttura Selettiva IF (Annidata) – Esempio 2
PSEUDO-CODICE

PROG main
IN VOTO
IF VOTO >= 0 && VOTO <= 30
Note sullo pseudo-codice generato da AlgoBuild IF VOTO >= 18
OUT "Superato!"
ELSE //if VOTO >= 18
OUT "NON superato"
END IF //VOTO >= 18
ELSE //if VOTO >= 0 && VOTO <= 30
OUT "Valore VOTO non valido"
END IF //VOTO >= 0 && VOTO <= 30
END PROG //main

AlgoBuild: Strutture iterative e selettive


Struttura Selettiva IF (Annidata) – Esempio 2
PSEUDO-CODICE

PROG main
IN VOTO
IF VOTO >= 0 && VOTO <= 30
IF VOTO >= 18
OUT "Superato!"
ELSE //if VOTO >= 18
OUT "NON superato"
END IF //VOTO >= 18
ELSE //if VOTO >= 0 && VOTO <= 30
OUT "Valore VOTO non valido"
END IF //VOTO >= 0 && VOTO <= 30
END PROG //main

I commenti servono esclusivamente per migliorare la leggibilità del


programma/pseudo-codice

- Non vengono eseguiti dall’elaboratore, ma sono rivolti all’essere umano


- In AlgoBuild,AlgoBuild:
i commenti iniziano
Strutture con //
iterative e terminano a fine riga
e selettive
Struttura Selettiva IF (Annidata) – Esempio 2
Indentazione
• Di cosa si tratta?
• Consiste nel far precedere le righe contenenti istruzioni di un
programma/pseudo-codice, da spazi vuoti

• A cosa serve?
• Fondamentale per migliorare la leggibilità e la comprensione di un
programma/pseudo-codice
• Permette di evidenziare i blocchi del codice
• A colpo d’occhio è possibile identificare i diversi rami di un IF, le istruzioni che
fanno parte di un ciclo, ecc.
• È fortemente consigliato utilizzarla durante la scrittura di un programma
(e non aggiungerla a posteriori)

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata) – Esempio 2
Indentazione
SENZA Indentazione CON Indentazione

PROG main PROG main


IN VOTO IN VOTO
IF VOTO >= 0 && VOTO <= 30 IF VOTO >= 0 && VOTO <= 30
IF VOTO >= 18 IF VOTO >= 18
OUT "Superato!" OUT "Superato!"
ELSE //if VOTO >= 18 ELSE //if VOTO >= 18
OUT "NON superato" OUT "NON superato"
END IF //VOTO >= 18 END IF //VOTO >= 18
ELSE //if VOTO >= 0 && VOTO <= 30 ELSE //if VOTO >= 0 && VOTO <= 30
OUT "Valore VOTO non valido" OUT "Valore VOTO non valido"
END IF //VOTO >= 0 && VOTO <= 30 END IF //VOTO >= 0 && VOTO <= 30
END PROG //main END PROG //main

AlgoBuild: Strutture selettive e iterative


PSEUDO-CODICE
Struttura Selettiva IF (Annidata)PROG
– Esempio
main
2
IN VOTO
IF VOTO >= 0 && VOTO <= 30
IF VOTO >= 18
OUT "Superato!"
ELSE //if VOTO >= 18
OUT "NON superato"
END IF //VOTO >= 18
ELSE //if VOTO >= 0 && VOTO <= 30
OUT "Valore VOTO non valido"
END IF //VOTO >= 0 && VOTO <= 30
END PROG //main

AlgoBuild: Strutture iterative e selettive


PSEUDO-CODICE
Struttura Selettiva IF (Annidata)PROG
– Esempio
main
2
IN VOTO
IF VOTO >= 0 && VOTO <= 30
IF VOTO >= 18
OUT "Superato!"
ELSE //if VOTO >= 18
OUT "NON superato"
END IF //VOTO >= 18
ELSE //if VOTO >= 0 && VOTO <= 30
OUT "Valore VOTO non valido"
END IF //VOTO >= 0 && VOTO <= 30
END PROG //main

AlgoBuild: Strutture iterative e selettive


PSEUDO-CODICE
Struttura Selettiva IF (Annidata)PROG
– Esempio
main
2
IN VOTO
IF VOTO >= 0 && VOTO <= 30
IF VOTO >= 18
OUT "Superato!"
ELSE //if VOTO >= 18
OUT "NON superato"
END IF //VOTO >= 18
ELSE //if VOTO >= 0 && VOTO <= 30
OUT "Valore VOTO non valido"
END IF //VOTO >= 0 && VOTO <= 30
END PROG //main

AlgoBuild: Strutture iterative e selettive


Struttura Selettiva IF (Annidata) – Esempio 2
Annidamento
•È possibile annidare qualsiasi struttura di controllo
in un’altra struttura di controllo del flusso
• Ad esempio:
• Un IF può essere annidato in un altro IF
• Visto in questo esempio
• Un ciclo può essere annidato in un IF
• Un IF può essere annidato in un ciclo
•Possibile anche annidamento su più livelli
• Esempio: Un IF può essere annidato all’interno di un
altro IF, che, a sua volta, è annidato all’interno di un ciclo

AlgoBuild: Strutture selettive e iterative


Struttura Selettiva IF (Annidata) – Esempio 2 – DEMO (VIDEO)
Ciclo a Condizione Iniziale
• In AlgoBuild sono presenti
due strutture iterative per
la rappresentazione di cicli
a condione iniziale:
• Struttura Iterativa WHILE
• Struttura Iterativa FOR

AlgoBuild: Strutture selettive e iterative


Ciclo a Condizione Iniziale
• In AlgoBuild sono presenti
due strutture iterative per
la rappresentazione di cicli
a condione iniziale:
• Struttura Iterativa WHILE
• Struttura Iterativa FOR

AlgoBuild: Strutture selettive e iterative


Ciclo a Condizione Iniziale
Struttura Iterativa WHILE
• Passi per la creazione di una struttura iterativa While in AlgoBuild

Verrà richiesto l’inserimento della


condizione iniziale del While

AlgoBuild: Strutture selettive e iterative


Ciclo a Condizione Iniziale
Struttura Iterativa WHILE

Queste istruzioni
verranno eseguite
finchè (while) la
condizione è vera
blocco istruzioni

AlgoBuild: Strutture selettive e iterative


Ciclo a Condizione Iniziale
• In AlgoBuild sono presenti
due strutture iterative per
la rappresentazione di cicli
a condione iniziale:
• Struttura Iterativa WHILE
• Struttura Iterativa FOR

AlgoBuild: Strutture selettive e iterative


Ciclo a Condizione Iniziale
Struttura Iterativa FOR – Esempio 3
• Definiamo un diagramma di flusso che
• Prende in input le seguenti due variabili
• X
• Y
• Memorizza e (mostra in output) una variabile
• R = XY
• N.B. Il calcolo di XY deve essere eseguito con il
metodo moltiplicativo
• X × X × …× X
Y volte

AlgoBuild: Strutture selettive e iterative


Ciclo a Condizione Iniziale
Struttura Iterativa FOR – Esempio 3
• Definiamo un diagramma di flusso che
• Prende in input le seguenti due variabili
• X
• Y
• Memorizza e (mostra in output) una variabile
• R = XY
• N.B. Il calcolo di XY deve essere eseguito con il
metodo moltiplicativo
• X × X × …× X
Y volte

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – Esempio 3

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – Esempio 3

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – Esempio 3

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – Esempio 3
• I = 1; I <= Y; I = I + 1
• I=1
• Inizializzazione del ciclo FOR
• Alla prima iterazione il valore di I sarà 1 (I = 1)
• I <= Y
• Condizione di uscita dal ciclo FOR
• Appena I sarà maggiore di Y, il ciclo FOR si terminerà
• I=I+1
• Incremento
• Ad ogni iterazione la variabile I verrà incrementata
automaticamente di 1

• In totale il ciclo verrà eseguito Y volte

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – Esempio 3

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – Esempio 3

Rappresentazione
FOR in AlgoBuild

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – Esempio 3
Rappresentazione AlgoBuild

Equivale a

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – Esempio 3

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – Esempio 3

R denota la variabile in cui verrà


memorizzato di volta in volta
l’output. Tale variabile è
inizializzata ad 1

(per inizializzazione di una


variabile, si intende l’assegnamento
iniziale, ad un certo valore, della
variabile stessa)

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – Esempio 3
PSEUDO-CODICE

PROG main
IN X
IN Y
ASSIGN R = 1
FOR I = 1; I <= Y; I = I + 1
ASSIGN R = R * X
END FOR //I = 1; I <= Y; I = I + 1
OUT R
END PROG //main

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – DEMO (Video)

AlgoBuild: Strutture ad
Introduzione iterative e selettive
AlgoBuild
Struttura Iterativa FOR – Esempio 4

• Definiamo un diagramma di flusso che


rappresenta il calcolo della media aritmetica di N
numeri presi in input, dove
• N è una variabile presa in input

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – Esempio 4
PSEUDO-CODICE

PROG main
IN N
ASSIGN Somma = 0
FOR I = 1; I <= N; I = I + 1
IN Valore
ASSIGN Somma = Valore + Somma
END FOR //I = 1; I <= N; I = I + 1
ASSIGN Media = Somma / N
OUT Media
END PROG //main

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – Esempio 4
Richiedo N all’utente (Input)

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – Esempio 4
• Inizializziamo Somma a zero
• Ciò servirà per tener traccia della
somma degli N numeri

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – Esempio 4

• Ciclo for che va da 1 a N


• Ad ogni iterazione
• Viene richiesto in input un
numero (IN Valore)
• Viene aggiornata la variabile
Somma che verrà utilizzata
successivamente per il calcolo
della media aritmetica
• Somma = Valore + Somma

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – Esempio 4

• Calcolo la media
• Dividendo la somma (variabile
Somma) per gli N numeri presi in
input

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – Esempio 4

Il contenuto della variabile Media viene


mostrato in output

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa FOR – Demo (Video)

AlgoBuild: Strutture ad
Introduzione iterative e selettive
AlgoBuild
Struttura Iterativa FOR – Esempio 4
OSSERVAZIONE

È necessario fornire preventivamente al


nostro algoritmo il numero di valori di cui si
dovrà calcolare la media…

…è possibile fare la media di un certo


numero (non noto a priori) di valori presi in
input?

AlgoBuild: Strutture selettive e iterative


Strutture di Controllo: Ciclo a
Condizione Finale

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa DO/WHILE – Esempio 5

• Definiamo un diagramma di flusso che


rappresenta il calcolo della media aritmetica di
un certo numero (non noto a priori) di valori
presi in input

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa DO/WHILE – Esempio 5
• Passi per la creazione di una struttura Do/While in AlgoBuild (ciclo a
condizione finale)

Verrà richiesto l’inserimento della


condizione finale del Do/While

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa DO/WHILE – Esempio 5

PSEUDO-CODICE

PROG main
ASSIGN Somma = 0
ASSIGN N = 0
DO_WHILE //Continua == 1
IN Valore
ASSIGN Somma = Somma + Valore
ASSIGN N = N + 1
IN Continua
END DO_WHILE Continua == 1
ASSIGN Media = Somma / N
OUT Media
END PROG //main

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa DO/WHILE – Esempio 5
• Inizializzazione a 0 delle variabili Somma
ed N
• Non è stato preso ancora in input
alcun valore (quindi N = 0)
• Non è stata eseguita ancora la
somma di alcun valore (quindi
Somma = 0)

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa DO/WHILE – Esempio 5

• Ciclo DO/WHILE
• Richiede in input un valore (IN Valore)
• Aggiorna la variabile Somma, aggiungendogli la
variabile Valore
• Somma = Somma + Valore
• Aggiorna il valore di N (dato che è stato preso in
input un nuovo valore)
• N=N+1
• Chiede all’utente se vuole continuare (quindi un
nuovo valore verrà preso in input)
• Se il valore della variabile Continua sarà
diverso da 1, allora il ciclo while si
interromperà
• Altrimenti si proseguirà con un’altra
iterazione

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa DO/WHILE – Esempio 5

• Calcola la media aritmetica dividendo


Somma per N
• La media aritmetica è memorizzata nella
variabile Media
• Che viene poi mostrata in output

AlgoBuild: Strutture selettive e iterative


Struttura Iterativa DO/WHILE – DEMO – (Video)

AlgoBuild:
AlgoBuild: Strutture
Strutture iterative
iterative ee selettive
selettive
Nella Prossima Lezione…
• …faremo una esercitazione su AlgoBuild

• L’esercitazione è consigliata (ma NON è


valutativa), al fine di chiarire ed approfondire le
tematiche trattate a lezione

• Potete portare il vostro portatile (non


indispensabile), su cui è stato precedentemente
installato AlgoBuild 0.75
◦ Trovate tutti i link/materiale sul sito

AlgoBuild: Strutture selettive e iterative


Esempio per casa
Risoluzione di equazioni di primo grado
•𝑎𝑥 + 𝑏 = 0
• La soluzione è:
•𝑥 =– 𝑏/𝑎
• Solo se 𝑎 ≠ 0
• 𝑥 = 𝑖𝑛𝑑𝑒𝑡𝑒𝑟𝑚𝑖𝑛𝑎𝑡𝑜 (𝑖𝑛𝑓𝑖𝑛𝑖𝑡𝑒 𝑠𝑜𝑙𝑢𝑧𝑖𝑜𝑛𝑖)
• Se 𝑎 = 0 𝑒 𝑏 = 0
• 𝑥 = 𝑖𝑚𝑝𝑜𝑠𝑠𝑖𝑏𝑖𝑙𝑒 (𝑛𝑒𝑠𝑠𝑢𝑛𝑎 𝑠𝑜𝑙𝑢𝑧𝑖𝑜𝑛𝑒)
• Se 𝑎 = 0 𝑒 b ≠ 0

AlgoBuild: Strutture selettive e iterative

Potrebbero piacerti anche