Fondamenti di Informatica, 6 Marzo 2012
Non e' ammesso l'uso di alcun testo, appunti o
calcolatrici. Le risposte vanno scritte nel foglio di bella copia. Si
raccomanda la massima SINTETICITA'. L'eccessiva verbosita' verra'
considerata negativamente.
Occorre essersi prenotati sul portale studenti del nostro
ateneo. Se cio' non e' stato fatto, indicatelo chiaramente nello scritto o comunicatelo
al docente o all'assistente in aula in caso di ritiro.
I risultati
verranno indicati nella pagina web del corso.
Date ed orari degli orali, sul Forum.
Esercizio 1
(a)
Fornire la definizione di Codice. Cos'e' un codice ad espansione?
Descrivere brevemente uno dei possibili codici ad espansione.
(b)
Si consideri il numero naturale la cui rappresentazione posizionale in base 8 e'
274.
Lo si rappresenti in base 7
Lo si rappresenti poi in base 2 nel modo piu' veloce possibile.
Giustificare la risposte.
(c)
Un semplice algoritmo per passare dalla notazione posizionale binaria
a quella esadecimale e' il seguente:
Dividiamo la stringa della rappresentazione binaria in blocchi da 4 bit
(partendo da destra)
e per ogni blocco consideriamo la cifra esadecimale corrispondente al
numero rappresentato dai vari blocchi.
Dimostrare la correttezza di tale algoritmo.
Esercizio 2
(a)
Cosa e' una Segnatura Σ per la logica dei predicati del prim'ordine
(calcolo dei predicati)? Fornire la definizione di struttura
AΣ per una segnatura Σ.
(b)
Dimostrare in deduzione naturale che
¬ A → ¬B |- B → A
e che ¬(A → B) |- ¬ B
Dimostrare una delle due cose utilizzando il teorema di correttezza e completezza.
(c)
Cosa si intende con numero di Goedel di una formula di PA?
Enunciare alcuni risultati limitativi della logica.
Esercizio 3
Sia add il lambda termine λnmfx.nf(mfx) che rappresenta la somma nel
lambda calcolo.
Utilizzare tale termine per calcolare 1+1, mostrando i vari passaggi nel calcolo.