+ All Categories
Home > Documents > Informatica B - Intranet...

Informatica B - Intranet...

Date post: 16-Oct-2019
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
32
Informatica B Informatica B - Codice Corso: 081369 - A.A. 2011/2012 INGEGNERIA MECCANICA (BV) - INGEGNERIA IV (1 liv.) - Scaglione S - Z INGEGNERIA ENERGETICA (BV) - INGEGNERIA IV (1 liv.) - Scaglione S - Z (Docente Vittorio Zaccaria)
Transcript
Page 1: 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

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)

Page 2: 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

Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI

• E-mail: [email protected]

• 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

Page 3: 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

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

Page 4: 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

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

Page 5: 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

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

Page 6: 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

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

Page 7: 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

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

Page 8: 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

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)

Page 9: 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

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

Page 10: 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

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?

Page 11: 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

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

Page 12: 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

Corso di Informatica B - A.A. 2011/2012Prof. V. Zaccaria - Politecnico di Milano - DEI

Cosa è un calcolatore

Ingresso informazione

Uscita informazione

Calcolatore

Page 13: 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

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

Page 14: 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

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

Page 15: 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

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

Page 16: 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

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!

Page 17: 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

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

Page 18: 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

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

Page 19: 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

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

Page 20: 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

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

Page 21: 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

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

Page 22: 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

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

Page 23: 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

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

Page 24: 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

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)

Page 25: 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

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

Page 26: 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

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.

Page 27: 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

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.

Page 28: 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

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.

Page 29: 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

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

Page 30: 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

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

Page 31: 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

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

Page 32: 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

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)


Recommended