Introduzione al Corso - Prof. Luca...

213
Informatica B, AA 19/20, Luca Cassano Introduzione al Corso Informatica B, AA 2019/20 Luca Cassano 16 Settembre 2019 [email protected]

Transcript of Introduzione al Corso - Prof. Luca...

Page 1: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Introduzione al Corso

Informatica B, AA 2019/20

Luca Cassano

16 Settembre 2019

[email protected]

Page 2: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Per Evitare Confusione

Prof. Masseroli ha lo scaglione MARI - PEZ

Prof. Trovò ha lo scaglione PEZ - SAM

Prof. Cassano ha lo scaglione SAM - ZZZ

Prof. Trovò si trova ora nell’aula di fianco

La suddivisione degli studenti nelle varie sezioni potrebbe

cambiare nei prossimi giorni (riguarda solamente gli studenti

"vicini" a SAM).

Page 3: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Perché studiare informatica?

Page 4: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

- Aiuta a sviluppare la capacità di modellizzazione e

problem solving

- Deve far parte del bagaglio culturale/interdisciplinare

di ogni ingegnere contemporaneo (e vi servirà!)

- Applicazioni dell’informatica sono dappertutto> Capire

> Progettare

> Realizzare

Perché studiare informatica?

Page 5: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Chi siamo

Page 6: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Chi siamo

Luca Cassano (docente)

• Dipartimento di Elettronica, Informazione e Bioingegneria,

Politecnico di Milano

• homepage: http://cassano.faculty.polimi.it/

• email: [email protected]

• telefono: 02-23994174

• ricevimento studenti:

− Martedì pomeriggio

− Ufficio 129 via Ponzio 34/5, Milano (Edificio 20 Campus

Leonardo).

In ogni caso è consigliabile prendere appuntamento via

email.

Page 7: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Chi siamo

Page 8: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Chi siamo

Ing. Matteo Papini (esercitatore)

• email: [email protected]

Ing. Luca Frittoli (responsabile di laboratorio)

Ing. Amarildo Likmeta (responsabile di laboratorio)

Page 9: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Il Corso

http://cassano.faculty.polimi.it/InformaticaB.html

Page 10: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Il corso

Page 11: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Il corso

Page 12: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Organizzazione

Lezioni: ~30 ore

il Lunedì dalle 15.15 alle 18.15, in B.6.27

il Mercoledì dalle 8.15 alle 11.15 in aula L.01

Esercitazioni: 26 ore

il Mercoledì dalle 8.15 alle 11.15 in aula L.01

il Giovedì dalle 8:15 alle 10:15 in aula B2.1.9 (Ex CT.43)

Laboratori: 15 ore (5 incontri)

Il Lunedì dalle 15.15 alle 18.15, in B.6.27

Controllate sempre il calendario del corso:

http://cassano.faculty.polimi.it/calendario.pdf

Page 13: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Il calendario

Page 14: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Argomenti Trattati

Introduzione all’informatica

Introduzione alla programmazione

Fondamenti della programmazione in

linguaggio C

Rappresentazione binaria dei numeri interi

Fondamenti della programmazione in Matlab

Argomenti avanzati di programmazione

Composizione e organizzazione dei sistemi

informatici

Prim

o

em

ise

me

stre

Se

co

nd

o

em

ise

me

stre

Page 15: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Bibliografia

G. Boracchi, E. Di Nitto, D. Loiacono, M. Masseroli, M.

Santambrogio, V. Zaccaria, F. Fummi

“Materiale su sistemi informatici e i principi di

programmazione in C per il corso di Informatica B “

Editore: Mc Graw Hill (*)

A. Campi, E. Di Nitto, D. Loiacono, A. Morzenti, B. Spoletini,

“Introduzione alla programmazione in Matlab”, seconda

edizione.

Page 16: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Bibliografia (nota importante)

Questo testo contiene i capitoli

del "Informatica Arte e

Mestiere“ che sono rilevanti per

il corso di Informatica B.

Se siete in possesso di

"Informatica Arte e

Mestiere“, non dovete

acquistare anche questo.

Page 17: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Cosa Imparerete:

Gli elementi fondamentali ed i principi che regolano il

funzionamento di un sistema informatico

Cos’è un algoritmo e come sviluppare algoritmi per

risolvere problemi

Come codificare tali algoritmi in programmi che ne

permettano l’automatizzazione.

Le basi della programmazione.

L‘utilizzo del linguaggio C e Matlab

Alcune nozioni di base sui sistemi operativi e sulla

codifica binaria

Page 18: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La Pagina del Corso

La pagina del corso è

http://cassano.faculty.polimi.it/InformaticaB.html

Troverete:

• Materiale didattico usato a lezione (queste slides sono

da considerare un supporto allo studio)

• Il materiale delle esercitazioni e dei laboratori

• Temi d’esame con soluzioni

• Calendario del corso (lezioni, esercitazioni, laboratori)

• Avvisi, esiti esami

Page 19: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Le esercitazioni

Durante le esercitazioni verranno approfonditi gli

argomenti trattati a lezione con ulteriori esempi pratici

svolti alla lavagna

Sarete assistiti da:

• Un esercitatore

Page 20: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

I Laboratori

Nei laboratori vi sarà richiesto di sviluppare

autonomamente degli esercizi.

Tutti gli studenti nello stesso orario (un solo turno)

Sarete assistiti da :

• Due responsabili di laboratorio

• Due/tre tutors (?!)

Page 21: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

I Laboratori

È possibile utilizzare il proprio laptop,

• Installare Code::Blocks per il C, versione con compilatore

(http://www.codeblocks.org/)

• Installare Matlab (per il secondo emisemestre)

In alternativa, vi verrà fornito un laptop per la durata del

laboratorio.

• arrivare 15 minuti prima in laboratorio per richiederlo.

In alternativa è possibile usare il servizio VirtualDesktop

Il primo laboratorio si terrà in quest’aula Lunedì 23 Settembre

(controllare sempre il calendario del corso!!!)

Page 22: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

L’Esame ed il Ricevimento Studenti

Page 23: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Modalità di Verifica

Si terranno solo appelli regolari (no prove in itinere):

• Esame scritto su tutto il programma

− Esercizio di programmazione C

− Esercizio di programmazione Matlab

− Terzo esercizio variabile

− 2 domande di teoria

• NON è prevista una prova orale

Il laboratorio non sarà valutato (ma è molto molto utile)

Page 24: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Ricevimento Studenti

Domande e richieste di chiarimenti in aula sono sempre ben

accette (soprattutto durante la lezione a beneficio di tutta

l’aula!!!)

Quando il prof chiede ‘‘Capito?’’, per favore rispondere ‘‘Si’’

oppure ‘‘No’’

Page 25: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Ricevimento Studenti

Potete anche rivolgere domande via mail

In particolare:

• Inviate solo codici (C o Matlab) in file sorgenti

• Dite chiaramente qual è il vostro problema e perché

l’esercizio non funziona

• Riportate il testo dell’esercizio

• Ponete domande CHIARE!

Page 26: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

…prima di iniziare per davvero…

Page 27: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Raccomandazioni / Consigli / Note

Per chi ha già programmato: le prime lezioni / esercitazioni

potrebbero essere noiose. Abbiate pazienza

Per chi non ha mai programmato: le prime lezioni /

esercitazioni potrebbero spaventare: Abbiate coraggio

Per tutti: ‘‘SFRUTTATE’’ l’università e vivetela attivamente

• Frequentate

• Fate domande e partecipate al ricevimento studenti

• Non trascinatevi: l’università non finisce da sé, la dovete

finire voi!

STUDIATE

Page 28: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Raccomandazioni / Consigli / Note

Ma soprattutto:

siate CONSAPEVOLI

Page 29: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

LET’S ROCK!

Page 30: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Cos’è l’informatica?

Scienza della rappresentazione e dell’elaborazione

dell’informazione.

[da «Informatica Arte e Mestiere»]

Page 31: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Cos’è l’Informatica?

Scienza della rappresentazione e dell’elaborazione

dell’informazione.

Scienza: ovvero una conoscenza sistematica e

rigorosa di tecniche e metodi.

Informazione: l’oggetto dell’investigazione scientifica

(informazione intesa come entità astratta e come

tecnologie per la sua gestione)

Rappresentazione: il modo in cui l’informazione viene

strutturata e trasformata in dati fruibili da macchine

Elaborazione: uso e trasformazione dell’informazione per

un dato scopo. L’elaborazione deve poter essere eseguita

da macchine che processano dati.

[da «Informatica Arte e Mestiere»]

Page 32: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Cos’è l’Informatica?

Studio sistematico degli algoritmi che descrivono e

trasformano l’informazione:

• la loro teoria,

• analisi,

• progetto,

• efficienza,

• realizzazione,

• applicazione.

[da Association for Computing Machinery (ACM)]

Page 33: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Gli Algoritmi

Page 34: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo

Sequenza di istruzioni, definite con precisione, che

portano alla realizzazione di un compito

Le istruzioni devono:

essere comprensibili senza ambiguità

essere eseguibili da uno strumento automatico:

l’esecutore

portare a realizzare un compito in tempo finito (devono

contenere un numero finito di passi, ciascuno eseguibile

in tempo finito)

Non è necessario un calcolatore per parlare di informatica!

Page 35: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo

…….ora vedermo un esempio di algoritmo in cui vi sarà

capitato di essere esecutori….

Page 36: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Page 37: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Page 38: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Page 39: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Page 40: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Il Linguaggio «IKEA»

Le istruzioni IKEA sono fatte per esecutori intelligenti

(nello specifico…noi) l’interpretazione dei disegni richiede

diverse capacità

Page 41: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Il Linguaggio «IKEA»

Quando l’esecutore è meno intelligente occorre esprimere

le istruzioni in un linguaggio più preciso

Page 42: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Definiamo un nostro linguaggio per gli algoritmi!

Svilupperemo i prossimi algoritmi in italiano (utilizzando un

linguaggio molto essenziale).

In particolare, il linguaggio sarà caratterizzato da:

• Sequenzialità delle istruzioni

• Costrutto condizionale

• Costrutto iterative

Inoltre, potremo utilizzare “foglietti” dove scrivere (registrare)

alcuni valori

Page 43: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La Sequenzialità

Page 44: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La sequenzialità

istr2;

istr3;

istr4;

istr1;

Page 45: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La sequenzialità

istr1;

istr2;

istr3;

istr4;

istr2;

istr3;

istr4;

istr1;

Le istruzioni vengono eseguite dalla prima all’ultima.

Terminata la i-sima istruzione, si esegue la (i+1)-sima

Page 46: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: algoritmo per andare in università

Mi alzo quando suona la sveglia

Mi dirigo verso la cucina

Mangio un cornetto e bevo un caffè

Mi lavo

Mi vesto

Esco

Corro

Page 47: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Costrutto Condizionale

Page 48: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Costrutto Condizionale:

instrBefore;

expression

instrA;

instrB;

instrC;

instrAfter;

Se falso Se vero

Dopo aver eseguitoinstrBefore si valuta

expression

Se expression è vera

eseguo il ramo di istruzionicontenente instrA; e

instrB

Altrimenti eseguo instrC;

Page 49: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Costrutto Condizionale:

instrBefore;

expression

instrA;

instrB;

instrC;

instrAfter;

Se falso Se vero

Dopo aver eseguitoinstrBefore si valuta

expression

Se expression è vera

eseguo il ramo di istruzionicontenente instrA; e

instrB (ramo then)

Altrimenti eseguo instrC

(ramo else)

Poi eseguo instrAfter

Page 50: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: algoritmo per andare in Università

Mi alzo quando suona la sveglia

Mi dirigo verso la cucina

Mangio e bevo un caffè

Mi lavo e mi vesto

Se devo mangiare fuori

• prendo il pranzo

Altrimenti

• prendo uno snack per metà mattina

Esco

Corro

Page 51: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Costrutto Condizionale:

instrBefore;

expression

instrA;

instrB;

instrAfter;

se vero

Non è obbligatorio prevedere

azioni specifiche nel caso in cui expression fosse falsa

Page 52: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: algoritmo per andare in Università

Mi alzo quando suona la sveglia

Mi dirigo verso la cucina

Mangio e bevo un caffè

Mi lavo e mi vesto

Se c’è il laboratorio di informatica

• Prendo il laptop

Esco

Corro

Page 53: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Costrutto Iterativo

Page 54: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Costrutto Iterativo

Se expression è vera

eseguo il ramo di istruzionicontenente instrA; e

instrB; (corpo del ciclo)

Al termine valuta

nuovamenteexpression.

Se expression è falsa,

prosegui oltre, altrimenti

esegui le istruzioni nel

corpo del ciclo

instrBefore;

instrA;

instrB;

instrAfter;

se falso se vero

expression

Page 55: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: algoritmo per andare in Università

Mi alzo quando suona la sveglia

Mi dirigo verso la cucina

Mangio e bevo un caffè

Mi lavo e mi vesto

Se c’è il laboratorio di informatica

• Prendo il laptop

Vado in stazione

Ripeti: “guarda il treno in arrivo: non ferma a Bovisa?”

• se vero, attendi il possimo treno

Sali sul treno

Arrivi a lezione, wow

Page 56: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempi di Algoritmi

Page 57: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Il Pallottoliere

Supponiamo di avere un bambino che sa contare, ma non

sa fare operazioni aritmetiche e non sa scrivere.

Scriviamo le istruzioni per utilizzare il pallottoliere

Page 58: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo per sommare col pallottoliere

Per semplificarci la vita suppoiamo

che :

Primo addendo è riportato sulla

prima riga a sinistra

Secondo addendo è sulla

seconda riga a sinistra

Risultato deve apparire nella terza

riga

Operiamo con numeri «piccoli»,

non c’è bisogno del riporto

Page 59: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo per sommare col pallottoliere

Per semplificarci la vita suppoiamo

che :

Primo addendo è riportato sulla

prima riga a sinistra

Secondo addendo è sulla

seconda riga a sinistra

Risultato deve apparier nella terza

riga

Operiamo con numeri «piccoli»,

non c’è bisogno del riporto

Page 60: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo per sommare col pallottoliere

Per semplificarci la vita suppoiamo

che :

Primo addendo è riportato sulla

prima riga a sinistra

Secondo addendo è sulla

seconda riga a sinistra

Risultato deve apparier nella terza

riga

Operiamo con numeri «piccoli»,

non c’è bisogno del riporto

Page 61: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo del pallottoliere

1. Sposta una pallina da sinistra a destra nella prima riga, al

contempo da destra a sinistra nella terza riga

2. Ripeti operazione precedente fino a svuotare parte

sinistra prima riga

3. Sposta pallina da sinistra a destra nella seconda riga, al

contempo da destra a sinistra nella terza.

4. Ripeti operazione precedente fino a svuotare parte

sinistra seconda riga

5. Conta quante palline trovi sulla terza riga.

Page 62: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Proprietà fondamentali degli algoritmi

Correttezza:

• l’algoritmo risolve il compito senza errori o difetti.

Efficienza:

• l’algoritmo usa risorse in modo minimale (o almeno

ragionevole)

Page 63: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Altri Esempi:

Algoritmo per invertire il contenuto di due bicchieri A e B,

supponendo di avere un terzo bicchiere C.

Algoritmo per trovare il prodotto più economico nella

corsia del supermercato, passando per la corsia una sola

volta.

Algoritmo per controllare che la maggioranza degli

studenti abbia capito gli esercizi sopra.

Algoritmo per ricercare i libri in Biblioteca

Page 64: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: invertire il contenuto di A e B

1. Prendi un terzo bicchiere C

2. Rovescia il contenuto del bicchiere A nel bicchiere C

3. Rovescia il contenuto di B in A

4. Rovescia il contenuto di C in B

Page 65: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: invertire il contenuto di A e B

1. Prendi un terzo bicchiere C

2. Rovescia il contenuto del bicchiere A nel bicchiere C

3. Rovescia il contenuto di B in A

4. Rovescia il contenuto di C in B

Algoritmo per scambiare i valori di due variabili A e B

Page 66: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Altri Esempi:

Algoritmo per invertire il contenuto di due bicchieri,

supponendo di avere un terzo bicchiere.

Algoritmo per trovare il prodotto più economico nella

corsia del supermercato, passando per la corsia una sola

volta.

Algoritmo per controllare che la maggioranza degli

studenti abbia capito gli esercizi sopra.

Algoritmo per ricercare i libri in Biblioteca

Page 67: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: ricerca del prodotto migliore

1. Prendi in mano il primo prodotto: assumi che sia il più

economico

2. Procedi fino al prossimo prodotto

3. Confrontalo con quello che hai in mano

4. Se il prodotto davanti a te è più economico: abbandona

il prodotto che hai in mano e prendi quello sullo scaffale

5. Ripeti i passi 2 - 4 fino a raggiungere la fine della corsia

6. Hai in mano il prodotto più economico.

Page 68: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: ricerca del prodotto migliore

1. Prendi in mano il primo prodotto: assumi che sia il più

economico

2. Procedi fino al prossimo prodotto

3. Confrontalo con quello che hai in mano

4. Se il prodotto davanti a te è più economico: abbandona

il prodotto che hai in mano e prendi quello sullo scaffale

5. Ripeti i passi 2 - 4 fino a raggiungere la fine della corsia

6. Hai in mano il prodotto più economico.

Algoritmo per trovare il minimo/massimo di una

sequenza numerica

Page 69: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Altri Esempi:

Algoritmo per invertire il contenuto di due bicchieri,

supponendo di avere un terzo bicchiere.

Algoritmo per trovare il prodotto più economico nella

corsia del supermercato, passando per la corsia una sola

volta.

Algoritmo per controllare che la maggioranza degli

studenti abbia capito gli esercizi sopra.

Algoritmo per ricercare i libri in Biblioteca

Page 70: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: assicurarsi che il 50% abbia capito

1. Prendi due fogli, uno per contare chi non ha capito (N) ed

uno per contare tutti gli studenti (T)

2. Avvicinati al primo studente

3. Chiedi se ha capito

4. Se risponde no, metti un segno su N

5. Metti un segno su T

6. Passa al prossimo studente

7. Ripeti i passi 3 – 6 fino all’ultimo studente

8. Conta i segni su N e su T

9. Se il numero di N è maggiore della metà di T, la condizione è

non verificata

Page 71: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: assicurarsi che tutti abbiano capito

1. Prendi un solo foglio

2. Avvicinati al primo studente

3. Chiedi se ha capito

4. Se risponde no, metti un segno sul foglio

5. Passa al prossimo studente

6. Ripeti i passi 3 – 5 fino all’ultimo studente

7. Se il foglio non ha segni, tutti hanno capito.

Page 72: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: assicurarsi che tutti abbiano capito

1. Prendi un solo foglio

2. Avvicinati al primo studente

3. Chiedi se ha capito

4. Se risponde no, metti un segno sul foglio

5. Passa al prossimo studente

6. Ripeti i passi 3 – 5 fino all’ultimo studente o fino a quando

uno studente dice di non aver capito

7. Se il foglio non ha segni, tutti hanno capito.

Variante più efficiente

Page 73: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: assicurarsi che tutti abbiano capito

1. Prendi un solo foglio

2. Avvicinati al primo studente

3. Chiedi se ha capito

4. Se risponde no, metti un segno sul foglio

5. Passa al prossimo studente

6. Ripeti i passi 3 – 5 fino all’ultimo studente o fino a quando

uno studente dice di non aver capito

7. Se il foglio non ha segni, tutti hanno capito.

Algoritmo per verificare che una condizione sia

soddisfatta da tutti gli elementi di un array

Page 74: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Altri Esempi:

Algoritmo per invertire il contenuto di due bicchieri,

supponendo di avere un terzo bicchiere.

Algoritmo per trovare il prodotto più economico nella

corsia del supermercato, passando per la corsia una sola

volta.

Algoritmo per controllare che la maggioranza degli

studenti abbia capito gli esercizi sopra.

Algoritmo per ricercare i libri in Biblioteca

Page 75: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Gestione di una biblioteca

Si supponga di avere una biblioteca gestita mediante

archivio cartaceo.

Ogni libro ha una data posizione identificata da

SCAFFALE e POSIZIONE

Esiste un archivio ordinato che contiene, per ogni libro un

foglio del tipo:

Page 76: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Gestione di una biblioteca

Algoritmo per trovare un libro

1. ricerca la scheda del libro nello

schedario

2. trovata la scheda, segna su un foglio

numero scaffale e posizione del libro

3. raggiungi lo scaffale indicato

4. individuato lo scaffale, ricerca la

posizione del libro

5. Prendi il libro

Page 77: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo: Ricerca

Non tutti gli esecutori sono in grado di «cercare», e

comunque la ricerca può essere fatta in diversi modi

1. esamina la prima scheda dello schedario

2. se autore e titolo coincidono con quelli cercati

• ricerca conclusa con successo

altrimenti passa a scheda successiva

3. Ripeti istruzione 2, fino a conclusione o fino a

raggiungere l’ultima scheda

4. se trovata ricerca conclusa con successo

• altrimenti ricerca conclusa con insuccesso

Page 78: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo: Ricerca

Assumendo che l’archivio abbia 𝑁 schede:

𝑁

Controllo

prima scheda

Se non trovo,

Controllo seconda

Se non trovo,

Controllo terza

Se non trovo,

Controllo ultima

... ...

Page 79: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo: Ricerca

Assumendo che l’archivio abbia 𝑁 schede:

𝑁

Controllo

prima scheda

Se non trovo,

Controllo seconda

Se non trovo,

Controllo terza

Se non trovo,

Controllo ultima

... ...

Page 80: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo: Ricerca

Assumendo che l’archivio abbia 𝑁 schede:

𝑁

Controllo

prima scheda

Se non trovo,

Controllo seconda

Se non trovo,

Controllo terza

Se non trovo,

Controllo ultima

... ...

Page 81: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo: Ricerca

Assumendo che l’archivio abbia 𝑁 schede:

𝑁

Controllo

prima scheda

Se non trovo,

Controllo seconda

Se non trovo,

Controllo terza

Se non trovo,

Controllo ultima

... ...

Page 82: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo: Ricerca

Non tutti gli esecutori sono in grado di «cercare», e

comunque la ricerca può essere fatta in diversi modi

1. esamina la prima scheda dello schedario

2. se autore e titolo coincidono con quelli cercati

• ricerca conclusa con successo

altrimenti passa a scheda successiva

3. Ripeti istruzione 2, fino a conclusione o fino a

raggiungere l’ultima scheda

4. se trovata ricerca conclusa con successo

• altrimenti ricerca conclusa con insuccesso

Ricerca semplice ma inefficiente: non sfrutta

l’ordinamento delle schede nell’archivio

Page 83: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo: Ricerca tra elementi ordinati

Lo schedario contiene 𝑁 schede ordinate in cui cercare

1. prendi la scheda centrale, i.e. alla posizione 𝑁/2.

2. se è la scheda cercata, termina con successo.

altrimenti,

3. se la scheda cercata segue alfabeticamente quella

esaminata,

• continua la ricerca nella seconda metà dello

schedario

• altrimenti continua la ricerca nella prima metà

Page 84: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo: Ricerca tra elementi ordinati

Lo schedario contiene 𝑁 schede ordinate in cui cercare

1. prendi la scheda centrale, i.e. alla posizione 𝑁/2.

2. se è la scheda cercata, termina con successo.

altrimenti,

3. se la scheda cercata segue alfabeticamente quella

esaminata,

• continua la ricerca nella seconda metà dello

schedario

• altrimenti continua la ricerca nella prima metà

Questo algoritmo ricerca è ricorsivo, perché richiama

se stesso (riduce però il numero di schede da analizzare

ed esiste una condizione per cui non chiama se stesso).

Page 85: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo: Ricerca tra elementi ordinati

𝑁

𝑁/2

es: Ricerca dell’autore ROSSIa 𝑁/2 c’è Bianchi

Nu

me

ro d

i s

ch

ed

e a

nc

ora

da

an

alizza

re (

cir

ca

)

a 3𝑁/4 c’è Verdi

𝑁/4

a 3𝑁/4 c’è Gialli

𝑁/8

a 3𝑁/4 c’è Rossi

N.B: cosa succede se non esiste il nome cercato nell’archivio?

L’algoritmo deve terminare anche in questo caso!

Page 86: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo: Ricerca tra elementi ordinati

𝑁

𝑁/2

es: Ricerca dell’autore ROSSIa 𝑁/2 c’è Bianchi

Nu

me

ro d

i s

ch

ed

e a

nc

ora

da

an

alizza

re (

cir

ca

)

a 3𝑁/4 c’è Verdi

𝑁/4

a 3𝑁/4 c’è Gialli

𝑁/8

a 3𝑁/4 c’è Rossi

N.B: cosa succede se non esiste il nome cercato nell’archivio?

L’algoritmo deve terminare anche in questo caso!

Page 87: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo: Ricerca tra elementi ordinati

𝑁

𝑁/2

es: Ricerca dell’autore ROSSIa 𝑁/2 c’è Bianchi

Nu

me

ro d

i s

ch

ed

e a

nc

ora

da

an

alizza

re (

cir

ca

)

a 3𝑁/4 c’è Verdi

𝑁/4

Qui c’è Gialli

𝑁/8

a 3𝑁/4 c’è Rossi

N.B: cosa succede se non esiste il nome cercato nell’archivio?

L’algoritmo deve terminare anche in questo caso!

Page 88: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Algoritmo: Ricerca tra elementi ordinati

𝑁

𝑁/2

es: Ricerca dell’autore ROSSIa 𝑁/2 c’è Bianchi

Nu

me

ro d

i s

ch

ed

e a

nc

ora

da

an

alizza

re (

cir

ca

)

a 3𝑁/4 c’è Verdi

𝑁/4

𝑁/8

N.B: cosa succede se non esiste il nome cercato nell’archivio?

L’algoritmo deve terminare anche in questo caso!

Qui c’è Gialli

Qui c’è Rossi

Page 89: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

I Programmi

Dall’algoritmo al codice

Page 90: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Il Calcolatore

Il calcolatore è un potente esecutore di algoritmi

È rapido: permette di gestire quantità di informazioni

altrimenti intrattabili

È preciso: non commette mai errori

Non ha spirito critico

I programmi sono algoritmi codificati in linguaggi

comprensibili dal calcolatore.

Page 91: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Il Programmatore (voi)

Compito dell’informatico (e di chiunque programmi) è:

1. Ideare l’algoritmo: conoscere la soluzione del

problema e esprimerla in rigorosi passi

2. Codificare l’algoritmo in un programma: conoscere

il linguaggio dell’esecutore (linguaggio di

programmazione)

La parte più difficile è spesso la prima.

• Prima dobbiamo aver chiaro «cosa far fare alla

macchina», poi traduciamolo correttamente.

Page 92: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Proprietà essenziali dei programmi (algoritmi)

Correttezza: l’algoritmo risolve il compito senza errori o

difetti.

Efficienza: l’algoritmo usa risorse in modo minimale (o

almeno ragionevole)

• Diversi criteri quindi per definire l’efficienza a seconda

delle risorse

− tempo,

− memoria,

− numero di letture/scritture da disco

Page 93: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Riepilogando: Come Procedere

a) Partirete dall’analisi di un

problema

b) Individuerete uno o più

algoritmi che risolvono il

problema in modo più o meno

efficiente

c) Codifiche un algoritmo in

un linguaggio di

programmazione,

d) Il programma potrà essere

«utilizzato» su diverse

macchine

Problema

Alg1 Alg2 Alg3

Prog C Prog CProg

Matlab

serverPC

b)

c)

d)

tel

a)

Page 94: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Riepilogando: Come Procedere

a) Partirete dall’analisi di un

problema

b) Individuerete uno o più

algoritmi che risolvono il

problema in modo più o meno

efficiente

c) Codifiche un algoritmo in

un linguaggio di

programmazione,

d) Il programma potrà essere

«utilizzato» su diverse

macchine

Problema

Alg1 Alg2

Prog C Prog CProg

Matlab

serverPC

b)

c)

d)

tel

a)

Alg3

Page 95: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Riepilogando: Come Procedere

a) Partirete dall’analisi di un

problema

b) Individuerete uno o più

algoritmi che risolvono il

problema in modo più o meno

efficiente

c) Codificherete un algoritmo in

un linguaggio di

programmazione,

d) Il programma potrà essere

«utilizzato» su diverse

macchine

Problema

Alg1 Alg2 Alg3

Prog1

C

Prog2

C

Prog

Matlab

serverPC

b)

c)

d)

tel

a)

Page 96: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Riepilogando: Come Procedere

a) Partirete dall’analisi di un

problema

b) Individuerete uno o più

algoritmi che risolvono il

problema in modo più o meno

efficiente

c) Codificherete un algoritmo in

un linguaggio di

programmazione

d) Il programma potrà essere

«utilizzato» su diverse

macchine

Problema

Alg1 Alg2 Alg3

Prog1

C

Prog2

C

Prog

Matlab

serverPC

b)

c)

d)

tel

a)

Page 97: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Riepilogando: Cosa Fare

a) Dovrete (capire e) definire

correttamente il problema

b) Ricavare l’algoritmo è la parte

più difficile. Richiede, oltre a

esperienza, competenze

specifiche, creatività e anche

rigore perché occorre

specificarlo in modo formale

c) La codifica è più semplice ma il

programma deve essere

efficiente e corretto

d) All’ultimo step pensa la

macchina… vedremo poi la

compilazione

Problema

Alg1 Alg2 Alg3

Prog1

C

Prog2

C

Prog

Matlab

serverPC

b)

c)

d)

tel

a)

Page 98: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La Rappresentazione dell’Informazione

Page 99: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Cos’è l’Informatica?

Scienza della rappresentazione e dell’elaborazione

dell’informazione.

Scienza: ovvero una conoscenza sistematica e

rigorosa di tecniche e metodi.

Informazione: l’oggetto dell’investigazione scientifica

(informazione intesa come entità astratta e come

tecnologie per la sua gestione)

Rappresentazione: il modo in cui l’informazione viene

strutturata e trasformata in dati fruibili da macchine

Elaborazione: uso e trasformazione dell’informazione per

un dato scopo. L’elaborazione deve poter essere eseguita

da macchine che processano dati.

[da «Informatica Arte e Mestiere»]

Page 100: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Rappresentazione dell’informazione

I calcolatori sono in grado di operare con informazioni

binarie. Gli unici simboli che possiamo utilizzare sono {0,1}

Un bit (binary digit) assume valore 0/1 corrispondente ad un

determinato stato fisico (alta o bassa tensione nella cella di

memoria)

Il Byte è una sequenza di 8 bit ed esprime 28 = 256 numeri

diversi (ad esempio gli interi in [0,255])

00000000, 00000001, 00000010, …, 11111111

Codifica binaria di un numero: la sua rappresentazione

come una sequenza di 0 ed 1.

In questo corso vedremo come codificare numeri interi e

razionali in base 2

Page 101: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Rappresentazione dell’informazione

I calcolatori sono in grado di operare con informazioni

binarie. Gli unici simboli che possiamo utilizzare sono {0,1}

Un bit (binary digit) assume valore 0/1 corrispondente ad un

determinato stato fisico (alta o bassa tensione nella cella di

memoria)

Il Byte è una sequenza di 8 bit ed esprime 28 = 256 numeri

diversi (ad esempio gli interi in [0,255])

00000000, 00000001, 00000010, …, 11111111

Codifica binaria di un numero: la sua rappresentazione

come una sequenza di 0 ed 1.

In questo corso vedremo come codificare numeri interi e

razionali in base 2

Page 102: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Rappresentazione dell’informazione

I calcolatori sono in grado di operare con informazioni

binarie. Gli unici simboli che possiamo utilizzare sono {0,1}

Un bit (binary digit) assume valore 0/1 corrispondente ad un

determinato stato fisico (alta o bassa tensione nella cella di

memoria)

Il Byte è una sequenza di 8 bit ed esprime 28 = 256 numeri

diversi (ad esempio gli interi in [0,255])

00000000, 00000001, 00000010, …, 11111111

Codifica binaria di un numero: la sua rappresentazione

come una sequenza di 0 ed 1.

In questo corso vedremo la codifica binaria di numeri

interi e semplici operazioni aritmetiche e logiche

Page 103: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Aritmetica Binaria

Un po’ di operazioni in base 2….

Page 104: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Codifica dei Numeri in Base 𝟏𝟎

Utilizziamo una notazione posizionale:

• Le cifre all’interno di un numero hanno un significato

differente a seconda della posizione

Le cifre che abbiamo a disposizione sono 10

0, 1,… , 9

Es numero di 4 cifre

• 𝟑𝟒𝟎𝟏 = 𝟑 × 103 + 𝟒 × 102 + 𝟎 × 101 + 𝟏 × 100

(𝑁)10= 𝑎𝑚−1𝑎𝑚−2…𝑎1𝑎0 =

𝑖=0

𝑚−1

𝑎𝑖 × 10𝑖

Page 105: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Codifica dei Numeri in Base 𝟏𝟎

Utilizziamo una notazione posizionale:

• Le cifre all’interno di un numero hanno un significato

differente a seconda della posizione

Le cifre che abbiamo a disposizione sono 10

0, 1,… , 9

Es numero di 4 cifre

• 𝟑𝟒𝟎𝟏 = 𝟑 × 103 + 𝟒 × 102 + 𝟎 × 101 + 𝟏 × 100

È diverso da altre combinazioni delle stesse cifre quali:

• 𝟏𝟒𝟎𝟑 = 𝟏 × 103 + 𝟒 × 102 + 𝟎 × 101 + 𝟑 × 100

• 𝟎𝟑𝟏𝟒 = 𝟎 × 103 + 𝟑 × 102 + 𝟏 × 101 + 𝟒 × 100

Page 106: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Codifica dei Numeri in Base 𝟏𝟎

Le cifre sono gli elementi dell’alfabeto che abbiamo a

disposizione per scrivere i numeri

In base 10 abbiamo questo alfabeto:

𝐴10 = 0,1,… , 9

I numeri sono sequenze ordinate di cifre (es 3401)

Un numero di 𝑚 cifre (3401,𝑚 = 4, e 332,𝑚 = 3) si può

scrivere come:

(𝑁)10= 𝑎𝑚−1𝑎𝑚−2…𝑎1𝑎0 =

𝑖=0

𝑚−1

𝑎𝑖 × 10𝑖

Con 𝑚 cifre posso rappresentare 10𝑚 numeri distinti:

0,… , 10𝑚 − 1

Page 107: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Codifica dei Numeri in Base 𝟏𝟎

Le cifre sono gli elementi dell’alfabeto che abbiamo a

disposizione per scrivere i numeri

In base 10 abbiamo questo alfabeto:

𝐴10 = 0,1,… , 9

I numeri sono sequenze ordinate di cifre (es 3401)

Un numero di 𝑚 cifre (3401,𝑚 = 4, e 332,𝑚 = 3) si può

scrivere come:

(𝑁)10= 𝑎𝑚−1𝑎𝑚−2…𝑎1𝑎0 =

𝑖=0

𝑚−1

𝑎𝑖 × 10𝑖 , 𝑎𝑖 ∈ 𝐴10

Con 𝑚 cifre posso rappresentare 10𝑚 numeri distinti:

0,… , 10𝑚 − 1

Page 108: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Codifica dei numeri in base 𝟐: Esempi

Qual è il numero massimo che posso scrivere con 𝑚 bit?

Quante combinazioni di 𝑚 elementi posso realizzare se ogni

elemento lo scelgo tra 2 diversi? -> 2𝑚

Ad esempio:

Con 1 cifra in base 2, copro 0, 21 − 1 (cioè 0, 1 )

Con 4 cifre in base 2, copro 0, 24 − 1 (cioè 0, 15 )

Con 8 cifre in base 2, copro 0, 28 − 1 (cioè 0, 255 )

Con 16 cifre in base 2, copro 0, 216 − 1 (cioè

0, 65535 )

In binario ho bisogno di molte più cifre rispetto al decimale

per esprimere gli stessi numeri

Page 109: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Codifica dei numeri in base 𝟐: Esempi

Qual è il numero massimo che posso scrivere con 𝑚 bit?

Quante combinazioni di 𝑚 elementi posso realizzare se ogni

elemento lo scelgo tra 2 diversi? -> 2𝑚

Ad esempio:

Con 1 cifra in base 2, copro 0, 21 − 1 (cioè 0, 1 )

Con 4 cifre in base 2, copro 0, 24 − 1 (cioè 0, 15 )

Con 8 cifre in base 2, copro 0, 28 − 1 (cioè 0, 255 )

Con 16 cifre in base 2, copro 0, 216 − 1 (cioè

0, 65535 )

In binario ho bisogno di molte più cifre rispetto al decimale

per esprimere gli stessi numeri

Page 110: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Codifica dei numeri in base 𝟐: Esempi

Qual è il numero massimo che posso scrivere con 𝑚 bit?

Quante combinazioni di 𝑚 elementi posso realizzare se ogni

elemento lo scelgo tra 2 diversi? -> 2𝑚

Ad esempio:

Con 1 cifra in base 2, copro 0, 21 − 1 (cioè 0, 1 )

Con 4 cifre in base 2, copro 0, 24 − 1 (cioè 0, 15 )

Con 8 cifre in base 2, copro 0, 28 − 1 (cioè 0, 255 )

Con 16 cifre in base 2, copro 0, 216 − 1 (cioè 0, 65535 )

In binario ho bisogno di molte più cifre rispetto al decimale per

esprimere gli stessi numeri

Page 111: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Conversione Binario-Decimale

Utilizziamo la definizione di numero in notazione posizionale

(𝑁)2 = 𝑎𝑚−1 × 2𝑚−1 + 𝑎𝑚−2 × 2𝑚−2+ . . +𝑎0 × 20

Es.

101 2 = 1 × 22 + 0 × 21 + 1 × 20 = 5 10

1100010 2 = 1 × 26 + 1 × 25 + 1 × 2 == 64 + 32 + 2 = 98 10

Nel corso vedremo diverse codifiche per

• I numeri naturali

• I numeri interi (positivi e negativi)

ed inoltre vedremo come eseguire la somma di interi

Page 112: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

… e tutte le altre potenze di 2?

È necessario imparare le potenze di 2!

E i loro legami con l’informatica:

• Byte = 8 bit = 23 bit

• KiloByte (kB) = 103 Byte = 1011 bit = 210 bit

• MegaByte (MB) = 106 Byte = 1014 bit = 220 bit

• GigaByte (GB) = 109 Byte = 1017 bit = 230 bit

• TheraByte (TB) = 1012 Byte = 1020 bit = 240 bit

20 21 22 23 24 25 26 27 28 29 210

1 2 4 8 16 32 64 128 256 512 1024

Page 113: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Rappresentazione dei Caratteri

Ogni carattere viene mappato in un numero intero (che è

espresso da sequenza di bit) utilizzando dei codici

Il codice più usato è l’ASCII (American Standard Code for

Information Interchange) a 8 bit che contiene:

• Caratteri alfanumerici

• Caratteri simbolici (es. punteggiatura, @&%$ etc..)

• Caratteri di comando (es. termina riga, vai a capo, tab)

Page 114: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La codifica ASCII (esempi)

A 65 01000001

a 97 01100001

.

.

.

Z 90 01011010

z 122 01111010

Page 115: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La codifica ASCII (parziale)

DEC CAR DEC CAR DEC CAR DEC CAR DEC CAR

48 0

49 1

50 2

51 3

52 4

53 5

54 6

55 7

56 8

57 9

65 A

66 B

67 C

68 D

69 E

70 F

71 G

72 H

73 I

74 J

75 K

76 L

77 M

78 N

79 O

80 P

81 Q

82 R

83 S

84 T

85 U

86 V

87 W

88 X

89 Y

90 Z

97 a

98 b

99 c

100 d

101 e

102 f

103 g

104 h

105 i

106 j

107 k

108 l

109 m

110 n

111 o

112 p

113 q

114 r

115 s

116 t

117 u

118 v

119 w

120 x

121 y

122 z

Page 116: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Codifica delle Immagini

Le immagini nei calcolatori sono digitali, i.e. tabella di

pixel, ciascuno caratterizzato da uno o più valori di

intensità.

123 122 134 121 132 133 145 134

122 121 125 132 124 121 116 126

119 127 137 119 139 127 128 131

Page 117: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Codifica delle Immagini

Le immagini nei calcolatori sono digitali, i.e. tabella di

pixel, ciascuno caratterizzato da uno o più valori di

intensità. Canale rosso

Canale verde

Canale blu

Page 118: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Architettura di un Sistema Informatico

Page 119: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Cos’è l’Informatica?

Scienza della rappresentazione e dell’elaborazione

dell’informazione.

Scienza: ovvero una conoscenza sistematica e

rigorosa di tecniche e metodi.

Informazione: l’oggetto dell’investigazione scientifica

(informazione intesa come entità astratta e come

tecnologie per la sua gestione)

Rappresentazione: il modo in cui l’informazione viene

strutturata e trasformata in dati fruibili da macchine

Elaborazione: uso e trasformazione dell’informazione per

un dato scopo. L’elaborazione deve poter essere eseguita

da macchine che processano dati.

[da «Informatica Arte e Mestiere»]

Page 120: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Un Sistema Informatico

- Hardware

- Software

Page 121: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Sistema Informatico

Sistemi informatico: L’esecutore dei programmi

PC, laptop, telefoni, smartphones, server con migliaia di

utenti etc… tutti sistemi informatici

Sono oggetti complessi, costruiti da diverse parti che

interagiscono tra loro.

I sistemi informatici sono composti da

• Hardware: i componenti fisici del sistema

• Software: i programmi eseguiti dal sistema (es. web

browser, mail, suite office, sistema operativo,

compilatori, CAD… i programmi che scriveremo)

Consideriamo inizialmente l’hardware dei sistemi

informatici.

Page 122: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La Macchina di Von Neumann

Un modello dell’architettura dei calcolatori

Page 123: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La Macchina di Von Neumann

Page 124: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La Macchina di Von Neumann

Modello composto da quattro elementi funzionali

• Unità di elaborazione (CPU): interpretazione ed

esecuzione dei programmi, coordinamento macchina

• Memoria centrale: contiene dati ed istruzioni

• Interfacce delle periferiche: scambio informazioni con

mondo esterno (e.g, stampante, tastiera, mouse, rete,

schermo, HDD ..)

• Bus di sistema: collega gli altri elementi funzionali

Page 125: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La Macchina di Von Neumann

Modello composto da quattro elementi funzionali

• Unità di elaborazione (CPU): interpretazione ed

esecuzione dei programmi, coordinamento macchina

• Memoria centrale: contiene dati ed istruzioni

• Interfacce delle periferiche: scambio informazioni con

mondo esterno (e.g, stampante, tastiera, mouse, rete,

schermo, HDD ..)

• Bus di sistema: collega gli altri elementi funzionali

Unità di

Elaborazione

(CPU)

Memoria

Centrale

(MM)

Interfaccia

Periferica P1

Interfaccia

Periferica P2

Bus di sistema

Page 126: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La Macchina di Von Neumann

Unità di

Elaborazione

(CPU)

Memoria

Centrale

(MM)

Interfaccia

Periferica P1

Interfaccia

Periferica P2

Bus di sistema

Page 127: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La Macchina di Von Neumann

Unità di

Elaborazione

(CPU)

Memoria

Centrale

(MM)

Interfaccia

Periferica P1

Interfaccia

Periferica P2

Bus di sistema

Page 128: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La Macchina di Von Neumann

Unità di

Elaborazione

(CPU)

Memoria

Centrale

(MM)

Interfaccia

Periferica P1

Interfaccia

Periferica P2

Bus di sistema

Page 129: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La Macchina di Von Neumann

Unità di

Elaborazione

(CPU)

Memoria

Centrale

(MM)

Interfaccia

Periferica P1

Interfaccia

Periferica P2

Bus di sistema

Page 130: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La Memoria Centrale (MM)

Contiene i programmi

(sequenza di istruzioni) in

esecuzione ed i relativi dati

Page 131: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La Memoria Centrale (MM)

Contiene i programmi

(sequenza di istruzioni) in

esecuzione ed i relativi dati

È schematizzata come una

sequenza di celle.

Page 132: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La Memoria Centrale (MM)

Contiene i programmi

(sequenza di istruzioni) in

esecuzione ed i relativi dati

È schematizzata come una

sequenza di celle.

Ogni cella contiene h bit, i.e.,

una Parola (word)

0/1

Parola ℎ bit h = 16 bit

1111001100100011

Page 133: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La Memoria Centrale (MM)

0

1

1023

Parola ℎ bit

Indir

izzo 𝑘

= 1

0 b

it

h = 16 bit Contiene i programmi

(sequenza di istruzioni) in

esecuzione ed i relativi dati

È schematizzata come una

sequenza di celle.

Ogni cella contiene h bit, i.e.,

una Parola (word)

Ogni cella ha un indirizzo

Se ho a disposizione k bit per

scrivere l’indirizzo, lo spazio di

indirizzamento è 2k celle

Page 134: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

La Memoria Centrale (MM)

La MM contiene i programmi in esecuzione: ogni dato e

ogni istruzione, prima di essere elaborato, viene copiato

in memoria centrale.

Diversi tipi di Memorie

• RAM (Random Access Memory) memoria volatile.

• ROM (Read Only Memory) memoria permanente.

• EPROM (Erasable Programmable ROM)

riprogrammabile

L’HD è memoria permanente ma non è memoria

centrale ed in riferimento alla macchina di Von Neumann

è una periferica.

Page 135: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

L’Unità di Elaborazione (CPU)

La Central Processing Unit (CPU) coordina il

funzionamento del calcolatore ed esegue i programmi:

estrae, decodifica ed esegue le istruzioni in memoria.

Le istruzioni possono comportare elaborazione o

trasferimento dell’informazione

La CPU contiene a sua volta:

• l’Unità di Controllo che preleva e decodifica istruzioni

dalla MM, invia segnali per eseguire le istruzioni

• Il Clock di sistema,

• L’Unità Aritmetico Logica

Page 136: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

L’Unità di Elaborazione (CPU)

Unità di controllo

(CU)

Clock

Unità

aritmetico

logica

(ALU)

Page 137: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

L’Unità di Elaborazione (CPU)

Unità di controllo

(CU)

Clock

Unità

aritmetico

logica

(ALU)

Controllo:

-Prelievo

-Decodifica

-Esecuzione

Page 138: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

L’Unità di Elaborazione (CPU)

Unità di controllo

(CU)

Clock

Unità

aritmetico

logica

(ALU)

Operazioni

aritmetiche

e logiche

Page 139: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

L’Unità di Elaborazione (CPU)

Unità di controllo

(CU)

Clock

Unità

aritmetico

logica

(ALU)

Sincronizzazione

Page 140: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

L’Unità di Elaborazione (CPU)

La Central Processing Unit (CPU) coordina il

funzionamento del calcolatore ed esegue i programmi:

estrae, decodifica ed esegue le istruzioni in memoria

Le istruzioni possono comportare elaborazione o

trasferimento dell’informazione

La CPU contiene a sua volta:

• l’Unità di Controllo che preleva e decodifica istruzioni

dalla MM, invia segnali per eseguire le istruzioni .

• Il Clock di sistema,

• l’Unità Aritmetico Logica

La CPU contiene inoltre molti registri: memorie «rapide»

per informazioni richieste dalla CU (es due numeri da

sommare, il loro risultato)

Page 141: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

L’Unità di Elaborazione (CPU)

Registro istruzione

corrente (CIR)

Registro dati (DR)Registro indirizzi

(AR)

Registro contatore

di programma (PC)

Registro di stato

(SR)

Registro

interruzioni (INTR)

A

B

Unità di controllo

(CU)

Clock

Unità

aritmetico

logica

(ALU)

Page 142: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

L’Unità di Elaborazione (CPU)

Registro istruzione

corrente (CIR)

Registro dati (DR)Registro indirizzi

(AR)

Registro contatore

di programma (PC)

Registro di stato

(SR)

Registro

interruzioni (INTR)

A

B

Unità di controllo

(CU)

Clock

Unità

aritmetico

logica

(ALU)

Parola letta/da scrivere in MM (h bit)

Page 143: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

L’Unità di Elaborazione (CPU)

Registro istruzione

corrente (CIR)

Registro dati (DR)Registro indirizzi

(AR)

Registro contatore

di programma (PC)

Registro di stato

(SR)

Registro

interruzioni (INTR)

A

B

Unità di controllo

(CU)

Clock

Unità

aritmetico

logica

(ALU)

Istruzione in elaborazione (h bit)

Page 144: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

L’Unità di Elaborazione (CPU)

Registro istruzione

corrente (CIR)

Registro dati (DR)Registro indirizzi

(AR)

Registro contatore

di programma (PC)

Registro di stato

(SR)

Registro

interruzioni (INTR)

A

B

Unità di controllo

(CU)

Clock

Unità

aritmetico

logica

(ALU)

Indirizzo prossima

istruzione da leggere

Page 145: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

L’Unità di Elaborazione (CPU)

Registro istruzione

corrente (CIR)

Registro dati (DR)Registro indirizzi

(AR)

Registro contatore

di programma (PC)

Registro di stato

(SR)

Registro

interruzioni (INTR)

A

B

Unità di controllo

(CU)

Clock

Unità

aritmetico

logica

(ALU)

Registri operandi ALU

(A conterrà sempre il

risultato!!!)

Page 146: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

L’Unità di Elaborazione (CPU)

Registro istruzione

corrente (CIR)

Registro dati (DR)Registro indirizzi

(AR)

Registro contatore

di programma (PC)

Registro di stato

(SR)

Registro

interruzioni (INTR)

A

B

Unità di controllo

(CU)

Clock

Unità

aritmetico

logica

(ALU)

Registri generali

Page 147: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

L’Unità di Elaborazione (CPU)

Registro istruzione

corrente (CIR)

Registro dati (DR)Registro indirizzi

(AR)

Registro contatore

di programma (PC)

Registro di stato

(SR)

Registro

interruzioni (INTR)

A

B

Unità di controllo

(CU)

Clock

Unità

aritmetico

logica

(ALU)

Indirizzo cella MM (k bit)

Page 148: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

L’Unità di Elaborazione (CPU)

Registro istruzione

corrente (CIR)

Registro dati (DR)Registro indirizzi

(AR)

Registro contatore

di programma (PC)

Registro di stato

(SR)

Registro

interruzioni (INTR)

A

B

Unità di controllo

(CU)

Clock

Unità

aritmetico

logica

(ALU)

Informazioni su stato periferiche

Page 149: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

L’Unità di Elaborazione (CPU)

Registro istruzione

corrente (CIR)

Registro dati (DR)Registro indirizzi

(AR)

Registro contatore

di programma (PC)

Registro di stato

(SR)

Registro

interruzioni (INTR)

A

B

Unità di controllo

(CU)

Clock

Unità

aritmetico

logica

(ALU)

Informazioni sui

risultati ALU

Page 150: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Bus di Sistema

È un insieme di connessioni che permettono di trasferire

l’informazione tra due entità funzionali (una trasmette

l’altra riceve)

Due soli tipi di connessioni logiche, stabilite dalla CPU:

• CPU (master) - memoria (slave)

• CPU (master) - interfaccia periferica (slave)

le connessioni fisiche sono sempre presenti.

Ci sono tre tipi di linee, con tre funzionalità diverse

• Bus dati

• Bus indirizzi

• Bus controlli (il master lo usa per trasmettere allo slave

i codici relativi alle istruzioni da eseguire, lo slave per

dare feedback sull’esecuzione)

Page 151: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Lettura e Scrittura dalla Memoria Centrale

Parola (word)

Spazio di

indirizzamento

210=1024

k = 10 bit

Registro dati (DR)

load

store

h = 16 bit

0

1

1023

h = 16 bit

Memoria

Centrale

CPU CPUBus

Indirizzi

Bus

dati

Registro indir. (AR)

Page 152: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Lettura e Scrittura dalla Memoria Centrale

Parola (word)

Spazio di

indirizzamento

210=1024

k = 10 bit

Registro dati (DR)

load

store

h = 16 bit

0

1

1023

h = 16 bit

Dati e

istruzioni

Memoria

Centrale

CPU CPUBus

Indirizzi

Bus

dati

Registro indir. (AR)

Page 153: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Lettura e Scrittura dalla Memoria Centrale

Parola (word)

Spazio di

indirizzamento

210=1024

k = 10 bit

Registro dati (DR)

load

store

h = 16 bit

0

1

1023

h = 16 bit

Indirizzo cella

Memoria

Centrale

CPU CPUBus

Indirizzi

Bus

dati

Registro indir. (AR)

Page 154: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Lettura e Scrittura dalla Memoria Centrale

Parola (word)

Spazio di

indirizzamento

210=1024

k = 10 bit

Registro dati (DR)

load

store

h = 16 bit

0

1

1023

h = 16 bit

Dato da

leggere/scrivere

Memoria

Centrale

CPU CPUBus

Indirizzi

Bus

dati

Registro indir. (AR)

Page 155: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Sequenza di Lettura

CIR

DR AR

PCSR

INTR

A

B

CUCk

ALU

0

1023

123 42

MMCPU

Bus Indirizzi

Bus Dati

Bus Controlli

Page 156: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Sequenza di Lettura

CIR

DR AR

PCSR

INTR

A

B

CUCk

ALU

0

1023

123 42

123

Passo 1 MMCPU

Bus Indirizzi

Bus Dati

Bus Controlli

Page 157: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Sequenza di Lettura

CIR

DR AR

PCSR

INTR

A

B

CUCk

ALU

0

1023

123 42123

MMCPU

Bus Indirizzi

Bus Dati

Bus Controlli

Page 158: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Sequenza di Lettura

CIR

DR AR

PCSR

INTR

A

B

CUCk

ALU

0

1023

123 42

READ

Passo 2

MMCPU

Bus Indirizzi

Bus Dati

Bus Controlli

123

Page 159: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Sequenza di Lettura

CIR

DR AR

PCSR

INTR

A

B

CUCk

ALU

0

1023

123 42123

42

Passo 3MMCPU

Bus Indirizzi

Bus Dati

Bus Controlli

Page 160: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Sequenza di Lettura

CIR

DR AR

PCSR

INTR

A

B

CUCk

ALU

0

1023

123 42123

Passo 2

OK

Passo 4

MMCPU

Bus Indirizzi

Bus Dati

Bus Controlli

42

Page 161: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Sequenza di Scrittura

CIR

DR AR

PCSR

INTR

A

B

CUCk

ALU

0

1023

123 42

MMCPU

Bus Indirizzi

Bus Dati

Bus Controlli

Page 162: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Sequenza di Scrittura

CIR

DR AR

PCSR

INTR

A

B

CUCk

ALU

0

1023

123 42

123

Passo 1 MMCPU

Bus Indirizzi

Bus Dati

Bus Controlli

Page 163: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Sequenza di Scrittura

CIR

DR AR

PCSR

INTR

A

B

CUCk

ALU

0

1023

123 42

MMCPU

Bus Indirizzi

Bus Dati

Bus Controlli

123

Page 164: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Sequenza di Scrittura

CIR

DR AR

PCSR

INTR

A

B

CUCk

ALU

0

1023

123 42

MMCPU

Bus Indirizzi

Bus Dati

Bus Controlli

123

70

Passo 2

Page 165: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Sequenza di Scrittura

CIR

DR AR

PCSR

INTR

A

B

CUCk

ALU

0

1023

123 42

MMCPU

Bus Indirizzi

Bus Dati

Bus Controlli

123

70

Page 166: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Sequenza di Scrittura

CIR

DR AR

PCSR

INTR

A

B

CUCk

ALU

0

1023

123 42

MMCPU

Bus Indirizzi

Bus Dati

Bus Controlli

123

WRITE

Passo 3

70

Page 167: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Sequenza di Scrittura

CIR

DR AR

PCSR

INTR

A

B

CUCk

ALU

0

1023

123 42

MMCPU

Bus Indirizzi

Bus Dati

Bus Controlli

123

Passo 4

70

Page 168: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Sequenza di Scrittura

CIR

DR AR

PCSR

INTR

A

B

CUCk

ALU

0

1023

123 42

MMCPU

Bus Indirizzi

Bus Dati

Bus Controlli

123 70

Page 169: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Sequenza di Scrittura

CIR

DR AR

PCSR

INTR

A

B

CUCk

ALU

0

1023

123 42

MMCPU

Bus Indirizzi

Bus Dati

Bus Controlli

123

OK

Passo 5

70

Page 170: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Interfacce alle Periferiche

Le interfacce collegano il calcolatore a periferiche esterne

Ogni interfaccia contiene dei registri per lo scambio dei

dati con la periferica

• Registro dati

• Registro comando della periferica

• Registro di stato

Page 171: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Interfacce alle Periferiche

Interfaccia periferica 1

Bus di sistema

Peripheral Data

Register (PDR)

Peripheral Command

Register (PCR)

Peripheral State

Register (PSR)

Peripheral Data

Register (PDR)

Peripheral Command

Register (PCR)

Peripheral State

Register (PSR)

Interfaccia periferica 2

Page 172: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Interfacce alle Periferiche

Interfaccia periferica 1

Bus di sistema

Peripheral Data

Register (PDR)

Peripheral Command

Register (PCR)

Peripheral State

Register (PSR)

Peripheral Data

Register (PDR)

Peripheral Command

Register (PCR)

Peripheral State

Register (PSR)

Interfaccia periferica 2

Dato da leggere/scrivere

Page 173: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Interfacce alle Periferiche

Interfaccia periferica 1

Bus di sistema

Peripheral Data

Register (PDR)

Peripheral Command

Register (PCR)

Peripheral State

Register (PSR)

Peripheral Data

Register (PDR)

Peripheral Command

Register (PCR)

Peripheral State

Register (PSR)

Interfaccia periferica 2

Comando da eseguire

Page 174: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Interfacce alle Periferiche

Interfaccia periferica 1

Bus di sistema

Peripheral Data

Register (PDR)

Peripheral Command

Register (PCR)

Peripheral State

Register (PSR)

Peripheral Data

Register (PDR)

Peripheral Command

Register (PCR)

Peripheral State

Register (PSR)

Interfaccia periferica 2

Stato della periferica

Page 175: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

I Programmi Nella Macchina di Von

Neumann

Page 176: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

I Programmi nella Macchina di Von Neumann

Le istruzioni sono (necessariamente) codificate in binario

e, come i dati, sono salvate in parole nella MM

Supponiamo una MM con parole da ℎ = 16 bit ed indirizzi da

𝑘 = 10 bit, con istruzioni così codificate:

Codice operativo (4bit) 00 Indirizzo Operando (10bit)

ad esempio, 0100000000010000

Consideriamo le seguenti istruzioni eseguibili dalla CPU

• Lettura da periferica, scrittura su periferica

• Caricare un dato da MM in un registro della CPU (load)

• Salvare in MM un dato di un registro della CPU (store)

• Operazioni aritmetiche (le gestisce la ALU)

• Istruzioni di salto (per cambiare il flusso di esecuzione)

Page 177: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

I Programmi nella Macchina di Von Neumann

Le istruzioni sono (necessariamente) codificate in binario

e, come i dati, sono salvate in parole nella MM

• Codice operativo: indica quale istruzione si deve

eseguire

• Indirizzo operando: indica in quale punto della

memoria si trova l’operando

Page 178: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

I Programmi nella Macchina di Von Neumann

Le istruzioni sono (necessariamente) codificate in binario

e, come i dati, sono salvate in parole nella MM

Supponiamo una MM con parole da ℎ = 16 bit ed indirizzi da

𝑘 = 10 bit, con istruzioni così codificate:

Codice operativo (4bit) 00 Indirizzo Operando (10bit)

ad esempio, 0100000000010000

Consideriamo le seguenti istruzioni eseguibili dalla CPU

• Lettura da periferica, scrittura su periferica

• Caricare un dato da MM in un registro della CPU (load)

• Salvare in MM un dato di un registro della CPU (store)

• Operazioni aritmetiche (le gestisce la ALU)

• Istruzioni di salto (per cambiare il flusso di esecuzione)

Page 179: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

I Programmi nella Macchina di Von Neumann

Le istruzioni sono (necessariamente) codificate in binario

e, come i dati, sono salvate in parole nella MM

Supponiamo una MM con parole da ℎ = 16 bit ed indirizzi da

𝑘 = 10 bit, con istruzioni così codificate:

Codice operativo (4bit) 00 Indirizzo Operando (10bit)

ad esempio, 0100000000010000

Consideriamo le seguenti istruzioni eseguibili dalla CPU

• Lettura da periferica, scrittura su periferica

• Caricare un dato da MM in un registro della CPU (load)

• Salvare in MM un dato di un registro della CPU (store)

• Operazioni aritmetiche (le gestisce la ALU)

Page 180: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Le Tre Fasi Per Eseguire un’Istruzioni

1. Fetch: Acquisizione dell’istruzione dalla MM

1. Trasferimento da PC a AR dell’ indirizzo cella

contenente l’istruzione da eseguire.

2. Lettura dalla MM della cella all’indirizzo in AR,

contenuto trasferito sul DR (l’istruzione è un dato)

3. Sposta da DR a CIR (riferimento istr. in esecuzione)

4. Incrementa PC (definisce la prossima istruzione:

incremento di 1 = sequenzialità)

2. Decodifica: riguarda il codice operativo, legge dal CIR

3. Esecuzione: dipende dall’istruzione specifica.

Page 181: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Fase di Fetch

0000000000PC

AR

Memoria centrale (MM)

0

DR

1023

CIR

0000000000

CPU

0100000000010000

Page 182: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Fase di Fetch

0000000000PC

AR

Memoria centrale (MM)

0

DR

1023

CIR

0000000000

CPU

0100000000010000

0000000000

Passo 1

Page 183: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Fase di Fetch

0000000000PC

0000000000AR

Memoria centrale (MM)

0

DR

1023

CIR

0000000000

CPU

0100000000010000

0100000000010000

Passo 2

Page 184: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Fase di Fetch

0000000000PC

0000000000AR

Memoria centrale (MM)

0

0100000000010000DR

1023

0100000000010000CIR

0000000000

CPU

0100000000010000

0100000000010000

Passo 3

Page 185: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Fase di Fetch

0000000000PC

0000000000AR

Memoria centrale (MM)

0

0100000000010000DR

1023

0100000000010000CIR

0000000001

CPU

0100000000010000

Passo 4

Page 186: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Fase di Decodifica 1a istruzione

0100000000010000CIR

Codice operativo 0100 = leggi da input e salva il dato letto

all’indirizzo specificato come operando (000000010000)

Page 187: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Fase di esecuzione: esempio lettura da input

AR

Memoria centrale (MM)

0

DR

1023

0001000000011111PDR

0100000000010000CIR 16

CPU

Valore di a letto dall’input (es. 4127)

Page 188: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Fase di esecuzione: esempio lettura da input

AR

Memoria centrale (MM)

0

DR

1023

0001000000011111PDR

0100000000010000CIR 16

CPU

Valore di a letto dall’input (es. 4127)

Indirizzo operando

00000010000 = cella 16

0000010000

Passo 1

Page 189: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Fase di esecuzione: esempio lettura da input

0000010000AR

Memoria centrale (MM)

0

DR

1023

0001000000011111PDR

0100000000010000CIR 16

CPU

Valore di a letto dall’input (es. 4127)

0001000000011111

Passo 2

Page 190: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Fase di esecuzione: esempio lettura da input

0000010000AR

Memoria centrale (MM)

0

DR

1023

0001000000011111PDR

0100000000010000CIR 16

0001000000011111

CPU

Valore di a letto dall’input (es. 4127)

0001000000011111

Passo 3

Page 191: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio

Si consideri una Macchina di Von Neumann con Parola a

16 bit, indirizzi a 10 bit e codice operativo 4 bit

Vogliamo calcolare il valore dell’espressione:(a+b)·(c+d)

leggendo i valori delle variabili a, b, c, d dal dispositivo di

ingresso e scrivendo il risultato della valutazione sul

dispositivo di uscita.

Page 192: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio

1. Leggi dal dispositivo di ingresso il valore delle variabili a, b, c, d

2. Somma il valore di a al valore di b

3. Salva il risultato parziale ottenuto

4. Somma il valore di c al valore di d

5. Moltiplica il risultato parziale appena ottenuto con quello precedentemente salvato

6. Scrivi sul dispositivo di uscita il risultato della valutazione complessiva

7. Termina l’esecuzione del programma.

Page 193: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio

1. Leggi dal dispositivo di ingresso il valore delle variabili a, b, c, d

2. Somma il valore di a al valore di b

3. Salva il risultato parziale ottenuto

4. Somma il valore di c al valore di d

5. Moltiplica il risultato parziale appena ottenuto con quello precedentemente salvato

6. Scrivi sul dispositivo di uscita il risultato della valutazione complessiva

7. Termina l’esecuzione del programma.

Il programma deve essere tradotto in opportuni codici operativi e indirizzi di celle di memoria!

Page 194: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: più nel dettaglio

1. Leggi dal dispositivo di ingresso il valore delle variabili a

2. Somma il valore di aal valore di b

3. Salva il risultato parziale ottenuto

1. Scrivi nella cella di memoria centrale

riservata al valore di a il valore letto dal

registro dati della periferica.

2. Somma il valore di a al valore di b

2.1 Copia il contenuto della cella di

memoria riservata ad a nel registro A

2.2 Copia il contenuto della cella di

memoria riservata a b nel registro B

2.3 Somma contenuto dei registri A e B

3. Salva il risultato parziale, contenuto nel

registro A, in una cella di memoria

predisposta per il risultato (z).

Page 195: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: più nel dettaglio

1. Leggi dal dispositivo di ingresso il valore delle variabili a

2. Leggi dal dispositivo di ingresso il valore delle variabili b

1. Scrivi nella cella di memoria centrale

riservata al valore di a il valore letto dal

registro dati della periferica.

2. Scrivi nella cella di memoria centrale

riservata al valore di b il valore letto dal

registro dati della periferica.

Page 196: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: più nel dettaglio

1. Leggi dal dispositivo di ingresso il valore delle variabili a

2. Leggi dal dispositivo di ingresso il valore delle variabili b

3. Somma il valore di aal valore di b

1. Scrivi nella cella di memoria centrale

riservata al valore di a il valore letto dal

registro dati della periferica.

2. Scrivi nella cella di memoria centrale

riservata al valore di b il valore letto dal

registro dati della periferica.

3. Somma il valore di a al valore di b

3.1 Copia il contenuto della cella di

memoria riservata ad a nel registro A

della ALU

3.2 Copia il contenuto della cella di

memoria riservata a b nel registro B

della ALU

3.3 Somma contenuto dei registri A e B

Page 197: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: più nel dettaglio

1. Leggi dal dispositivo di ingresso il valore delle variabili a

2. Leggi dal dispositivo di ingresso il valore delle variabili b

3. Somma il valore di aal valore di b

4. Salva il risultato parziale ottenuto

4. Salva il risultato parziale, contenuto nel

registro A, in una cella di memoria

predisposta per il risultato (z).

Page 198: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: più nel dettaglio

1. Leggi dal dispositivo di ingresso il valore delle variabili a

2. Leggi dal dispositivo di ingresso il valore delle variabili b

3. Somma il valore di aal valore di b

4. Salva il risultato parziale ottenuto

5. Leggi dal dispositivo di ingresso il valore delle variabili c

6. Leggi dal dispositivo di ingresso il valore delle variabili d

4. Salva il risultato parziale, contenuto nel

registro A, in una cella di memoria

predisposta per il risultato (z).

5. Scrivi nella cella di memoria centrale

riservata al valore di c il valore letto dal

registro dati della periferica.

6. Scrivi nella cella di memoria centrale

riservata al valore di d il valore letto dal

registro dati della periferica.

Page 199: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: più nel dettaglio

7. Somma il valore di cal valore di d

7. Somma il valore di c al valore di d

7.1 Copia il contenuto della cella di

memoria riservata ad c nel registro A

della ALU

7.2 Copia il contenuto della cella di

memoria riservata a d nel registro B

della ALU

7.3 Somma contenuto dei registri A e B

Page 200: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: più nel dettaglio

7. Somma il valore di cal valore di d

8. Moltiplica il risultato parziale appena ottenuto con quello precedentemente salvato

7. Somma il valore di c al valore di d

7.1 Copia il contenuto della cella di

memoria riservata ad c nel registro A

della ALU

7.2 Copia il contenuto della cella di

memoria riservata a d nel registro B

della ALU

7.3 Somma contenuto dei registri A e B

8. Moltiplica

8.1 Copia il contenuto della cella z nel

registro B (z e B contengono ora a

+ b, mentre A contiene c + d)

8.2 Moltiplica contenuto dei registri A e B

Page 201: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: più nel dettaglio

9. Scrivi sul dispositivo di uscita il risultato della valutazione complessiva

10. Termina l’esecuzione del programma

9. Scrivi sul dispositivo in uscita

9.1 Memorizza il risultato calcolato

(disponibile nel registro A) nella cella

di memoria riservata a z

9.2 Copia il contenuto della cella di

memoria riservata a z nel registro

dati della periferica di uscita

10. Manda il comando di Halt

Page 202: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Esempio: più nel dettaglio

9. Scrivi sul dispositivo di uscita il risultato della valutazione complessiva

10. Termina l’esecuzione del programma

9. Scrivi sul dispositivo in uscita

9.1 Memorizza il risultato calcolato

(disponibile nel registro A) nella cella

di memoria riservata a z

9.2 Copia il contenuto della cella di

memoria riservata a z nel registro

dati della periferica di uscita

10. Manda il comando di Halt

Page 203: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Programma in Memoria Centrale

0100000000010000

0100000000010001

0000000000010000

0001000000010001

0110000000000000

0100000000010010

0100000000010011

0010000000010100

0000000000010010

0001000000010011

0110000000000000

0001000000010011

1000000000000000

0010000000010100

0101000000010100

1101000000000000

Cella 0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15Spazio riservato per a 16

Spazio riservato per b 17

Spazio riservato per c 18

Spazio riservato per d 19

Spazio riservato per z 20

Istru

zio

ni d

el P

rog

ram

ma

da

ti

Page 204: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Forma Binaria del Programma

0100000000010000 Leggi un valore dall’input e mettilo nella cella 16 (a)

0100000000010001 Leggi un valore dall’input e mettilo nella cella 17 (b)

0000000000010000 Carica il contenuto della cella 16 (a) nel registro A

0001000000010001 Carica il contenuto della cella 17 (b) nel registro B

0110000000000000 Somma i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris.parziale)

0100000000010010 Leggi un valore dall’input e mettilo nella cella 18 (c)

0100000000010011 Leggi un valore dall’input e mettilo nella cella 19 (d)

0000000000010010 Carica il contenito della cella 18 (c) nel registro A

0001000000010011 Carica il contenito della cella 19 (d) nel registro B

0110000000000000 Somma i registri A e B0001000000010100 Carica il contenuto della cella 20 (z) (ris. parziale) in B

1000000000000000 Moltiplica i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris. totale)

0101000000010100 Scrivi il contenuto della cella 20 (z) (ris. totale) output

1101000000000000 Halt

Page 205: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Forma Binaria del Programma

0100000000010000 Leggi un valore dall’input e mettilo nella cella 16 (a)

0100000000010001 Leggi un valore dall’input e mettilo nella cella 17 (b)

0000000000010000 Carica il contenuto della cella 16 (a) nel registro A

0001000000010001 Carica il contenuto della cella 17 (b) nel registro B

0110000000000000 Somma i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris.parziale)

0100000000010010 Leggi un valore dall’input e mettilo nella cella 18 (c)

0100000000010011 Leggi un valore dall’input e mettilo nella cella 19 (d)

0000000000010010 Carica il contenito della cella 18 (c) nel registro A

0001000000010011 Carica il contenito della cella 19 (d) nel registro B

0110000000000000 Somma i registri A e B0001000000010100 Carica il contenuto della cella 20 (z) (ris. parziale) in B

1000000000000000 Moltiplica i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris. totale)

0101000000010100 Scrivi il contenuto della cella 20 (z) (ris. totale) output

1101000000000000 Halt

Page 206: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Forma Binaria del Programma

0100000000010000 Leggi un valore dall’input e mettilo nella cella 16 (a)

0100000000010001 Leggi un valore dall’input e mettilo nella cella 17 (b)

0000000000010000 Carica il contenuto della cella 16 (a) nel registro A

0001000000010001 Carica il contenuto della cella 17 (b) nel registro B

0110000000000000 Somma i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris.parziale)

0100000000010010 Leggi un valore dall’input e mettilo nella cella 18 (c)

0100000000010011 Leggi un valore dall’input e mettilo nella cella 19 (d)

0000000000010010 Carica il contenito della cella 18 (c) nel registro A

0001000000010011 Carica il contenito della cella 19 (d) nel registro B

0110000000000000 Somma i registri A e B0001000000010100 Carica il contenuto della cella 20 (z) (ris. parziale) in B

1000000000000000 Moltiplica i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris. totale)

0101000000010100 Scrivi il contenuto della cella 20 (z) (ris. totale) output

1101000000000000 Halt

Page 207: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Forma Binaria del Programma

0100000000010000 Leggi un valore dall’input e mettilo nella cella 16 (a)

0100000000010001 Leggi un valore dall’input e mettilo nella cella 17 (b)

0000000000010000 Carica il contenuto della cella 16 (a) nel registro A

0001000000010001 Carica il contenuto della cella 17 (b) nel registro B

0110000000000000 Somma i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris.parziale)

0100000000010010 Leggi un valore dall’input e mettilo nella cella 18 (c)

0100000000010011 Leggi un valore dall’input e mettilo nella cella 19 (d)

0000000000010010 Carica il contenito della cella 18 (c) nel registro A

0001000000010011 Carica il contenito della cella 19 (d) nel registro B

0110000000000000 Somma i registri A e B0001000000010100 Carica il contenuto della cella 20 (z) (ris. parziale) in B

1000000000000000 Moltiplica i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris. totale)

0101000000010100 Scrivi il contenuto della cella 20 (z) (ris. totale) output

1101000000000000 Halt

Page 208: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Forma Binaria del Programma

0100000000010000 Leggi un valore dall’input e mettilo nella cella 16 (a)

0100000000010001 Leggi un valore dall’input e mettilo nella cella 17 (b)

0000000000010000 Carica il contenuto della cella 16 (a) nel registro A

0001000000010001 Carica il contenuto della cella 17 (b) nel registro B

0110000000000000 Somma i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris.parziale)

0100000000010010 Leggi un valore dall’input e mettilo nella cella 18 (c)

0100000000010011 Leggi un valore dall’input e mettilo nella cella 19 (d)

0000000000010010 Carica il contenito della cella 18 (c) nel registro A

0001000000010011 Carica il contenito della cella 19 (d) nel registro B

0110000000000000 Somma i registri A e B0001000000010100 Carica il contenuto della cella 20 (z) (ris. parziale) in B

1000000000000000 Moltiplica i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris. totale)

0101000000010100 Scrivi il contenuto della cella 20 (z) (ris. totale) output

1101000000000000 Halt

Page 209: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Forma Binaria del Programma

0100000000010000 Leggi un valore dall’input e mettilo nella cella 16 (a)

0100000000010001 Leggi un valore dall’input e mettilo nella cella 17 (b)

0000000000010000 Carica il contenuto della cella 16 (a) nel registro A

0001000000010001 Carica il contenuto della cella 17 (b) nel registro B

0110000000000000 Somma i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris.parziale)

0100000000010010 Leggi un valore dall’input e mettilo nella cella 18 (c)

0100000000010011 Leggi un valore dall’input e mettilo nella cella 19 (d)

0000000000010010 Carica il contenito della cella 18 (c) nel registro A

0001000000010011 Carica il contenito della cella 19 (d) nel registro B

0110000000000000 Somma i registri A e B0001000000010100 Carica il contenuto della cella 20 (z) (ris. parziale) in B

1000000000000000 Moltiplica i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris. totale)

0101000000010100 Scrivi il contenuto della cella 20 (z) (ris. totale) output

1101000000000000 Halt

Page 210: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Forma Binaria del Programma

0100000000010000 Leggi un valore dall’input e mettilo nella cella 16 (a)

0100000000010001 Leggi un valore dall’input e mettilo nella cella 17 (b)

0000000000010000 Carica il contenuto della cella 16 (a) nel registro A

0001000000010001 Carica il contenuto della cella 17 (b) nel registro B

0110000000000000 Somma i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris.parziale)

0100000000010010 Leggi un valore dall’input e mettilo nella cella 18 (c)

0100000000010011 Leggi un valore dall’input e mettilo nella cella 19 (d)

0000000000010010 Carica il contenito della cella 18 (c) nel registro A

0001000000010011 Carica il contenito della cella 19 (d) nel registro B

0110000000000000 Somma i registri A e B0001000000010100 Carica il contenuto della cella 20 (z) (ris. parziale) in B

1000000000000000 Moltiplica i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris. totale)

0101000000010100 Scrivi il contenuto della cella 20 (z) (ris. totale) output

1101000000000000 Halt

Page 211: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Forma Binaria del Programma

0100000000010000 Leggi un valore dall’input e mettilo nella cella 16 (a)

0100000000010001 Leggi un valore dall’input e mettilo nella cella 17 (b)

0000000000010000 Carica il contenuto della cella 16 (a) nel registro A

0001000000010001 Carica il contenuto della cella 17 (b) nel registro B

0110000000000000 Somma i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris.parziale)

0100000000010010 Leggi un valore dall’input e mettilo nella cella 18 (c)

0100000000010011 Leggi un valore dall’input e mettilo nella cella 19 (d)

0000000000010010 Carica il contenito della cella 18 (c) nel registro A

0001000000010011 Carica il contenito della cella 19 (d) nel registro B

0110000000000000 Somma i registri A e B0001000000010100 Carica il contenuto della cella 20 (z) (ris. parziale) in B

1000000000000000 Moltiplica i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris. totale)

0101000000010100 Scrivi il contenuto della cella 20 (z) (ris. totale) output

1101000000000000 Halt

Page 212: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Forma Binaria del Programma

0100000000010000 Leggi un valore dall’input e mettilo nella cella 16 (a)

0100000000010001 Leggi un valore dall’input e mettilo nella cella 17 (b)

0000000000010000 Carica il contenuto della cella 16 (a) nel registro A

0001000000010001 Carica il contenuto della cella 17 (b) nel registro B

0110000000000000 Somma i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris.parziale)

0100000000010010 Leggi un valore dall’input e mettilo nella cella 18 (c)

0100000000010011 Leggi un valore dall’input e mettilo nella cella 19 (d)

0000000000010010 Carica il contenito della cella 18 (c) nel registro A

0001000000010011 Carica il contenito della cella 19 (d) nel registro B

0110000000000000 Somma i registri A e B0001000000010100 Carica il contenuto della cella 20 (z) (ris. parziale) in B

1000000000000000 Moltiplica i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris. totale)

0101000000010100 Scrivi il contenuto della cella 20 (z) (ris. totale) output

1101000000000000 Halt

Page 213: Introduzione al Corso - Prof. Luca Cassanocassano.faculty.polimi.it/Lez1_Introduzione_Informatica_Calcolatore... · Informatica B, AA 19/20, Luca Cassano Cos’è l’Informatica?

Informatica B, AA 19/20, Luca Cassano

Forma Binaria del Programma

0100000000010000 Leggi un valore dall’input e mettilo nella cella 16 (a)

0100000000010001 Leggi un valore dall’input e mettilo nella cella 17 (b)

0000000000010000 Carica il contenuto della cella 16 (a) nel registro A

0001000000010001 Carica il contenuto della cella 17 (b) nel registro B

0110000000000000 Somma i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris.parziale)

0100000000010010 Leggi un valore dall’input e mettilo nella cella 18 (c)

0100000000010011 Leggi un valore dall’input e mettilo nella cella 19 (d)

0000000000010010 Carica il contenito della cella 18 (c) nel registro A

0001000000010011 Carica il contenito della cella 19 (d) nel registro B

0110000000000000 Somma i registri A e B0001000000010100 Carica il contenuto della cella 20 (z) (ris. parziale) in B

1000000000000000 Moltiplica i registri A e B0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris. totale)

0101000000010100 Scrivi il contenuto della cella 20 (z) (ris. totale) output

1101000000000000 Halt