dipartimento di elettronica e informazione c: miti e realtà marco d. santambrogio –...

26
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà C: miti e realtà Marco D. Santambrogio – [email protected] Ver. aggiornata al 8 Marzo 2013

Upload: nunzia-sacco

Post on 01-May-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

C: miti e realtàC: miti e realtà

Marco D. Santambrogio – [email protected]. aggiornata al 8 Marzo 2013

Page 2: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Sulla semantica…Sulla semantica…

Che giorno è oggi?14 Marzo o anche…14.3o anche…3.14

2

Page 3: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Sulla codifica…Sulla codifica…

3

Page 4: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Info di servizioInfo di servizio

• Laboratorihttp://tinyurl.com/IEIMlab2013

Divisione in gruppi• Lunedi’: 95 studenti• Giovedi’: 80 studenti

Oggetto del primo lab• Cosa e’ e come funziona un compilatore• Sistemazione degli ambienti di sviluppo• Comandi base da linea di comando

• Per progetto sostitutivo Dove: NECST Lab Quando: Mercoledì 20 Marzo @ 8am

4

Page 5: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Maiuscolo: Maiuscolo: solo ifsolo if

5

Page 6: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Condizione da verificareCondizione da verificare

• Il carattere inserito deve essere X: =>a Y: <= z

• X e Y devono essere entrambe vere

6

X Y X and Y

0 0 00 1 01 0 01 1 1(prodotto logico)

Page 7: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Maiuscolo: Maiuscolo: ANDAND

7

Page 8: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

MaiuscoloMaiuscolo: : codice codice ottimizzatoottimizzato

8

Page 9: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

MaiuscoloMaiuscolo: esecuzione: esecuzione

9

Page 10: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

10

• Tautologia Una espressione logica che è sempre vera, per

qualunque combinazione di valori delle variabili• Esempio: principio del “terzo escluso”: A or not A

(tertium non datur, non si dà un terzo caso tra l’evento A e la sua negazione)

• Contraddizione Una espressione logica che è sempre falsa, per

qualunque combinazione di valori delle variabili• Esempio: principio di “non contraddizione”: A and

not A (l’evento A e la sua negazione non possono essere entrambi veri)

Tautologie e Tautologie e ContraddizioniContraddizioni

Page 11: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

11

• Due espressioni logiche si dicono equivalenti (e si indica con ) se hanno la medesima tabella di verità. La verifica è algoritmica. Per esempio:

A B not A and not B not (A or B)

0 0 1 and 1 = 1 not 0 = 1

0 1 1 and 0 = 0 not 1 = 0

1 0 0 and 1 = 0 not 1 = 0

1 1 0 and 0 = 0 not 1 = 0

• Espressioni logiche equivalenti modellano gli stessi stati di verità a fronte delle medesime variabili

Equivalenza tra Equivalenza tra espressioniespressioni

Page 12: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

12

Proprietà dell’algebra di Proprietà dell’algebra di BooleBoole

• L’algebra di Boole gode di svariate proprietà, formulabili sotto specie di identità cioè formulabili come equivalenze tra

espressioni logiche, valide per qualunque combinazione di valori delle variabili

Page 13: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Algebra Booleana a due valori: Algebra Booleana a due valori: AssiomiAssiomi

• Gli operatori descritti godono delle proprietà definite dai seguenti assiomi (postulati di Huntington):

Le operazioni di disgiunzione (+) e congiunzione (·) sono commutative, cioè per ogni elemento a,b B

a+b = b+a a·b = b·a Esiste un elemento neutro (o identità) rispetto a +

(indicato con 0) e un elemento neutro rispetto a · (indicato con 1), cioè:

a+0=a a·1=a Le due operazioni sono distributive rispetto all’altra,

cioè per ogni a,b,c B, risulta: a+(b·c)=(a+b)·(a+c) a·(b+c)=(a·b)+(a·c)

Per ogni a B esiste l’elemento a’ B, detto negazione logica o complemento di a, tale che:

a+a’=1 a·a’=0Val e

per

l a s

om

ma r

ispett

o a

l pr o

dot t

o c

om

e p

er

i l pro

dot t

o r

i spet t

o

all a

som

ma –

non e

s ist

e p

r ece

denza

fr a

le d

ue o

pera

z ioni , o

ccor r

e

s em

pr e

im

magi n

ar e

le p

ar e

nt e

s i “

sot t

i nte

se”

int o

rno a

ogni

appli c

az i

one d

i un’ o

pera

z ione.

13

Page 14: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Algebra di Commutazione: Algebra di Commutazione: Proprietà 1Proprietà 1

1: associativaa+(b+c)=(a+b)+c a*(b*c)=(a*b)*c

2: idempotenzaa+a=a a*a=a

3: elemento nulloa+1=1 a*0=0

4: unicità elemento inverso: il complemento di a, a’, è unico

5: assorbimentoa+(a*b)=a a*(a+b)=a

14

Page 15: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

6: Semplificazionea+a’b = a+b a*(a’+b) = a*b

7: involuzione ((a)’)’ = a

8: Leggi di De Morgan(a+b)’ = a’*b’ (a*b)’ = a’+b’

9: consensoa*b+a’*c+b*c = a*b + a’*c(a+b)*(a’+c)*(b+c)=(a+b)*(a’+c)

Algebra di Commutazione: Proprietà 2Algebra di Commutazione: Proprietà 2

15

Page 16: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Fine, domande?Fine, domande?

16

Pausa Pausa 10’10’

Page 17: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

ObiettiviObiettivi

• La struttura di un programma C• Teorema di Böhm e Jacopini• La calcolatrice

17

Page 18: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

18

Struttura di un Struttura di un programma Cprogramma C

inclusione librerie / per poter invocare funzioni utili (i/o, ...) /dichiarazione di variabili globali e funzioni

int main ( ) {

dichiarazione di variabili locali

istruzione 1; / tutti i tipi di operazioni, e cioè: /istruzione 2; / istr. di assegnamento / istruzione 3; / istr. di input / output /istruzione 4; / istr. di controllo (condizionali, cicli) /...istruzione N;

}

parte esecutiva

parte dichiarativa locale

parte dichiarativa globale

Ogni programma C deve contenere un modulo int main() {...}

Page 19: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

19

Teorema di BTeorema di Bööhm e hm e JacopiniJacopini• Tutti i programmi possono essere scritti

in termini di tre strutture di controllo: Sequenza: istruzioni eseguite in ordine

Selezione: istruzioni che permettono di prendere strade diverse in base a una condizione (costrutto di tipo se-allora)

Iterazione: istruzioni che permettono di eseguire ripetutamente un certo insieme di altre istruzioni (costrutti di tipo fintantoché)

Page 20: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

20

x = 23;w = 'a';y = z;alfa = x + y;r3 = ( alfa * 43 – xgg ) * ( delta – 32 * j );x = x + 1;

Abbreviazioni (operatori di assegnamento):

a = a + 7; a = a * 5; a = a + 1; a = a - 1;a += 7; a *= 5; ++a; --a;

Esempi di assegnamentoEsempi di assegnamento

Istruzioni della forma variabile = variabile operatore espressione;si possono scrivere come: variabile operatore = espressione;

Page 21: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

21

• Operatori aritmetici in C: * per la moltiplicazione e / per la divisione La divisione tra interi elimina il resto (quoziente):

13 / 5 è uguale a 2 L’operatore modulo calcola il resto della

divisione: 13 % 5 è uguale a 3

• Precedenza degli operatori: Come in aritmetica, moltiplicazione e divisione

hanno priorità su addizione e sottrazione• si usano le parentesi quando c’è ambiguità

Per esempio: la media aritmetica di a, b, c: a + b + c / 3 NO !!!! (a + b + c ) / 3 SI

Aritmetica (1/2)Aritmetica (1/2)

Page 22: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

22

Aritmetica (2/2)Aritmetica (2/2)Operazione Operatore C Espressione

aritmeticaEspressione C

Addizione + f+7 f + 7Sottrazione - p-c p – cMoltiplicazione * bm b * mDivisione / x/y x / yModulo % r mod s r % s

Operatori C Operazioni Precedenza

( ) Parentesi Valutate per prime. Se ci sono degli annidamenti, si valuta prima la coppia più interna. Se ci sono più coppie allo stesso livello, si valuta da sinistra a destra.

* , / , % Moltiplicazione, Divisione, Modulo

Valutate per seconde. Se ce ne sono diverse, si valutano da sinistra a destra.

+ , – Addizione, Sottrazione

Valutate per ultime. Se ce ne sono diverse, si valutano da sinistra a destra.

Page 23: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

La calcolatrice?La calcolatrice?

23

Umh….Meglio!

Page 24: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

La calcolatrice!La calcolatrice!

• Problema Si scriva un programma in C che, dati

due numeri, permette all’utente di calcolarne la somma, sottrazione, moltiplicazione, e la divisione tra essi• L’utente, per ogni coppia di numeri inseriti,

potrà eseguire una e una sola operazione

La calcolatrice potrà essere utilizzata più volte e… • ammettere l’operazione di sommatoria per un numero variabile, deciso dall’utente, di valori

24

Page 25: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Problemi di fine giornata…Problemi di fine giornata…

• Si scriva un programma in C che richiede l’inserimento di un numero intero positivo, se l’inserimento e’ errato ritorna un messaggio di errore

• Si scriva un programma in C che, dati due caratteri, li ordina in ordine alfabetico “inverso”

25

Page 26: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE C: miti e realtà Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Fonti per lo studio + Fonti per lo studio + CreditsCredits• Fonti per lo studio

Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill• Capitolo 6

• Credits

Daniele Braga - http://home.dei.polimi.it/braga/