Sei sulla pagina 1di 1

Fondamenti di Informatica III Appello

Pini - Canale 3 21 giugno 2016

Intestare ciascun foglio protocollo con: COGNOME, Nome, n. Matricola, Canale


Risolvere gli esercizi in ordine. Sulla prima facciata del primo foglio protocollo svolgere l’esercizio n.1, sulla
seconda facciata l’esercizio n.2, sulla terza facciata l’esercizio n.3, sulla quarta facciata l’esercizio n.4.
Sul secondo foglio protocollo svolgere l’esercizio n.5 con la descrizione dei metodi nell’ordine in cui sono richiesti.

1. [3 punti] Eseguire le seguenti conversioni, indicando i passaggi intermedi.


(a) Convertire il numero frazionario decimale 129.35 in base due.
(b) Convertire in notazione complemento a due su 7 bit il numero decimale -47.
(c) Convertire in un numero frazionario in base decimale il seguente numero floating point: 11011001. È
possibile rappresentare la parte frazionaria con una frazione.
2. [4 punti]
(a) Cosa vuol dire che la memoria è volatile? La memoria principale è tutta volatile? Giustificare la risposta.
(b) Dove risiede il sistema operativo?
(c) Quale è il compito del programma boot loader?
3. [4 punti] Con riferimento al linguaggio Java:
(a) Spiegare la differenza tra metodo statico e metodo d’istanza e mostrare come si invocano.
(b) Spiegare la differenza di utilizzo del metodo equals e dell’operatore ==.
4. [6 punti] Un array di interi si dice con SommaPariDispariUguale se la somma dei numeri in posizione pari
è uguale alla somma dei numeri in posizione dispari. Ad esempio, l’array [20, 1, 1, 20] è con Somma-
PariDispariUguale, mentre l’array [20, 1, 2, 20] non è con SommaPariDispariUguale. Si implementi un
metodo statico public static boolean SommaPariDispariUguale(int[] myArray) che restituisce true
se myArray è con SommaPariDispariUguale e false altrimenti. Si assuma che l’array contenga almeno un
valore. Descrivere brevemente a parole il funzionamento del metodo implementato.
5. [16 punti] Un’azienda desidera creare un archivio elettronico per la gestione dei propri dirigenti e delle liste
dei relativi impiegati. Si sviluppi una classe Dirigente avente il nominativo (stringa) come variabili d’istanza,
un metodo d’accesso ed un costruttore. Si assuma una classe Impiegato avente come variabili d’istanza il
numero (intero) di matricola in azienda ed un riferimento al proprio dirigente, con i relativi metodi di accesso
ed un costruttore. Si assuma siano già disponibili i metodi d’accesso ed un costruttore per ciascuna delle due
classi (non sviluppare tale codice). Sviluppare la seguente classe:
public class ArchivioDirigentiImpiegati{
private ArrayList<Dirigente> dirigenti;
private ArrayList<Impiegato> impiegati;
public Archivio(){...}
public int cercaDirigente(String unNomeDirigente){...}
public int cercaImpiegato(int unaMatricola){...}
public void aggiungiDirigente(String unNomeDirigente){...}
public void aggiungiImpiegato(int unaMatricola, String unNomeDirigente){...}
public int contaImpiegati(String unNomeDirigente){...}
public ArrayList<Impiegato> listaDirigente(String unNomeDirigente){...}
public Dirigente statDirigente(){...}
}

Il metodo cercaDirigente restituisce l’indice, nell’arraylist dirigenti, del dirigente con il nome speci-
ficato o -1 se tale dirigente non è presente. Il metodo cercaImpiegato restituisce l’indice, nell’arraylist
impiegati, dell’impiegato con la matricola specificata o -1 se tale impiegato non è presente. Il metodo
aggiungiDirigente inserisce un nuovo dirigente (se non esiste già) nella arraylist dirigenti. Il metodo
aggiungiImpiegato inserisce un nuovo oggetto impiegato nella arraylist impiegati, con un riferimento al
proprio dirigente nella arraylist dirigenti. Se il dirigente associato non esiste già, deve essere creato un
oggetto che lo rappresenti. Non devono mai essere duplicati impiegati o dirigenti. Il metodo contaImpiegati
restituisce il numero di impiegati che hanno il dirigente specificato dal parametro esplicito come dirigente e
-1 se tale dirigente non è presente. Il metodo listaDirigente restituisce una arraylist con tutti e soli gli
impiegati che hanno il dirigente specificato dal parametro esplicito come dirigente. Il metodo statDirigente
restituisce un riferimento al dirigente nella arraylist dirigenti avente il minor numero di impiegati. Svilup-
pare tutti i metodi della classe ArchivioDirigentiImpiegati. Sviluppare il costruttore e i metodi
richiesti nell’ordine in cui sono indicati.

Potrebbero piacerti anche