Esercizio Algebra di Boole Anno bisestile Il problema
Esercizio Algebra di Boole Anno bisestile
Il problema • Determinare se un anno è bisestile. Regola: sono bisestili gli anni divisibili per 4, ma se sono divisibili per 100, devono essere divisibili per 400.
Variabili e funzione • Sia X la variabile che è vera se l’anno è divisibile per 4, • Y la variabile che è vera se l’anno è divisibile per 100, • Z la variabile che è vera se l’anno è divisibile per 400. • Sia B la funzione che è vera se l’anno è bisestile.
Tavola di verità X=d 4 0 0 1 1 Y=d 100 Z=d 400 0 1 1 0 0 0 1 1 B 0 1
Trattamento don’t care: gli 1 vicini X=d 4 0 0 1 1 Y=d 100 Z=d 400 0 1 1 0 0 0 1 1 B 0 1 -1 0 1 Motivazione: X e Y fissi, Z cambia in tutti i modi possibili.
Trattamento don’t care: gli 1 vicini X=d 4 0 0 1 1 Y=d 100 Z=d 400 0 1 1 0 0 0 1 1 B 0 -1 -1 0 1 Motivazione: Z fisso, X e Y cambiano in tutti i modi possibili.
Tavola di verità definitiva X=d 4 0 0 1 1 Y=d 100 Z=d 400 0 1 1 0 0 0 1 1 B 0 1 1 1 0 1
Termini X=d 4 0 0 1 1 Y=d 100 Z=d 400 0 1 1 0 0 0 1 1 B 0 1 1 1 0 1
La funzione e la minimizzazione
La funzione e la minimizzazione (2)
La funzione minima: a parole: è bisestile se è divisibile per 4 e insieme non è divisibile per 100, oppure è divisibile per 400. Nel linguaggio C: scanf(“%d”, &anno); bisestile = (((anno % 4) == 0) && ((anno % 100) != 0)) || ((anno % 400)==0); if(bisestile) printf(“l’anno %d e’ bisestilen”, anno); else printf(“l’anno %d non e’ bisestilen”, anno);
- Slides: 11