8         ESERCIZI

8.1        La matematica del calcolatore

1.      Dimostrare che l’insieme delle parti di un insieme con n elementi è formato da 2n elementi. Per induzione da 2n-1 o in relazione ai numeri binari.

2.      Descrivere il sistema di numerazione usato nelle date/ore.

3.      Definire la funzione n-m in notazione ricorsiva (funzione if(…))

4.      Sono stati definiti 4 operatori binari, ce ne possono essere altri e quanti?

5.      Dimostrare che (¬α ● ¬βv (αβ) equivale a (α β)  ● (β  > α).

6.      Esprimere tramite gli operatori NOT ed OR gli operatori AND EQU ed XOR.

7.      Dimostrare che è possibile utilizzare il solo operatore NAND (NOT AND).

8.      Dimostrare che l’operatore XOR applicato a due variabili distinte ne scambia i valori. Che cosa succede se le variabili non sono distinte?

9.      Qual è il risultato di (A XOR C) XOR C?

10.  Semplificare le formule del circuito addizionatore della Figura 2‑3 .

11.  Scrivere la tabella di verità e le formule del circuito di sottrazione, analogo al circuito di somma, cioè con la variabile risultato e la variabile prestito.

12.  Scrivere le tavole di verità di AND OR e NOT di una logica con i 3 valori {Vero, Falso, Sconosciuto}.

13.  Descrivere l'automa che riconosce il linguaggio anbn-1.

14.  Ricavare l'automa che accetta un qualsiasi linguaggio contex free.

15.  Scrivere la grammatica per generare il linguaggio {wwR: w ε {a,b}*}.

16.  descrivere la matrice di indidenza di un grafo orientato con cappi.


8.2        Il calcolatore

1.      Descrivere il codice correttore di errori con 11 bit di informazioni, 4 di parità e 1 di parità generale, indicando la posizione dei vari bit ed i sottoinsiemi di parità.


8.3        Codifica e rappresentazione dei dati

1.       Con gli interi formati da due bytes, quali numeri massimo e minimo sono esprimibili?

2.       Indicare quanti bit sono utilizzati per mantissa, esponente, segni in un numero floating point a singola precisione.

3.      Avendo quattro byte a disposizione progettare un numero floating point indicandone il numero di cifre significative ed il campo di variabilità.

4.      Fornire un esempio di matrice lineare.

5.      Fornire un esempio di matrice bidimensionale, eventualmente a partire dalla matrice precedente.

6.    Progettare un numero "currency" in grado di trattare cifre con 12 interi e 4 decimali.

7.    Indicare una struttura del tipo di dato “stringhe di caratteri di lunghezza variabile”

8.    Fornire degli esempi di tabelle.

9.    Progettare una struttura di dati per rappresentare un grafo orientato.

10.  Elencare alcuni attributi dell'insieme dei dati anagrafici (almeno 7) e di un'immagine grafica (almeno 5).

11.  Fornire un esempio di un insieme di dati e relativi attributi.

12.  Progettare una struttura dati per memorizzare un grafo qualunque.

13.  Progettare una struttura dati che realizzi uno stack  per tipi di dato qualsiasi.


8.4        Programmazione

1.      Trasformare if then else in funzione di assegnazione e mentre.

2.      Trasformare la struttura REPEAT ... UNTIL … nella struttura WHILE ... DO … e viceversa.

3.      Disegnare il diagramma della divisione fra due numeri interi, con stampa finale del risultato e del resto.

4.      Trovare il valore minimo e massimo di un vettore numerico.

5.      Costruire il diagramma che “fonde” due vettori ordinati in un terzo.

6.      Uno stack contiene la seguente configurazione di dati: ABcDf...xYz, dove le lettere maiuscole indicano dei numeri e le minuscole uno degli operatori aritmetici (+-*/). Costruire il diagramma che calcola il risultato

7.      Il file del diagramma contiene fra gli altri campi i campi Importo e Città, modificare il diagramma della Figura 6‑1 inserendo il totale degli importi e la stampa finale.

8.      Modificare il diagramma precedente scartando i record con importo negativo. Stampare a fine lavoro separatamente il totale positivo e quello negativo.

9.      Supponendo che il file, della domanda precedente, sia ordinato per città, disegnare il diagramma del programma che totalizza gli importi stampando il totale quando cambia la città, e stampa il totale generale.

10.  Si considerino i tre gruppi di istruzioni seguenti

Poni a zero la variabile K

Fintanto che K è minore di 10 somma 1 in K

Poni a zero la variabile K

Fintanto che K è maggiore di 10 somma 1 in K

Poni a zero la variabile K

Fintanto che K è uguale a 0 poni 1 nella variabile L

Indicare se si tratta di algoritmi corretti e quale valore assume a fine esecuzione delle istruzioni la variabile K.

11.   Utilizzando solamente l'istruzione SUB, spostare il campo A nel campo B.

12.   Utilizzando solamente l'istruzione SUB, scambiare il campo A col campo B.