Sistemi di Elaborazione delle Informazioni

Economia Aziendale
Sistemi di Elaborazione delle Informazioni
Università degli Studi di Enna “Kore”
Mario Collotta
[email protected]
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