• Non ci sono risultati.

Si consideri il seguente frammento di codice in Java: String

N/A
N/A
Protected

Academic year: 2021

Condividi "Si consideri il seguente frammento di codice in Java: String"

Copied!
2
0
0

Testo completo

(1)

Modulo di Laboratorio di Programmazione I (CdL Informatica) &

Corso di Laboratorio di Programmazione (CdL Matematica) a.a. 2007-2008

Recupero - 21 Febbraio 2008

NOME COGNOME MATRICOLA

CORSO DI LAUREA

Scrivere in stampatello Nome, Cognome e Matricola su ogni foglio consegnato.

Si ricorda di riconsegnare il testo del compito insieme al proprio elaborato scritto.

Nota Bene: Le soluzioni degli esercizi non devono contenere alcun metodo main n´e alcuna istruzione di stampa n´e istruzioni switch, break, continue, etc. La soluzione per l’Eserci- zio 3 non deve contenere alcuna istruzione di ciclo (for, while, etc.). La non osservanza di tali requisiti comporter`a l’annullamento della prova scritta dello studente.

Esercizio 1. Si consideri il seguente frammento di codice in Java:

String[][] a = b;

int i = 0, j = 0, k = 0;

boolean p = false;

while (i<a.length && !p) {

for (j=0; j<a[i].length-1; j++) {

if (a[i][j].length() >= a[i][j+1].length()) { p = true;

} }

if (p) { k = i;

} i++;

}

Determinare il valore finale delle variabili i, j, k e p per i seguenti valori di b:

1) b = {{"bip","tick"},{"lp","lpr","lprm"},{"ack","dvd"}};

2) b = {{"alfa"},{"ro","gamma","beta"}}.

Esercizio 2. Scrivere un metodo statico iterativo che, dato un array bidimensionale a di stringhe, restituisce un array monodimensionale b di stringhe tale che b[i] `e la stringa ottenuta concatenando le stringhe a[i][j] che sono uguali alla concatenazione delle stringhe adiacenti a[i][j−1] e a[i][j+1]. Se nella riga a[i] non esistono tali stringhe, b[i] `e la stringa vuota. Esem- pio: dato a = {{"a","abc","bc"},{"afd","ro","roga","ga","gaz","z"},{"bd","b"}}, il metodo restituisce l’array b = {"abc","rogagaz",""}.

Esercizio 3. Scrivere una versione ricorsiva del metodo definito per risolvere l’Esercizio 2.

(2)

Esercizio 4. Un libro pu`o essere caratterizzato da titolo, nome dell’autore, casa editrice ed anno di pubblicazione. Scrivere una classe Libro con un opportuno costruttore ed i metodi che restituiscono i valori delle variabili istanza. Definire inoltre un metodo che restituisce una stringa che descrive un libro.

Esercizio 5. Un libro in prestito `e un libro caratterizzato anche dal nome della biblioteca da cui `e stato preso in prestito e la durata del prestito (espressa in numero di giorni). Scrivere una classe LibroInPrestito con un opportuno costruttore ed i metodi che restituiscono i valori delle variabili istanza. Inoltre, definire un metodo per modificare la durata del prestito ed un metodo che restituisce una stringa che descrive un libro in prestito.

Esercizio 6. Uno scaffale-libreria pu`o essere caratterizzato da altezza, larghezza, profondit`a, materiale di costruzione e dall’elenco di libri in esso contenuti. Scrivere una classe Libreria, il cui costruttore imposta il numero massimo di libri che pu`o contenere. Oltre ai metodi che restituiscono i valori delle variabili istanza, definire i seguenti metodi:

- un metodo che, dato un libro b, controlla se b `e presente in una libreria;

- un metodo che, dato un libro b, inserisce b in una libreria a condizione che b non sia gi`a presente;

- un metodo che restituisce l’elenco dei libri in prestito presenti in una libreria.

Esercizio 7. Siano date le seguenti classi:

class A {

private int val;

public A (int v) { this.val = v;

}

public int leggiVal() { return this.val;

}

public int m (A a) {

if (this.val % a.val == 0) return this.val - a.val;

else

return this.val + a.val;

} }

class B extends A { private String s;

public B (int v, String t) { super(v);

this.s = t;

}

public String leggiS() { return this.s;

}

public int m (A a) {

return super.m(a) * this.s.length();

} }

Dato il seguente frammento di codice:

A a = new A (10);

B b = new B (5,"esame");

int x = a.m(b);

a = new B (6,"totale");

int y = a.m(b);

int z = b.m(a);

determinare qual `e il valore finale delle variabili x, y e z.

Riferimenti

Documenti correlati

Tra i metodi della nuova classe, oltre a quelli che restituiscono i valori delle variabili istanza, definire un metodo etichetta che restituisce le informazioni relative ad

Tra i metodi della nuova classe, oltre a quelli che restituiscono i valori delle variabili istanza, definire un metodo etichetta che restituisce le informazioni relative ad

La presentazione della tesi di un laureando davanti ad una commissione di laurea pu`o essere descritta tramite il nome e la matricola del laureando, il titolo della tesi, il nome

La sessione di una conferenza pu`o essere caratterizzata dal nome della con- ferenza, dal numero di sessione, dal nome del coordinatore della sessione e dall’elenco delle

Usando le classi del precedente esercizio, scrivere una semplice classe Agenzia Assicurativa, dove ciascun oggetto della classe `e caratterizzato dal nome dell’agenzia e da un elenco

- un metodo che, data una stringa s che denota il nome di una casa editrice, restituisce l’elenco dei quotidiani venduti da un’edicola che sono pubblicati da s.

- un metodo che, data una stringa s che denota un titolo, restituisce true se un libro con titolo s compare nell’elenco dei libri di uno scolaro;. - un metodo che, data una stringa

Inoltre, definire un metodo che modifica il mezzo di trasporto ed il prezzo per persona, ed un metodo che restituisce una stringa che descrive un soggiorno con trasporto.