14
Alice Pavarani Sequenza, Selezione, Iterazione

Sequenza, Selezione, Iterazione - Alice Pavaraniprofalicepavarani.weebly.com/uploads/5/2/3/5/52356731/06_sequenza... · Programmazione strutturata ... La possibilità data dai diagrammi

  • Upload
    ngodat

  • View
    224

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sequenza, Selezione, Iterazione - Alice Pavaraniprofalicepavarani.weebly.com/uploads/5/2/3/5/52356731/06_sequenza... · Programmazione strutturata ... La possibilità data dai diagrammi

Alice Pavarani

Sequenza, Selezione, Iterazione

Page 2: Sequenza, Selezione, Iterazione - Alice Pavaraniprofalicepavarani.weebly.com/uploads/5/2/3/5/52356731/06_sequenza... · Programmazione strutturata ... La possibilità data dai diagrammi

Programmazione strutturata

V B - Sistemi Informativi Aziendali 2

La possibilità data dai diagrammi a blocchi di selezionare l’istruzione successiva senza seguire regole può portare ad algoritmi difficilmente leggibili e non modificabili

La programmazione strutturata fornisce un approccio differente: impone all’insieme delle istruzioni delle strutture ben definite

Costrutto strutturato è un insieme di istruzioni con un solo punto di ingresso ed un solo punto di uscita

Page 3: Sequenza, Selezione, Iterazione - Alice Pavaraniprofalicepavarani.weebly.com/uploads/5/2/3/5/52356731/06_sequenza... · Programmazione strutturata ... La possibilità data dai diagrammi

Strutture fondamentali

V B - Sistemi Informativi Aziendali 3

Sequenza

Selezione

Iterazione

Nel 1966 gli informatici italiani Corrado Böhm e Giuseppe Jacopini dimostrarono uno dei più importanti teoremi di informatica teorica:

Qualunque algoritmo può essere espresso utilizzando solamente le tre strutture di controllo fondamentali:

sequenza, selezione, iterazione

Page 4: Sequenza, Selezione, Iterazione - Alice Pavaraniprofalicepavarani.weebly.com/uploads/5/2/3/5/52356731/06_sequenza... · Programmazione strutturata ... La possibilità data dai diagrammi

Sequenza

V B - Sistemi Informativi Aziendali 4

Una struttura per cui non è possibile, in alcun modo, alterare il flusso di esecuzione si definisce sequenza

Nel linguaggio C/C++ sono le

parentesi graffe a delimitare una

sequenza di istruzioni

Page 5: Sequenza, Selezione, Iterazione - Alice Pavaraniprofalicepavarani.weebly.com/uploads/5/2/3/5/52356731/06_sequenza... · Programmazione strutturata ... La possibilità data dai diagrammi

Selezione

V B - Sistemi Informativi Aziendali 5

La selezione è un costrutto in grado di alterare la linearità del flusso di esecuzione

Detta anche struttura di controllo decisionale

I costrutti di controllo devono avere un solo punto di ingresso ed un solo punto di uscita

condizione logica

istruzione

VERO FALSO condizione logica

istruzione1

VERO FALSO

istruzione2

Page 6: Sequenza, Selezione, Iterazione - Alice Pavaraniprofalicepavarani.weebly.com/uploads/5/2/3/5/52356731/06_sequenza... · Programmazione strutturata ... La possibilità data dai diagrammi

Selezione (i costrutti if e if-else)

se … allora se … allora … altrimenti

V B - Sistemi Informativi Aziendali 6

Pseudolinguaggio

Linguaggio C

Pseudolinguaggio

Linguaggio C

Se <condizione> Allora

<istruzione>

FineSe

Se <condizione> Allora

<istruzione1>

Altrimenti

<istruzione2>

FineSe

if (<condizione>)

<istruzione>;

if (<condizione>)

<istruzione1>;

else

<istruzione2>;

Page 7: Sequenza, Selezione, Iterazione - Alice Pavaraniprofalicepavarani.weebly.com/uploads/5/2/3/5/52356731/06_sequenza... · Programmazione strutturata ... La possibilità data dai diagrammi

Iterazione

V B - Sistemi Informativi Aziendali 7

L’iterazione è un costrutto che consente di ripetere più volte l’esecuzione di un blocco di istruzioni

Iterazione guidata da eventi consente di eseguire un blocco di istruzioni senza sapere a priori quante volte queste verranno ripetute

Tutto dipende dal fatto che una certa condizione si verifichi o meno

Iterazione enumerativa consente di eseguire un blocco di istruzioni un numero predefinito di volte

Page 8: Sequenza, Selezione, Iterazione - Alice Pavaraniprofalicepavarani.weebly.com/uploads/5/2/3/5/52356731/06_sequenza... · Programmazione strutturata ... La possibilità data dai diagrammi

Iterazione postcondizionale

V B - Sistemi Informativi Aziendali 8

Iterazione fondamentale, cioè tutte le altre iterazioni possono essere definite a partire da questa

Il blocco di istruzioni da iterare viene eseguito almeno una volta

Alla fine di ogni iterazione viene verificata una condizione

L’iterazione si ripete fintanto che la condizione risulta vera

c

istruzione1

istruzione2

… … …

condizione logica VERO FALSO

corpo del

ciclo

Page 9: Sequenza, Selezione, Iterazione - Alice Pavaraniprofalicepavarani.weebly.com/uploads/5/2/3/5/52356731/06_sequenza... · Programmazione strutturata ... La possibilità data dai diagrammi

Iterazione precondizionale

V B - Sistemi Informativi Aziendali 9

La condizione viene verificata in testa al ciclo

Il blocco di istruzioni può, nel caso in cui la condizione risulti subito falsa, non essere mai eseguito

L’iterazione si ripete fintanto che la condizione risulta vera

condizione logica VERO FALSO

istruzione1

istruzione2

… … …

corpo del

ciclo

Page 10: Sequenza, Selezione, Iterazione - Alice Pavaraniprofalicepavarani.weebly.com/uploads/5/2/3/5/52356731/06_sequenza... · Programmazione strutturata ... La possibilità data dai diagrammi

Iterazione guidata da eventi (i cicli while e do-while)

ripeti … finQuando finQuando … esegui

V B - Sistemi Informativi Aziendali 10

Pseudolinguaggio

Linguaggio C

Pseudolinguaggio

Linguaggio C

Ripeti

<istruzione1>

<istruzione2>

… … …

FinQuando (<condizione>)

finché <condizione> esegui

<istruzione1>

<istruzione2>

… … …

fineFinché

do

{

<istruzione1>;

<istruzione2>;

… … …

} while (<condizione>);

while (<condizione>)

{

<istruzione1>;

<istruzione2>;

… … …

}

Page 11: Sequenza, Selezione, Iterazione - Alice Pavaraniprofalicepavarani.weebly.com/uploads/5/2/3/5/52356731/06_sequenza... · Programmazione strutturata ... La possibilità data dai diagrammi

Iterazione enumerativa

V B - Sistemi Informativi Aziendali 11

Quando il numero di iterazioni è noto a priori può essere più comodo utilizzare un’iterazione enumerata

NOTA: Le strutture iterative già presentate (guidate da eventi) possono essere utilizzate anche in queste situazioni

Viene utilizzata una variabile contatore che ha la funzione di contare il numero di iterazioni

Il contatore:

inizializzato prima del ciclo (valore di partenza)

incrementato ad ogni iterazione (step o passo di esecuzione)

controllato ad ogni iterazione mediante una condizione

Page 12: Sequenza, Selezione, Iterazione - Alice Pavaraniprofalicepavarani.weebly.com/uploads/5/2/3/5/52356731/06_sequenza... · Programmazione strutturata ... La possibilità data dai diagrammi

Iterazione guidata da eventi (il ciclo for)

V B - Sistemi Informativi Aziendali 12

Pseudolinguaggio

Linguaggio C

per <contatore> da <inizio> a <fine> passo <step> esegui

<istruzione1>

<istruzione2>

… … …

finePer

for (<inizializzazione> ; <condizione> ; <incremento>)

{

<istruzione1>;

<istruzione2>;

… … …

}

eseguita prima del ciclo ed utilizzata per

inizializzare il contatore

condizione logica necessaria perché venga eseguito il corpo del ciclo

eseguita ad ogni iterazione ed utilizzata per

l’incremento/decremento del contatore

Page 13: Sequenza, Selezione, Iterazione - Alice Pavaraniprofalicepavarani.weebly.com/uploads/5/2/3/5/52356731/06_sequenza... · Programmazione strutturata ... La possibilità data dai diagrammi

Iterazioni

V B - Sistemi Informativi Aziendali 13

E’ sempre possibile realizzare un’iterazione enumerativa mediante un’iterazione guidata da eventi

contatore = 1

finché (contatore <= n) esegui

<istruzione1>

<istruzione2>

… … …

contatore = contatore + step

fineFinché

inizializzazione contatore

condizione di controllo terminazione

blocco di istruzioni da iterare = corpo del ciclo

incremento contatore

Page 14: Sequenza, Selezione, Iterazione - Alice Pavaraniprofalicepavarani.weebly.com/uploads/5/2/3/5/52356731/06_sequenza... · Programmazione strutturata ... La possibilità data dai diagrammi

Cicli annidati

V B - Sistemi Informativi Aziendali 14

NOTA: All’interno di qualunque blocco iterativo si può inserire qualsiasi tipo di istruzione

Si può includere anche un’istruzione di selezione o di iterazione, in tal caso si parla di annidamento (o nidificazione) dei cicli