• Non ci sono risultati.

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
2
0
0

Testo completo

(1)

Modulo di Laboratorio di Programmazione I (CdL Informatica) a.a. 2008-2009

Prova Totale - 28 Gennaio 2009

NOME COGNOME MATRICOLA

CORSO DI LAUREA

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

Nota Bene: Il testo del compito deve essere riconsegnato insieme al proprio elaborato scritto. 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 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))

p = true;

} i++;

}

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

1) b = {"aaa","kk","bbabb","ppp"};

2) b = {"qq","w","ggg"}.

Esercizio 2. Scrivere un metodo statico iterativo che, dato un array bidimensionale a di stringhe ed un carattere c, restituisce un array monodimensionale b di stringhe tale che b[i] `e la prima stringa di a[i] (considerata da sinistra a destra) che inizia con c. Se in a[i] non esistono stringhe il cui primo carattere `e c, allora b[i] vale "-". Ad esempio, dati a = {{"ba","acd","af"},{"gf","hgf"},{"aw","s","avv","gh"}} e c = ’a’, il metodo restituisce l’array b = {"acd","-","aw"}. Si assuma che ogni stringa nell’array a abbia lunghezza maggiore o uguale ad 1.

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

Esercizio 4. Un atleta pu`o essere caratterizzato da nome, cognome, et`a, sesso, sport pra- ticato e nome della societ`a sportiva presso la quale `e tesserato. Scrivere una classe Atleta con un opportuno costruttore ed i metodi che restituiscono i valori delle variabili istanza.

Inoltre, definire un metodo per modificare il nome della societ`a sportiva ed un metodo che restituisce una stringa che descrive un atleta.

(2)

Esercizio 5. Un atleta a livello agonistico `e un atleta caratterizzato anche dal tipo di gara a cui partecipa e dal mese ed anno in cui ha effettuato l’ultimo controllo medico. Scrivere una classe AtletaAgonistico con un opportuno costruttore ed i metodi che restituiscono i valori delle variabili istanza. Inoltre, definire un metodo per modificare il tipo di gara ed un metodo che restituisce una stringa che descrive un atleta a livello agonistico.

Esercizio 6. 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 cui costruttore imposta il numero massimo di atleti che possono essere tesserati da una societ`a.

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

- un metodo che, dato un atleta a, aggiunge a nell’elenco dei tesserati di una societ`a, a condizione che il nome della societ`a coincida con quello che compare in a;

- un metodo che, dato un intero m, restituisce l’elenco di tutti gli atleti tesserati per una societ`a, la cui et`a `e minore di m;

- un metodo che, data una stringa s che denota uno sport, restituisce l’elenco degli atleti tesserati per una societ`a che praticano s a livello agonistico.

Esercizio 7. Siano date le seguenti classi:

class A {

private int r;

public A (int k) { this.r = k;

}

public int leggiR() { return this.r;

}

public int m (A a) { if (this.r % a.r == 0)

return this.r / a.r;

else

return this.r * a.r;

} }

class B extends A { private String t;

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

this.t = s;

}

public String leggiT() { return this.t;

}

public int m (A a) {

if (this.t.length() > this.leggiR()) return super.m(a)-this.t.length();

else

return super.m(a)+this.t.length();

} } Dati gli oggetti seguenti:

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

A obj2 = new A (12);

B obj3 = new B (4, "prova");

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

1) obj1.m(obj3); 2) obj2.m(obj1); 3) obj3.m(obj2).

Riferimenti

Documenti correlati

L’inganno e l’illusione hanno sempre caratterizzato, per quanto ne sappiamo, la realtà costituita nel corso della sua storia e la mistificazione non è una

• Durante lo svolgimento della prova, non si e’ autorizzati ad uscire dall’aula (salvo che per motivi di salute o ci si ritira, in entrambi i casi si abbandona l’aula).

• La valutazione dello svolgimento degli esercizi verra’ utilizzata per la valutazione finale, in sede di esame finale del corso.. • Consegnare i seguenti fogli stampati e

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

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

&#34;875 MG + 125 MG COMPRESSE RIVESTITE CON FILM&#34; 12 COMPRESSE IN STRIP AL FIDIA FARMACEUTICI S.P.A... P.A.: Nifedipina