• Non ci sono risultati.

Corso di laurea in Informatica AA 2007/08 Programmazione, M.A. Alberti Prova scritta – IV appello, 11 luglio 2008 Cognome Nome Matricola

N/A
N/A
Protected

Academic year: 2021

Condividi "Corso di laurea in Informatica AA 2007/08 Programmazione, M.A. Alberti Prova scritta – IV appello, 11 luglio 2008 Cognome Nome Matricola"

Copied!
4
0
0

Testo completo

(1)

1

Corso di laurea in Informatica AA 2007/08 Programmazione, M.A. Alberti Prova scritta – IV appello, 11 luglio 2008

Cognome Nome

Matricola

1

Stabilire qual’è l’output del seguente codice Java, supponendo che sia stata dichiarata la variabile int i:

for (i = 1; i < 10; i++) { if (i%3 == 0) break;

System.out.println (i);

}

System.out.println (i);

for (i = 1; i < 10; i++) { if (i%3 == 0) continue;

System.out.println (i);

}

System.out.println (i);

for (i = 1; i < 10; i++) {

if (i%3 == 0) System.exit(0);

System.out.println (i);

}

System.out.println (i);

2

Supponete sia definita una classe BarcaVela derivata dalla classe Barca e supponete che quest’ultima classe abbia definito i metodi pubblici velocitàNodi() e accendiMotori().

Un oggetto di classe BarcaVela risponde ai metodi velocitàNodi() e accendiMotori()?

SI NO

Questi metodi dovranno eseguire le stesse azioni sia per gli oggetti di classe BarcaVela sia per gli oggetti di classe Barca, sempre e comunque? SI NO Come si chiama in Java il concetto di specializzazione dei metodi?

Se per la classe BarcaVela è stato definito il metodo alzareRanda(), questo può essere

invocato su un oggetto di classe Barca? SI NO

3

Data la classe seguente con i costruttori elencati:

class Dipendente { private String nome;

Dipendente(){

nome = new String();

}

Dipendente(String unNome) { nome = unNome;

} }

E’ possibile al di fuori della classe cambiare il valore del membro nome di un oggetto già

istanziato? SI NO

(2)

AA 2007/08 Programmazione, Prof. M.A. Alberti IV appello, 11 luglio 2008

2 Come? (scrivere le istruzioni necessarie)

Per estendere la classe con una specializzazione, introduciamo la sottoclasse Impiegato, completare quindi il codice seguente opportunamente:

class Impiegato extends Dipendente { private int settore;

// 1, 2, 3 ad esempio Impiegato() {

settore = 1;

// valore di default

}

Impiegato (String unNome, int unSettore) {

settore = unSettore;

} }

Supponendo di aver eseguito l’istruzione: Impiegato imp = new Impiegato();

E’ possibile accedere al campo nome della superclasse? SI NO Per accedere al campo nome è corretta l’espressione: imp.nome ? SI NO

Esistono altri modi? SI NO

Definire il codice di possibili alternative, per accedere al campo:

In generale, in una sottoclasse è possibile accedere direttamente ad un campo privato di

un’istanza della superclasse? SI NO

In una sottoclasse è possibile usare un metodo privato della superclasse? SI NO

4

Scrivere il metodo init che inizializza con numeri dispari un array di interi di dimensione MAX, passato come parametro. L’array inizializzato andrà riportato all’ambiente chiamante. A scelta si usi un ciclo for o un ciclo while:

public int[] init(int[] a) {

}

5

Scrivere un metodo per rimuovere un elemento in posizione data da un array che verrà quindi riportato all’ambiente chiamante modificato. Sia la posizione dell’elemento da rimuovere sia l’array sono passati come parametri. Per rimuovere l’elemento si deve procedere ad eseguire lo slittamento di una posizione di tutti i valori dell’array dalla posizione data alla fine dell’array. Alla

(3)

AA 2007/08 Programmazione, Prof. M.A. Alberti IV appello, 11 luglio 2008

3 fine del processo la posizione finale e quella precedente risultano uguali e quindi quella finale viene posta al valore di defualt 0. Si supponga cha l’array sia un array di interi. Ad esempio la rimozione dell’elemento 2 dall’array [23 45 1 65 87] genera l’array [23 45 65 87 0]

int[] rimuovi(int i, int[] a) {

}

6

Utilizzando la classe StringTokenizer implementare un ciclo for necessario per inizializzare l’array di stringhe frase. Ad esempio: se in input è data la frase “questo è un esame” allora l’array frase dovrà essere inizializzato a [questo, è, un, esame].

System.out.print("input una riga di testo: ");

String riga = Keyboard.readString();

StringTokenizer processore_di_riga = new ;

String [] frase = new ;

for

7

La classe Numeri ha un membro d’istanza numeri di tipo array di interi di lunghezza MAX. Si scrivano i metodi per inizializzare l’array e per contare i valori pari archiviati. Cioè si scrivano i metodi:

int[] init() che inizializza un array con numeri pseudo-casuali compresi tra 1 e 10 (estremi inlcusi) e lo riporta all’ambiente chiamante

int conta() che conta i numeri pari contenuti nell’array membro d’istanza.

class Numeri {

final int MAX = 20;

private int [] numeri;

(4)

AA 2007/08 Programmazione, Prof. M.A. Alberti IV appello, 11 luglio 2008

4 8

Per valutare una espressione aritmetica scritta in notazione postfissa, si usa una struttura dati di tipo Last In First Out. Disegnate lo stato dello stack utilizzato per valutare l’espressione quando si sia arrivati a scandire l’espressione fino al token 3:

1 5 + 2 * 3 1 + / ^

. stack

direzione

crescita

token letto

Riferimenti

Documenti correlati

Inoltre, durante l’inizializzazione per ciascun valore generato, venga stampato il messaggio maggiore, uguale o minore di un valore di controllo archiviato

Questi metodi dovranno eseguire le stesse azioni sia per gli oggetti di classe BarcaVela sia per gli oggetti di classe Barca, sempre e comunque?. SI NO Come si chiama in Java

Occorre definire una struttura dati per memorizzare i numeri già estratti; ad esempio un array le cui posizioni corrispondono ai numeri estraibili e il valore

Definite quindi la classe Tombola, che contiene il campo estratti ed il metodo estrai_prossimo(), che userà la classe Random del pacchetto java.util, tiene aggiornato

Franco

Applicando il metodo di Fourier-Motzkin, risolvere il seguente problema di Programmazione Lineare, esibendo il valore della soluzione ottima (e delle variabili)

Si chiede di formulare come problema di PL il problema di pianificare gli acquisti mensili di olio grezzo e la miscela di alta qualità da produrre in modo da massimizzare

I personal computers nelle loro varie forme sono icone dell’Era dell’Informazione, tuttavia i computers trovati in molte apparecchiature (dai lettori