• Non ci sono risultati.

Si consideri il seguente frammento di codice in Java: String[] a = b

N/A
N/A
Protected

Academic year: 2021

Condividi "Si consideri il seguente frammento di codice in Java: String[] a = b"

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 - 24 Settembre 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;

boolean q = true;

for (i=0; i<a.length; i++) { j = 0;

q = true;

while (j < a[i].length() && q) { if (a[i].charAt(j) == c) {

q = !q;

} j++;

} }

Determinare il valore finale delle variabili i, j e q nei seguenti casi:

1) b = {"topo","gatto","asino","tigre"} e c = ’t’;

2) b = {"tigre","pantera","leone"} e c = ’r’.

Esercizio 2. Scrivere un metodo statico iterativo che, dati un array bidimensionale a di stringhe e due interi k ed r (con k, r > 0), restituisce true se in ogni riga a[i] di a esistono almeno k elementi la cui lunghezza `e uguale ad r. Ad esempio, dati

a= {{"pera","banana","mela"},{"alfa","beta"},{"topo","gatto","cane","orso"}}, k = 2 ed r = 4, il metodo restituisce true.

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, autori, 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 modifica il titolo di un libro ed un metodo che restituisce una stringa che descrive un libro.

Esercizio 5. Un libro scolastico `e un libro caratterizzato anche dal tipo di scuola in cui

`e utilizzato (es. primaria, secondaria, etc.), la materia trattata, l’essere gratuito o meno e l’essere usato o meno. Scrivere una classe LibroScolastico con un opportuno costruttore ed i metodi che restituiscono i valori delle variabili istanza. Inoltre, definire un metodo che aggiorna un libro scolastico da nuovo ad usato ed un metodo che restituisce una stringa che descrive un libro scolastico.

Esercizio 6. Uno scolaro pu`o essere caratterizzato da nome, cognome, scuola frequentata, classe, sezione e l’elenco dei libri utilizzati dallo scolaro. Scrivere una classe Scolaro, il cui costruttore imposta il numero massimo di libri che possono essere utilizzati da uno scolaro.

Oltre ai metodi che restituiscono i valori delle variabili istanza, definire:

- un metodo che aggiunge un libro nell’elenco dei libri di uno scolaro;

- 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 m che denota una materia, restituisce l’elenco dei libri scolastici di uno scolaro che trattano la materia m.

Esercizio 7. Siano date le seguenti classi:

class A {

private String s;

public A (String t) { this.s = t;

}

public String getS() { return this.s;

}

public String m (A a) {

if (this.s.length()==a.s.length()) return a.s + this.s;

else

return this.s + a.s;

} }

class B extends A { private int n;

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

this.n = k;

}

public int getN() { return this.n;

}

public String m (A a) { return super.m(a) + this.n;

} }

Dato il seguente frammento di codice:

A a = new A ("hello");

B b = new B ("ciao",7);

String x = b.m(a);

String y = a.m(a);

a = b;

String z = a.m(b);

determinare qual `e il valore 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

Le due classi, oltre ad ereditare i metodi della classe Contenitore di animali, hanno metodi che restituiscono l’habitat (classe Gabbia) ed il tipo di acqua e il flusso

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

Le variabili istanza sono il veicolo assicurato, identificato dalla targa (ad esempio, “CA 075 DS”), ed il valore assicurato RC.. Una polizza auto incendio e furto si differenzia da

- 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.

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

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.