dipartimento di elettronica e informazione c: miti e realtà marco d. santambrogio –...
TRANSCRIPT
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
C: miti e realtàC: miti e realtà
Marco D. Santambrogio – [email protected]. 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Sulla codifica…Sulla codifica…
3
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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Maiuscolo: Maiuscolo: solo ifsolo if
5
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)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Maiuscolo: Maiuscolo: ANDAND
7
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MaiuscoloMaiuscolo: : codice codice ottimizzatoottimizzato
8
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MaiuscoloMaiuscolo: esecuzione: esecuzione
9
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
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
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
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
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
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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Fine, domande?Fine, domande?
16
Pausa Pausa 10’10’
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
ObiettiviObiettivi
• La struttura di un programma C• Teorema di Böhm e Jacopini• La calcolatrice
17
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() {...}
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é)
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;
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)
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.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
La calcolatrice?La calcolatrice?
23
Umh….Meglio!
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
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
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/