Esercizi sul Modello Relazionale - Dipartimento di Matematica e

I Diagrammi di Flusso
Corso di Informatica
Laurea in Fisica
prof. ing. Corrado Santoro
A.A. 2010-11
Algoritmi e formalismo
• Una caratteristica degli algoritmi è la non
ambiguità
• Per soddisfarla dobbiamo scrivere l'algoritmo
in modo non ambiguo
• Cioè dobbiamo usare un linguaggio o un
simbolismo non soggetto ad interpretazioni
• Non possiamo cioè andare avanti a calcola, se,
allora, vai a, etc.
Corrado Santoro, Informatica, Lezione 1 -Il concetto di algoritmo
2
Inventiamoci un simbolismo
• Di quali costrutti abbiamo bisogno?
– Input
– Output
– Calcolo
– Costrutti Condizionali (se)
– Indicazione di inizio e di fine algoritmo
– Salto incondizionato
Corrado Santoro, Informatica, Lezione 1 -Il concetto di algoritmo
3
I diagrammi di flusso (flow chart)
• I diagrammi di flusso sono un simbolismo
grafico che permette di rappresentare i
costrutti di un algoritmo in modo non ambiguo
• Ogni costrutto (input, output, calcolo, condizione,
etc) è indicato da un simbolo differente
• Attraverso questi simboli uniti da frecce, si
rappresenta la “strada” (i passi) che occorre fare
durante l'esecuzione dell'algoritmo
• Cioè si indica il “flusso di esecuzione”
Corrado Santoro, Informatica, Lezione 1 -Il concetto di algoritmo
4
Simboli dei diagrammi di flusso
• INPUT
• OUTPUT
• CALCOLO
• INIZIO
• FINE
START
END
• CONDIZIONE
Corrado Santoro, Informatica, Lezione 1 -Il concetto di algoritmo
5
Esempio:eq di secondo grado
1. calcola Delta = b2 – 4ac
2. se Delta < 0, allora non ci sono soluzioni in ℜ
3. altrimenti, ...
4. calcola x1 = (-b + √Delta) / (2a)
5. calcola x2 = (-b – √Delta) / (2a)
Corrado Santoro, Informatica, Lezione 1 -Il concetto di algoritmo
6
Eq di secondo grado: flow chart
START
X1 = (- B – SQRT(Delta)) / (2*A)
X2 = (- B + SQRT(Delta)) / (2*A)
A, B, C
No
Delta = B*B - 4*A*C
Delta < 0
X1, X2
Yes
“nessuna soluzione”
Corrado Santoro, Informatica, Lezione 1 -Il concetto di algoritmo
END
7
L'algoritmo di Euclide per il MCD
1. Dati A, B
2. Se A = B, allora MCD = A (oppure MCD = B)
3. Altrimenti, ...
4. Se A > B, allora calcola A = A – B
5. Altrimenti, calcola B = B – A (significa che A < B)
6. Vai al passo 2
Corrado Santoro, Informatica, Lezione 1 -Il concetto di algoritmo
8
... e il suo flow chart
START
A, B
B=B-A
No
No
A=B
A>B
Yes
“MCD = “, A
Corrado Santoro, Informatica, Lezione 1 -Il concetto di algoritmo
A=A-B
Yes
END
9
Il fattoriale
1. Fattoriale (N)
2. Se N = 0, allora Risultato = 1, fine algoritmo
3. Altrimenti, ...
4. Parziale = N
5. Se N = 1, allora Risultato = Parziale, fine algoritmo
6. Altrimenti, ...
7. N = N – 1
8. Parziale = Parziale * N
9. Vai al passo 5
Corrado Santoro, Informatica, Lezione 1 -Il concetto di algoritmo
10
... e il suo flow chart
START
Parziale = Parziale * N
N
N=N-1
No
No
N=0
Parziale = N
N=1
Yes
Yes
“0! = 1“
Corrado Santoro, Informatica, Lezione 1 -Il concetto di algoritmo
N “! = “ Parziale
END
11