Informatica B - Intranet DEIBhome.deib.polimi.it/zaccaria/data/lectures/infob/110921_1_lezione.pdf · Corso di Informatica B - A.A. 2011/2012 Prof. V. Zaccaria - Politecnico di Milano
Post on 16-Oct-2019
2 Views
Preview:
Transcript
Informatica B
Informatica B - Codice Corso: 081369 - A.A. 2011/2012INGEGNERIA MECCANICA (BV) - INGEGNERIA IV (1 liv.) - Scaglione S - ZINGEGNERIA ENERGETICA (BV) - INGEGNERIA IV (1 liv.) - Scaglione S - Z
(Docente Vittorio Zaccaria)
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
• E-mail: zaccaria@elet.polimi.it
• U!cio: Dip. di Elettronica e Informazione (DEI)
• Tel: 3642 (dall’esterno: +39 02 2399 3642)
• Ricevimento: Martedì, 14.15 – 16.15.
• E’ comunque preferibile prendere appuntamento via mail.
Contatti
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
ContattiPiazza Piola
Sede CentralePolitecnico di Milano
Dipartimento di Elettronica e Informazione
(c) Google Maps
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
• Lezione ed esercitazioni
• MERCOLEDI’ 08.15 - 11.15, aula CT33
• GIOVEDI’ 08.15 - 10.15, aula L06
• Laboratorio
• LUNEDI’ 15.15 - 19.15
• totale 21 ore
• 1^ laboratorio LUNEDI’ 3 Ottobre - aula LM1 (4 ore)
Orario
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
• Argomenti
• Fondamenti di programmazione e introduzione ad alcune tecniche di programmazione avanzata
• Linguaggio C - Prima parte del corso
• Linguaggio Matlab - Seconda parte del corso
• Nozioni base sull’architettura dei calcolatori, sul sistema operativo e sulle reti di calcolatori
Organizzazione del corso
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
• 2 prove in itinere scritte
• Ciascuna prova copre circa una metà del programma
• Massimo 17 punti per prova
• Condizioni per passare l’esame:
• 18 punti totali
• almeno 8 in ciascuna prova
• 1 appello regolare per sessione di esame
• Scritto su tutto il programma e orale obbligatorio
• Soglia: 18 punti
• Laboratorio
• Non è prevista un prova di laboratorio ma la partecipazione attiva sarà elemento di valutazione
Modalità di veri"ca
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
• Seguire il link “Informatica-B”
• Troverete:
• Materiale didattico usato a lezione, esercitazione e laboratorio
• Temi d’esame (quando disponibili)
• Calendario laboratorio
• Avvisi
Accesso al materiale del corsohttp://home.dei.polimi.it/zaccaria
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
• I lucidi sono SOLO un supporto didattico
• Bibliogra"a
• Dino Mandrioli, Stefano Ceri, Licia Sbattella, Paolo Cremonesi, Gianpaolo Cugola, "Informatica. arte e mestiere", Terza Edizione, McGraw-Hill Libri Italia, 2008.
• A. Kelley e I. Pohl, “C: didattica e programmazione”, Addison/Wesley, 1998.
• H. Schildt, “C - Guida completa”, McGraw-Hill Libri Italia, 1995.
• H. M. Deitel e P. J. Deitel, “C corso completo di programmazione”, Apogeo, 2000.
• P. Tosoratti, “Introduzione all’informatica”, seconda edizione, Casa Editrice Ambrosiana, 1998.
• … altri testi di introduzione alla programmazione e al C possono andare bene
Bibliogra"a (I parte)
Vittorio Zaccaria, Daniele Loiacono
Introduzione - aspetti generali dell’informatica
Informatica B - Codice Corso: 081369 - A.A. 2011/2012INGEGNERIA MECCANICA (BV) - INGEGNERIA IV (1 liv.) - Scaglione S - ZINGEGNERIA ENERGETICA (BV) - INGEGNERIA IV (1 liv.) - Scaglione S - Z
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
• 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)
Cos’è l’Informatica?
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Cosa è un calcolatore• Nell’epoca moderna, è uno strumento elettronico che
elabora informazione.
Calcolatore
Informazionein ingresso
Informazionein uscita
Il calcolatore esegue un algoritmo ed utilizza elementi di memoria per elaborare l’informazione
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Cosa è un calcolatore
Ingresso informazione
Uscita informazione
Calcolatore
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
• 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
Cos’è un algoritmo?Es. IKEA
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Esempio: gestione biblioteca
Scaffali
Posizione
Schedario
Autore: Mark Twain
Titolo: The advent...
Scaffale: 31
Posizione: 4
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Algoritmo di prelevamento di un libro
1. Cerca la scheda del libro richiesto nello schedario2. Leggi scaffale (s) e posizione (p) dalla scheda3. Vai allo scaffale s4. Preleva libro dalla posizione p
La funzione Cerca è un sotto-algoritmo
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Sotto-algoritmo Cerca
1. Leggi la prima scheda dallo schedario2. 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. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Sotto-algoritmo Cerca miglioratoIntero schedario (15 elementi)
passo 1
passo 2
passo 3
passo 4
Ricerca binaria
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Dal problema alla soluzione automatica
Definizione problema
Specifica (semi-formale o
formale) dell’algoritmo
Scrittura dell’algoritmo in un linguaggio artificiale
comprensibile dal calcolatore
Passo più difficile- Concentrarsi sugli aspetti fondamentali- Raffinamenti successivi- Esperienza
- Correttezza- Efficienza
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
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)
assegnamento
inizio fine
test
scrivi leggi
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Esempio di pseudo-codice
Leggi N ed MMIN = il minimo tra N ed MX = 1MCD = 1Finchè X < MIN
Stampa MCD
X = X + 1 se X divide sia N che M, allora MCD = X
Calcolo del massimo comune divisore
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Esempio di diagramma a blocchi
MIN = min(N,M)X=1
MCD=1
inizio
fine
X<MIN?
Stampa MCD
leggi N ed M
X=X+1
X divide M ed N?
MCD=X
si
si
no
no
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Scrittura algoritmo interpretabile dal calcolatore
• Il calcolatore (in particolare la Central Processing Unit - CPU) può eseguire solo operazioni semplici.
CPU
leggi istruzione ed eventualmente operandi
Memoria
0: 101001011: 011011112: 111001003: 00000101...Scrivi risultato in
memoria
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Scrittura algoritmo interpretabile dal calcolatore
• Le operazioni semplici sono codificate in memoria
Memoria
0: 101001011: 011011112: 111001003: 00000101...
Corrisponde a loadaddbranch...
Programma in linguaggio macchina
Programma inlinguaggioassembly
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Linguaggi di alto livello• E’ impensabile scrivere programmi di media complessita’
in linguaggio macchina.
Linguaggio macchina
Assembly
Linguaggio di alto livello (C, C++, Java, matlab)
Conversione automatica (compilatore/interprete)
Conversione automatica (assemblatore)
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
I linguaggi artificiali• Caratterizzati da sintassi e semantica
• La sintassi definisce come si scrive il programma (forma e struttura)
• La semantica definisce le istruzioni macchina associate agli elementi sintattici
<variabile> = <espressione>;
X = 3+1;load 3 in reg1load 1 in reg 2add reg1, reg2 in reg3store reg3, @X
istruzione di alto livello
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Sintassi e semantica• Un programma sintatticamente corretto non e’
necessariamente semanticamente corretto:
A = 0;X = 3;C = X/A;
La traduzione, quando viene eseguita dal calcolatore, genera un errore (chiamato eccezione)!
• La correttezza semantica e’ legata anche alla specifica del problema che volete risolvere.
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Compilatori ed interpreti• Compilatore: traduce un programma di alto livello
(chiamato sorgente) di alto livello in codice macchina.
• Interprete: programma che legge una istruzione di alto livello e determina, di volta in volta, quale istruzioni macchina eseguire per realizzarne il significato.
Sono due modalita’ alternative per scrivere ed eseguire programmi su un calcolatore. Noi ci focalizzeremo sulla prima alternativa, ed in particolare sul linguaggio di alto livello C.
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Catena di programmazione C - scrittura del programma
• Scrittura del programma in uno o piu’ file di testo con estensione .c
• Tali file sorgenti sono memorizzati all’interno del calcolatore.
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Catena di programmazione C - traduzione del programma
• Il compilatore e’ un programma che deve essere invocato (a seconda della piattaforma) per tradurre ciascun file sorgente in linguaggio macchina (chiamato file oggetto).
int f(int a){ printf(“Hi!”);}
Compilatore C
• Si riconoscono i costrutti, le parole chiave e i simboli del linguaggio. Si generano eventuali errori.
0: 101001011: 011011112: 111001003: 00000101...
file .c file .o
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Catena di programmazione- Fase di link (o collegamento)
int f(int a){ printf(“Hi!”);}
Compilatore C
0: 101001011: 011011112: ????????3: 011011114: 00000101...
file .c file .o
Linker
0: 101001011: 011011112: 111001003: 00000101...
file .o contenente il codice della printf (libreria di I/O)
salto a dove?
0: 101001011: 011011112: 111001003: 00000101...
File eseguibile completo
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Catena di programmazione C - Caricamento
• Caricamento ed esecuzione avvengono per richiesta dell’utente.
• Il caricatore (loader) individua delle zone di memoria libere per:
• Caricare l’eseguibile
• Allocare e inizializzare la memoria dati del programma (variabili globali inizializzate e non, stack, heap).
• Eventuali messaggi rivolti all’utente possono segnalare che non c'è abbastanza spazio in memoria
Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI
Catena di programmazione C - Esecuzione
• Al termine del caricamento, la CPU inizia ad eseguire la prima istruzione del programma.
• Ovviamente per eseguire il programma occorre fornire in ingresso i dati richiesti e in uscita riceveremo i risultati (su video o file o stampante o rete)
• Durante l’esecuzione possono verificarsi degli errori (detti “errori di run-time”), quali:
• calcoli con risultati scorretti (per esempio un overflow)
• calcoli impossibili (divisioni per zero, logaritmo di un numero negativo, radice quadrata di un numero negativo,….)
• errori nella concezione dell’algoritmo (l’algoritmo non risolve il problema dato)
top related