Introduzione - aspetti generali dell`informatica

Introduzione - aspetti generali
dell’informatica
Vittorio Zaccaria, Daniele Loiacono
Informatica B - Codice Corso: 081369 - A.A. 2010/2011
INGEGNERIA MECCANICA (BV) - INGEGNERIA IV (1 liv.) - Scaglione RAE - Z
INGEGNERIA ENERGETICA (BV) - INGEGNERIA IV (1 liv.) - Scaglione RAE - Z
Cos’è l’Informatica?
•
•
E’ una scienza, ovvero una conoscenza sistematica di
tecniche/metodi per:
•
•
Rappresentare dell’informazione
Elaborare l’informazione
L’informazione e’ costituita da una collezione di dati
(osservazioni, fatti, entità fisiche o concettuali)
Corso di Informatica B - A.A. 2010/2011
Prof. V. Zaccaria - Politecnico di Milano - DEI
Cosa è un calcolatore
•
Nell’epoca moderna, è uno strumento elettronico che
elabora informazione.
Informazione
in ingresso
Informazione
in uscita
Calcolatore
Il calcolatore esegue un algoritmo
ed utilizza elementi di memoria per elaborare
l’informazione
Corso di Informatica B - A.A. 2010/2011
Prof. V. Zaccaria - Politecnico di Milano - DEI
Cosa è un calcolatore
Uscita informazione
Calcolatore
Ingresso informazione
Corso di Informatica B - A.A. 2010/2011
Prof. V. Zaccaria - Politecnico di Milano - DEI
Cos’è un algoritmo?
•
Es. IKEA
Una sequenza finita di
operazioni elementari tali
che:
•
•
•
siano comprensibili ad
uno specifico esecutore
possano essere eseguite
senza ambiguità
permettano di risolvere
uno specifico problema
Corso di Informatica B - A.A. 2010/2011
Prof. V. Zaccaria - Politecnico di Milano - DEI
Esempio: gestione biblioteca
Scaffali
in
a
Tw t...
k
r
a ven
M
:
re e ad
o
t
Au lo: Th 1
Tito ffale: 3 : 4
Sca izione
Pos
Posizione
Schedario
Corso di Informatica B - A.A. 2010/2011
Prof. V. Zaccaria - Politecnico di Milano - DEI
Algoritmo di prelevamento di un libro
1. Cerca la scheda del libro richiesto nello schedario
2. Leggi scaffale (s) e posizione (p) dalla scheda
3. Vai allo scaffale s
4. Preleva libro dalla posizione p
La funzione Cerca è un sotto-algoritmo
Corso di Informatica B - A.A. 2010/2011
Prof. V. Zaccaria - Politecnico di Milano - DEI
Sotto-algoritmo Cerca
1. Leggi la prima scheda dallo schedario
2. Se titolo e autore/i corrispondono a quelli cercati allora
concludi la ricerca con esito positivo, altrimenti passa la
scheda successiva
3. Se le schede sono esaurite allora concludi la ricerca con
esito negativo, altrimenti ricomincia dal punto 2
L’algoritmo può essere
ulteriormente migliorato,
rendendo la ricerca più furba!
Corso di Informatica B - A.A. 2010/2011
Prof. V. Zaccaria - Politecnico di Milano - DEI
Sotto-algoritmo Cerca migliorato
Intero schedario (15 elementi)
passo 1
passo 2
passo 3
passo 4
Ricerca binaria
Corso di Informatica B - A.A. 2010/2011
Prof. V. Zaccaria - Politecnico di Milano - DEI
Dal problema alla soluzione automatica
- Correttezza
- Efficienza
Definizione
problema
Specifica
(semi-formale o
formale)
dell’algoritmo
Scrittura
dell’algoritmo in un
linguaggio artificiale
comprensibile dal
calcolatore
Passo più difficile
Corso di Informatica B - A.A. 2010/2011
Prof. V. Zaccaria - Politecnico di Milano - DEI
- Concentrarsi sugli aspetti fondamentali
- Raffinamenti successivi
- Esperienza
Come si specifica un algoritmo?
•
Un’opzione è chiamata pseudo-codice:
se A > 0 allora A = A + 1 altrimenti A = 0
•
Un’altra opzione è quella dei diagrammi di flusso (schemi a
blocchi)
inizio
assegnamento
scrivi
Corso di Informatica B - A.A. 2010/2011
Prof. V. Zaccaria - Politecnico di Milano - DEI
fine
test
leggi
Esempio di pseudo-codice
Calcolo del massimo comune divisore
Leggi N ed M
MIN = il minimo tra N ed M
X = 1
MCD = 1
Finchè X < MIN
X = X + 1
se X divide sia N che M, allora MCD = X
Stampa MCD
Corso di Informatica B - A.A. 2010/2011
Prof. V. Zaccaria - Politecnico di Milano - DEI
Esempio di diagramma a blocchi
inizio
leggi N ed M
MIN = min(N,M)
X=1
MCD=1
no
X<MIN?
si
Stampa MCD
X=X+1
X
divide M ed N?
fine
si
MCD=X
Corso di Informatica B - A.A. 2010/2011
Prof. V. Zaccaria - Politecnico di Milano - DEI
no
Scrittura algoritmo interpretabile dal calcolatore
•
Il calcolatore (in particolare la Central Processing Unit CPU) può eseguire solo operazioni semplici.
leggi istruzione ed
eventualmente
operandi
0: 10100101
1: 01101111
CPU
2: 11100100
Scrivi risultato in
memoria
Corso di Informatica B - A.A. 2010/2011
Prof. V. Zaccaria - Politecnico di Milano - DEI
Memoria
3: 00000101
...
Scrittura algoritmo interpretabile dal calcolatore
•
Le operazioni semplici sono codificate in memoria
Memoria
Corrisponde a
0: 10100101
1: 01101111
2: 11100100
3: 00000101
...
Programma in linguaggio macchina
Corso di Informatica B - A.A. 2010/2011
Prof. V. Zaccaria - Politecnico di Milano - DEI
load
add
branch
...
Programma in
linguaggio
assembly
Linguaggi di alto livello
•
E’ impensabile scrivere programmi di media complessita’
in linguaggio macchina.
Linguaggio di alto livello
(C, C++, Java, matlab)
Conversione automatica
(compilatore/interprete)
Assembly
Conversione automatica (assemblatore)
Linguaggio macchina
Corso di Informatica B - A.A. 2010/2011
Prof. V. Zaccaria - Politecnico di Milano - DEI