Corso di Informatica
Problemi ed algoritmi
Ing Pasquale Rota
Argomenti
Problemi ed algoritmi
Proprietà degli algoritmi
Pseucodice
Diagrammi di flusso
Informatica
Problemi ed algoritmi - Ing. Pasquale Rota
2
Proprietà degli algoritmi
• Eseguibilità: ogni azione deve essere
eseguibile in un tempo finito
• Non-ambiguità: ogni azione deve essere
univocamente interpretabile
• Limitatezza: il numero totale di azioni da
eseguire, per ogni insieme di dati in
ingresso, deve essere finito
Informatica
Problemi ed algoritmi - Ing. Pasquale Rota
3
Algoritmo
• Un algoritmo è una sequenza ordinata e
finita di operazioni elementari che
descrive la soluzione del problema.
procedura = algoritmo
Informatica
Problemi ed algoritmi - Ing. Pasquale Rota
4
Algoritmi e programmi
• Ogni elaboratore è una macchina in grado di
eseguire azioni elementari su oggetti detti dati.
• L’esecuzione delle azioni è richiesta
all’elaboratore tramite comandi elementari
chiamati ISTRUZIONI espresse attraverso un
opportuno formalismo: il linguaggio di
programmazione.
• La formulazione testuale di un algoritmo in un
linguaggio comprensibile a un elaboratore è
detta programma.
Informatica
Problemi ed algoritmi - Ing. Pasquale Rota
5
La progettazione del programma
• Durante la fase di descrizione del progetto
si possono utilizzare diversi metodi:
– Pseudo codici (affini alla lingua parlata)
– Diagramma di flusso
Informatica
Problemi ed algoritmi - Ing. Pasquale Rota
6
Pseudocodice
• Per pseudocodice, o pseudolinguaggio si intende un linguaggio di
programmazione fittizio che permette di rappresentare l’algoritmo
risolutivo.
• Lo pseudolinguaggio può essere utilizzato alternativamente al
diagramma di flusso, non è soggetto a molte limitazioni intrinseche di
quest'ultimo tipo di rappresentazione.
• Non esiste uno pseudolinguaggio standard e convenzionalmente
usato. Ogni pseudolinguaggio ha un proprio lessico, una propria
sintassi e una propria semantica
• La progettazione di questo tipo di formalismo è volta alla
comprensibilità e alla leggibilità del codice; la sintassi sarà quindi meno
rigorosa rispetto ad un vero linguaggio e le parole chiave saranno
evocative, in modo da rendere più intuitiva la sua interpretazione.
Informatica
Problemi ed algoritmi - Ing. Pasquale Rota
7
Diagramma di flusso o diagrammi a blocchi
• Un diagramma di flusso, o diagramma a blocchi, è
una rappresentazione grafica usata per descrivere dei
concetti.
• È uno metodi più comuni utilizzati per la
rappresentazione di algoritmi, permette di descrivere il
flusso di controllo mediante una descrizione
schematica delle operazioni da compiere e la
sequenza con le quali tali operazioni devono essere
eseguite.
• Si presenta come un insieme di figure geometriche
collegate da frecce.
Informatica
Problemi ed algoritmi - Ing. Pasquale Rota
8
Inizio/fine
Informatica
inizio
• Tutti i diagrammi di
flusso cominciano con
un ovale che contiene la
parola inizio.
fine
• Ogni diagramma di
flusso si conclude con
un ovale che contiene la
parola fine.
Problemi ed algoritmi - Ing. Pasquale Rota
9
Dati di input/output
Dati in
Ingresso/uscita
Informatica
• I dati in uscita sono
quelli che si vuole
conoscere e
costituiscono il risultato
dell’elaborazione.
• I dati in ingresso sono i
dati noti del problema,
quelli che devono essere
elaborati per arrivare alla
soluzione
Problemi ed algoritmi - Ing. Pasquale Rota
10
Blocco Operazioni
Operazioni
x2
z  5x+1
Informatica
• Le operazioni da
svolgere sui dati
sono racchiuse in
rettangoli
Problemi ed algoritmi - Ing. Pasquale Rota
11
Condizione
Vero o falso?
Informatica
• Quando si deve fare
una scelta tra due
possibilità si usa il
simbolo del rombo.
• Blocco condizionale
o di controllo
Problemi ed algoritmi - Ing. Pasquale Rota
12
Diagramma a blocchi Strutturati
Una diagramma descrive un algoritmo se:
• viene usato un numero finito di blocchi.
• lo schema inizia con un blocco iniziale e termina con un
blocco finale
• ogni blocco soddisfa le condizioni di validità.
- Blocco azione e blocco lettura/scrittura: ogni blocco di questi
due tipi ha una sola freccia entrante e una sola freccia
uscente.
- Blocco di controllo: ogni blocco di questo genere ha una
sola freccia entrante e due frecce uscenti.
- Dal blocco iniziale deve essere possibile raggiungere ogni
blocco, e da ciascun blocco e possibile raggiungere il blocco
finale.
Informatica
Problemi ed algoritmi - Ing. Pasquale Rota
13
Algoritmo: esempio 1
• Stabilire se un numero P è maggiore di Q
– leggi P,Q
• se P > Q
• allora scrivi P
• altrimenti se P < Q
• allora scrivi Q
• altrimenti
• scrivi “Uguali”
Informatica
Problemi ed algoritmi - Ing. Pasquale Rota
14
Diagramma di flusso
Inizio
Leggi P,Q
vero
falso
P>Q
falso
vero
Stampa P
P<Q
St. Uguali
Stampa Q
Fine
Informatica
Problemi ed algoritmi - Ing. Pasquale Rota
15
Cicli/iterazioni
• Un ciclo è una sequenza di istruzioni ripetute finché non
viene a verificarsi una determinata condizione o il
processo si ritiene completato.
• Ogni ripetizione del ciclo viene chiamata iterazione.
PRECONDIZIONE
falso
condizione
POSTCONDIZIONE
vero
Ciclo istruzioni
falso
Ciclo istruzioni
condizione
vero
Fine
Fine
Informatica
Problemi ed algoritmi - Ing. Pasquale Rota
16
Algoritmi: esempio 2
Stabilire se una parola P viene alfabeticamente
prima di una parola Q
– leggi P,Q
– ripeti quanto segue:
• se prima lettera di P < prima lettera di Q
• allora scrivi P
• altrimenti se prima lettera P > Q
• allora scrivi Q
• altrimenti (le lettere sono uguali)
• togli da P e Q la prima lettera
– fino a quando non trovi le prime lettere diverse o sono
terminate.
Informatica
Problemi ed algoritmi - Ing. Pasquale Rota
17
Diagramma di flusso
Inizio
Leggi P,Q
X=Q Y=P
X=Q Y=P
P1:=1a lettera Y
Q1:=1a lettera X
falso
falso
Togli 1a lettera X
Togli 1a lettera Y
P1>Q1
P1<Q1
vero
Stampa P
Stampa Q
Fine
Informatica
vero
Problemi ed algoritmi - Ing. Pasquale Rota
Fine
18
Le funzioni
• Un programma che esegue una procedura
matematica si dice che svolge una
funzione.
• Le funzioni possono essere scritte una
sola volta e richiamate in più punti del
programma senza doverle ripetere.
Informatica
Problemi ed algoritmi - Ing. Pasquale Rota
19
Sottoprogrammi
• I sottoprogrammi raggruppano in una
unica procedura gruppi di istruzioni
ripetute più volte all’interno dello stesso
programma.
• Sono identificati da un nome, dai dati di
ingresso (variabili/parametri input) e da
quelli di uscita (variabili di output).
Informatica
Problemi ed algoritmi - Ing. Pasquale Rota
20
Procedimento Top-down
Problemi complessi

Scomposizione del problema
 Soluzione per approssimazioni successive
Il procedimento prevede l’esecuzioni di più fasi. Per ciascuna fase si
prenderanno in esame soluzioni che riguardano parti sempre più limitate del
problema iniziale. In tal modo la risoluzione di un problema complesso è
stata ricondotta alla risoluzione di più problemi semplici (tanti quante sono le
funzioni previste dalla elaborazione originaria).
Informatica
Problemi ed algoritmi - Ing. Pasquale Rota
21