Download - 01 Algoritmi e Calcolatore - polimi.it
![Page 1: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/1.jpg)
Daniele Loiacono
Algoritmi e (cenni sul) calcolatoreFondamenti di Informatica
![Page 2: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/2.jpg)
Daniele Loiacono
Cos’è l’informatica?
q È la scienza che si occupa della rappresentazionedell’informazione e della sua elaborazione e gestione
Si occupa dell’informazione, che fa parte di ogni attività umana, e non riguarda solo i calcolatoriSi occupa della rappresentazione, cioè di come modellare la realtà astraendo gli aspetti importanti da quelli trascurabiliSi occupa di elaborare e gestire l’informazione, cioè di trasformarla opportunamente per raggiungere lo scopo desiderato
q È lo studio sistematico degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione
![Page 3: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/3.jpg)
Daniele Loiacono
![Page 4: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/4.jpg)
Daniele Loiacono
Cos’è un algoritmo?
q Una sequenza finita di operazioni elementari tali che:siano comprensibili ad uno specifico esecutore possano essere eseguite senza ambiguitàpermettano di risolvere uno specifico problema
q Es. istruzioni IKEApassi elementarisenza ambiguitàraggiungono lo scopo
![Page 5: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/5.jpg)
Daniele Loiacono
Un esempio
q Come si calcola la radice quadrata di x?
q Definisce la radice quadrata ma non come si calcolaq Invece…
1. x ß radicando2. y ß (x+1)/23. Se y2 è abbastanza vicino ad x, y è la radice cercata4. Altrimenti,
y ß 0.5 * (y + x/y)5. Ricomincia dal punto 3
![Page 6: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/6.jpg)
Daniele Loiacono
Un esempio
q Come si calcola la radice quadrata di x?
q Definisce la radice quadrata ma non come si calcolaq Invece…
1. x ß radicando2. y ß (x+1)/23. Se y2 è abbastanza vicino ad x, y è la radice cercata4. Altrimenti,
y ß 0.5 * (y + x/y)5. Ricomincia dal punto 3 VARIABILI
![Page 7: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/7.jpg)
Daniele Loiacono
Un esempio
q Come si calcola la radice quadrata di x?
q Definisce la radice quadrata ma non come si calcolaq Invece…
1. x ß radicando2. y ß (x+1)/23. Se y2 è abbastanza vicino ad x, y è la radice cercata4. Altrimenti,
y ß 0.5 * (y + x/y)5. Ricomincia dal punto 3 OPERAZIONI
ARITMETICHE
![Page 8: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/8.jpg)
Daniele Loiacono
Un esempio
q Come si calcola la radice quadrata di x?
q Definisce la radice quadrata ma non come si calcolaq Invece…
1. x ß radicando2. y ß (x+1)/23. Se y2 è abbastanza vicino ad x, y è la radice cercata4. Altrimenti,
y ß 0.5 * (y + x/y)5. Ricomincia dal punto 3 I/O
![Page 9: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/9.jpg)
Daniele Loiacono
Un esempio
q Come si calcola la radice quadrata di x?
q Definisce la radice quadrata ma non come si calcolaq Invece…
1. x ß radicando2. y ß (x+1)/23. Se y2 è abbastanza vicino ad x, y è la radice cercata4. Altrimenti,
y ß 0.5 * (y + x/y)5. Ricomincia dal punto 3 DECISIONI
![Page 10: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/10.jpg)
Daniele Loiacono
Un altro esempio
q Cercare, in una lista ordinata, il codice IATA corrispondentead un dato areoporto
q Cercare, in una lista ordinata, a che aeroporto corrispondeun certo codice IATA
IATA
![Page 11: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/11.jpg)
Daniele Loiacono
Un ultimo esempio
q Come si contano le persone in una stanza?q Proviamo qualcosa di completamente diverso
1. Alzatevi tutti in piedi2. Ognuno di voi vale 13. Trova un compagno/a ancora in piedi
a) sommate i vostri due valori, il risultato èil vostro nuovo valore
b) uno dei due si deve sedere e l’altro deve restare in piedi4. Se al punto 3. non avete trovato un compagno, il vosto
valore non cambia e dovete restare in piedi5. Ricominciate dal punto 3, finchè non resta in piedi una sola
persona in tutta la stanza6. Il valore dell’ultima persona rimasta in piedi è il numero di
persone presenti nella stanza
![Page 12: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/12.jpg)
Daniele Loiacono
Dal problema alla soluzione automatica
q Ci occuperemo di problemi che riguardano la gestione e l’elaborazione dell’informazione
q Vedremo come passare dalla specifica di un problema alla sua soluzione automatica attraverso l’uso di un calcolatore
La specifica è una descrizione semi-formale del problemaÈ necessario passare dalla specifica ad un algoritmo che risolve il problema datoInfine affinché l’algoritmo trovato sia eseguibile dal calcolatore dovrà essere definito in un linguaggio comprensibile al calcolatore stesso
![Page 13: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/13.jpg)
Daniele Loiacono
Dalla specifica all’algoritmo
q Il processo che porta dalla specifica di un problema ad un algoritmo che lo risolve non è automatico e non è facile da formalizzare
La specifica spesso può essere poco chiara o ambiguaLa scrittura di un algoritmo richiede uno sforzo creativo
q Come si impara a progettare un algoritmo?Utilizzare un approccio incrementaleRealizzarlo per raffinamenti successiviFare molta pratica
q QualitàCorrettezza: risolve il problema e prende in considerazione tutti i casi possibiliEfficienza: usa con parsimonia le risorse (es. tempo)
q La correttezza è fondamentale ma difficile da verificare, l’efficienza è desiderabile e facile da misurare
![Page 14: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/14.jpg)
Daniele Loiacono
Come si formalizza un algoritmo?
q Una buon processo di progettazione si conclude con la definizione precisa e concisa dell’algoritmo ideato
q Alcuni linguaggi semi-formali spesso usatiPseudo-codice
se A > 0 allora A = A + 1 altrimenti A = 0
Diagrammi di flusso (o schemi a blocchi)
• Blocco di input dati
• Blocchi di inizio/fine dell’esecuzione
• Blocco esecutivo
• Blocco condizionale
• Blocco di output dati
• Flusso di controllo delle operazioni
leggi…
…test…?
inizio fine
scrivi…
assegnamento
…test… ?
![Page 15: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/15.jpg)
Daniele Loiacono
1. Leggi N ed M2. MIN = il minimo tra N ed M3. X = 1 4. MCD = 15. Fintantoché X < MIN
I. X = X + 1II. se X divide sia N che M, allora MCD = X
6. Scrivi MCD
Esempio: M.C.D. di due naturali positivi
![Page 16: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/16.jpg)
Daniele Loiacono
Leggere i valori delle coordinate dei vertici
Triangolo degenere?
Calcolare la lunghezza dei lati
Calcolare il perimetro come somma delle lunghezze
Vuoi continuare?
sì
no
no
q Date le coordinate di tre punti, riconoscere se sono i vertici di un triangolo non degenere, e nel caso calcolarne il perimetro
sì
Scrivi: “Triangolodegenere”
INIZIO
FINE
Scrivi il valore del perimetro
Esempio: perimetro di un triangolo
![Page 17: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/17.jpg)
Daniele Loiacono
Come è fatto un calcolatore?
![Page 18: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/18.jpg)
Daniele Loiacono
La macchina di Von Neumann
Unità diElaborazione(CPU)
MemoriaCentrale (MM)
InterfacciaPeriferica P1
InterfacciaPeriferica P2
Bus di sistema
Esecuzione istruzioni Memoria di lavoroMemoria di massa,
stampante, terminale…
Collegamento
![Page 19: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/19.jpg)
Daniele Loiacono
La memoria centrale (MM)
0
1
1023
Dati e
istruzioni
Indirizzo cella
![Page 20: 01 Algoritmi e Calcolatore - polimi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012508/61857552353d8338403e4e19/html5/thumbnails/20.jpg)
Daniele Loiacono
Registro istruzionecorrente (CIR)
Registro dati (DR)Registro indirizzi
(AR)
Registro contatoredi programma (PC)
Registro di stato (SR)
Registrointerruzioni (INTR)
A
B
Unità di controllo(CU)
Clock
Unitàaritmeticologica(ALU)
Bus di sistema
CPU