Esercizi
1
Tabelle di verita’
Da formula a tabella:
(A or
B) and (not B or not A)
(A and B) or (B A)
(A (B or not A))
A and not(B)
Da tabella a circuito
2
Da binario a decimale e viceversa
1011
101
1100
101,101
110,11
23
54
13,72
21,14
3
Somma binaria
1010+ 1100
1010 + 1111
101,10 + 110,11
1111,11 + 1100,01
4
Notazione in complemento a due
10000
00011
01111
10010
Su 8 bit:
6, -6, -13, -1, 0
5
Somma in complemento a due
Controllare risultato in base 10:
0101 + 0010
0011 + 0001
0101 + 1010
1110 + 0011
Overflow?:
0100+0011
0101+0110
1010+1010
1010+0111
Usare 4 bit: 3-2, 4 – 6, 1-5
6
Notazione in eccesso (4)
111
010
001
000
3
1
0
7
Notazione in virgola mobile
8 bit, 3 bit per esponente, 4 per mantissa
10111100
01111010
1,5
11,3 ?
7,3
8
CPU e memoria principale
Differenze tra memoria principale e secondaria
Registro istruzione?
Registro contatore programma?
Campi di un’istruzione?
Ciclo di macchina?
Differenza tra linguaggio macchina e linguaggio assembly?
In un programma assembler, perchè si attaccano etichette a certe
istruzioni?
Come si chiama in Assembly l’istruzione che trasferisce una parola
dalla RAM ad un registro della CPU? E quella che compie il
trasferimento inverso?
In assembler a cosa servono gli identificatori o variabili?
9
Esercizio su linguaggio assembly
X: int;
Y: int 8;
LOAD RO Y;
LOAD R1 Y;
MULT RO R1;
STORE RO X;
STOP;
Dire se:
Alla fine Y contiene 64
Alla fine X contiene 64
STORE RO X mette in R0 il contenuto della cella X
MULT R0 R1 mette in R0 la moltiplicazione dei valori
in R0 e R1
10
Sistema operativo
Differenza tra shell e nucleo?
Differenza tra processo e processore?
A cosa serve la tecnica della condivisione
del tempo (time-sharing)?
Stati dei processi e transizioni tra stati
11
Esercizio Linux
Posizione: home directory che contiene
dir1 che contiene file1
Sequenza di comandi per:
Spostare
file1 in home
Creare file2 in dir1
12
Esercizio Linux
Posizione: home directory che contiene
dir1 e dir2
Dir1 contiene file1 e dir2 contiene file2
Sequenza di comandi per
Spostare
file1 in dir2
Rimuovere dir1
Copiare file2 in home
13
Reti
Cos’e’ una LAN?
Cos’e’ una WAN?
Cosa sono i domini di Internet?
Come funziona il WWW?
Cos’e’ un URL?
A cosa serve il linguaggio HTML?
14
Algoritmi
Descrivere i seguenti costrutti: if, while
Descrivere le fasi di inizializzazione, test, e
modifica in un while
Cos’e’ un algoritmo ricorsivo?
Come si valuta l’efficienza di un algoritmo?
15
Linguaggi di programmazione
Paradigmi: imperativo, oggetti, dichiarativo,
funzionale
Cos’e’ una variabile?
A cosa servono le dichiarazioni?
Descrivere il comando di assegnamento
Cosa succede alla chiamata di un
sottoprogramma?
Differenza tra procedure e funzioni?
Passaggio dei parametri: per valore e per
riferimento
Differenza tra compilatore e interprete?
Analisi lessicale?
16
Paradigmi di programmazione
Che differenza c’e’ tra una classe e un oggetto
nella programmazione orientata agli oggetti?
Come funziona la risoluzione?
Come si controlla che un insieme di asserzioni e’
consistente?
Dire se il seguente insieme di asserzioni e’
consistente:
(P or Q), (Q or not R), (not(P) or S), not(S),
not(Q)
Dire se l’insieme di asserzioni implica
l’asserzione not(R)
(A B equivale a not(A) or B ch equivale a
not(A and not(B)))
17
Dire se implica S o P
Esercizio di programmazione
Cosa contengono le variabili d, n, e i alla fine
dell’esecuzione del seguente programma?
Dato un qualunque array a, cosa calcola il
programma nella variabile d?
main();
{int n=0, a[] = {11, 3, 2, 4, 5};
float d = 0.0;
for (i=0;i<5;i++)
{d = d+a[i];
n=n+1;}
d=d/n;}
18
Strutture dati
Differenze tra array e record
Quali sono le principali caratteristiche di un array?
Cosa contiene la dichiarazione di un array?
Quali sono le principali differenze tra array e record?
Quali sono le principali caratteristiche delle liste, e le
differenze con gli array?
A parita’ di dati memorizzati, occupa piu’ spazio un array
o una lista?
Quali sono le operazioni necessarie per inserire un
nuovo elemento in una lista?
E per cancellare un elemento?
Cos’e’ un puntatore?
Differenze tra code e pile?
19
Esercizio su array
In un array con 10 colonne e 4 righe,
memorizzato all’indirizzo 100, che indirizzo
ha l’elemento in riga 2 e colonna 6?
Come si calcola l’indirizzo dell’elemento in
riga i e colonna j in un array con c colonne
e indirizzo iniziale x?
x + (c * (i-1)) + (j-1)
20
Esercizio su liste:
Inserire gli indirizzi
nelle celle vuote in
modo che ogni cella
con una lettera, piu’ la
cella successiva,
formi un elemento di
una lista concatenata
in cui le lettere
appaiono in ordine
alfabetico inverso
Puntatore alla testa?
Indirizzo
11
12
13
14
15
16
17
18
19
20
21
22
Contenuto
C
G
E
B
U
F
21
Esercizio su code
Considerare una coda contenente A, B, C, D in
cui ogni elemento occupa una cella di memoria
Puntatore alla testa (dove cancellare)= 1
Puntatore alla coda (dove inserire)?
Mostrare il contnuto della coda e il valore dei
due puntatori dopo aver inserito E, eliminato C e
D, inserito F, eliminato A e B?
22
Esercizio su pile
Considerare una pila che inizia all’indirizzo 100
e ha 3 elementi (A,B,C, ognuno una cella)
Che valore ha il puntatore alla testa della pila
(dove cancellare)?
Mostrare il contenuto della pila e il valore del
puntatore dopo aver inserito D, cancellato due
elementi, inserito E, eliminato due elementi,
inserito F, eliminato un elemento?
23