• Non ci sono risultati.

La soluzione per l’Esercizio 3 non deve contenere alcuna istruzione di ciclo (for, while, etc

N/A
N/A
Protected

Academic year: 2021

Condividi "La soluzione per l’Esercizio 3 non deve contenere alcuna istruzione di ciclo (for, while, etc"

Copied!
2
0
0

Testo completo

(1)

Laboratorio di Programmazione I (CdL Informatica) &

Laboratorio di Programmazione (CdL Matematica) a.a. 2005-2006

Recupero - 20 Luglio 2006

NOME COGNOME MATRICOLA

CORSO DI LAUREA

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’Esercizio 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].charAt(j) == a[i].charAt(j+1)) {

k++;

} }

if (k > 0) { p = true;

} i++;

}

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

1) b = {"paperino","pippo","minni"};

2) b = {"fiore","stelo","corolla","petalo"}.

Esercizio 2. Scrivere un metodo che, dati due array monodimensionali a e b di interi, restituisce true se per ogni elemento b[i] di b esiste almeno un elemento a[j] di a tale che a[j] divide b[i]. Ad esempio, dati a = {2,3} e b = {6,3,8,10,2}, il metodo restituisce true, mentre se b = {6,3,5,2}, allora il metodo restituisce false.

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

Esercizio 4. Una strada che connette due citt`a pu`o essere caratterizzata tramite il nome delle due citt`a connesse, il numero di chilometri ed il limite massimo di velocit`a imposto sulla maggior parte della strada. Scrivere una classe Strada con gli opportuni costruttori ed i metodi che restituiscono i valori delle variabili istanza. Inoltre, definire un metodo per modificare il limite massimo di velocit`a ed un metodo che restituisce una stringa che descrive una strada.

(2)

Esercizio 5. Un’autostrada `e una strada caratterizzata anche dal nome (Es. A24) e dal costo del pedaggio. Scrivere una classe Autostrada con gli opportuni costruttori ed i metodi che restituiscono i valori delle variabili istanza. Infine, definire un metodo che restituisce una stringa che descrive un’autostrada ed un metodo che, date due autostrade che condividono una delle citt`a connesse, restituisce il costo totale del pedaggio.

Esercizio 6. Una societ`a che gestisce strade pu`o essere caratterizzata dal nome, la citt`a della sede legale, il nome del presidente e l’insieme delle strade gestite. Scrivere una classe Societ`a, il cui costruttore imposta il numero massimo di strade che possono essere gestite.

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

- un metodo che aggiunge una strada ad una societ`a;

- un metodo che, dati un intero k ed una stringa s, restituisce l’elenco delle strade lunghe almeno k chilometri e che connettono la citt`a s con altre citt`a;

- un metodo che, dato un intero k, restituisce true se una societ`a gestisce almeno k autostrade.

Esercizio 7. Siano date le seguenti classi:

class A {

private String m;

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

}

public String getM() { return this.m;

}

public String conc (A a) {

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

else

return a.m + this.m;

} }

class B extends A { private int v;

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

this.v = k;

}

public int getV() { return this.v;

}

public String conc (A a) { return this.v + super.conc(a);

} }

Dato il seguente frammento di codice:

A obj1 = new B ("alba",6);

B obj2 = new B ("mattino",10);

A obj3 = new A ("sera");

determinare qual `e il valore restituito dalle seguenti chiamate di metodo:

1) obj1.conc(obj2);

2) obj3.conc(obj1);

3) obj2.conc(obj3).

Riferimenti

Documenti correlati

 Le giaciture di due rette parallele

Esibire il prodotto di tre matrici che diagonalizza la matrice di f nelle basi canoniche (senza calcolare il prodotto) e scrivere la matrice risultante.. Calcolare il seno

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

Inoltre, definire un metodo per modificare l’anno di pubblicazione ed il numero dell’edizione, un metodo equals che restituisce true se due libri sono uguali (altrimenti

Una societ`a sportiva pu`o essere caratterizzata tramite il nome, l’indirizzo, il nome del responsabile e l’elenco degli atleti tesserati. Scrivere una classe SocSportiva, il

Inoltre, definire un metodo per modificare il prezzo, un metodo equals che verifica se due articoli sono uguali ed un metodo che restituisce una stringa che descrive un articolo

Inoltre, definire un metodo per modificare il nome della via, un metodo per modificare lo status di via pedonale o meno, un metodo che restituisce una stringa che descrive una

Inoltre, definire un metodo per modificare il nome del docente titolare di un corso, un metodo equals che restituisce true se due corsi sono uguali (altrimenti restituisce false) ed