Economia Aziendale
Sistemi di Elaborazione delle Informazioni
Università degli Studi di Enna “Kore”
Mario Collotta
mario.collotta@unikore.it
1
In questa lezione…
• Algoritmi e diagrammi di flusso
Consultazione di una carta geografica
(per decidere percorsi automobilistici)
• In genere, la selezione di un luogo di
villeggiatura non obbedisce a un rigido
algoritmo.
• Al contrario, il problema di trovare la via più
breve per andare in auto da una città all’altra
può essere risolto mediante un algoritmo.
• Si trovano tutte le sequenze di città che
determinano un itinerario tra le due città. Più
precisamente, siano cp e ca rispettivamente la
città di partenza e la città di arrivo:
– si individuano e si memorizzano, ognuna su un
diverso pezzo di carta, tutte le sequenze {c0, c1, c2,
…, ck} di nomi di città, tali che:
– nessuna città compaia due volte nella sequenza;
– il primo elemento della sequenza, c0, coincida con cp,
e l’ultimo, ck, coincida con ca;
– per ogni coppia di elementi contigui, <ci, ci+1>, esista
un tratto di strada che li unisce; il tratto di strada non
può ovviamente attraversare alcuna città.
• Per ogni sequenza, si calcola la somma delle
distanze dei vari tratti di strada e la si
memorizza accanto alla sequenza.
– Si individua la sequenza per cui il valore della somma
delle distanze è minimo e la si sceglie come strada
più breve.
– Se per caso si trovasse più di un itinerario con la
stessa distanza totale tra cp e ca, se ne sceglierebbe
uno arbitrariamente (per esempio il primo trovato).
Se non si trova alcun itinerario, per esempio perché
cp e ca sono separate dal mare, non esiste alcuna
soluzione.
Lezioni ricavate:
• Un problema complesso si può risolvere scomponendolo
in problemi meno complessi fino ad arrivare a problemi
elementari;
• Quali siano i problemi elementari (risolvibili
immediatamente) dipende da chi/ che cosa è il risolutore;
• Trovato un algoritmo non è detto che questo sia l’unico
né tantomeno il migliore per risolvere il nostro problema
(nel caso specifico ne esistono certamente di migliori da
vari punti di vista);
• Quando potremo stabilire che l’algoritmo da noi
elaborato è eseguibile da una macchina?
à Dobbiamo conoscere, almeno un po’, la macchina!
Cos’è un algoritmo
• Risolvere un problema significa individuare un
procedimento (algoritmo) che, eseguito, fornisce
informazioni finali(risultati) dipendenti da
informazioni iniziali (dati).
• Il procedimento risolutivo è costituito da un insieme
di passi (istruzioni), ognuno dei quali specifica una
operazione elementare.
Un algoritmo deve rispettare alcune proprietà:
Algoritmo
• L’esecuzione di un algoritmo si traduce in una
successione di operazioni che vengono
effettuate nel tempo.
• L’esecuzione di un algoritmo evoca un
processo sequenziale cioè una serie di eventi
che occorrono uno dopo l’altro, ognuno con un
inizio ed una fine ben identificabile.
Compito del programmatore:
Esempio: Trova il max tra due numeri
Non è un algoritmo la seguente discussione:
Algoritmo
Esecuzione di un algoritmo
Diagrammi di flusso
• I diagrammi di flusso sono dei disegni che
rappresentano graficamente un nostro
ragionamento rappresentandolo come algoritmo
• In tal modo si ha:
– una comprensione immediata del funzionamento del
nostro percorso logico,
– un controllo accurato sulla funzionalità e la casistica
del ragionamento.
blocco iniziale
blocco finale
blocco di lettura/scrittura blocco azione
I/O
(Elaborazione)
• Alcuni simboli à
blocco di controllo
Perché i diagrammi di flusso…?
Programma
Programma = dati + istruzioni
• Programma: sequenza di operazioni svolte da
un elaboratore per risolvere un problema.
– Dati: la descrizione dei dati e’ effettuata attraverso
dichiarazioni e definizioni.
– Istruzioni: le operazioni effettuate in un programma
elaborano sostanzialmente dei dati.
Esempio
• Dati due numeri,
trovare il maggiore.
STOP
Diagrammi di flusso
Programmazione strutturata