• 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 - 24 Marzo 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 = v; 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) {

k--;

if (k <= 0) { q = false;

k = v;

} } j++;

} }

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

1) b = {"capp","pluto","pippo"}, c = ’p’ e v = 2;

2) b = {"SID","MFI","LP1","BD","ASD"}, c = ’D’ e v = 3.

Esercizio 2. Scrivere un metodo che, dati un array monodimensionale a di stringhe ed un array monodimensionale b di interi (tali che la lunghezza di a `e uguale alla lunghezza di b e tutti gli elementi di b sono positivi), restituisce un array bidimensionale di stringhe s tale che l’array s[i] `e costituito da b[i] stringhe tutte uguali alla stringa a[i]. Ad esem- pio, dati a = {"cav","amast","lics"} e b = {4,2,3}, il metodo restituisce l’array s = {{"cav","cav","cav","cav"},{"amast","amast"},{"lics","lics","lics"}}.

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

Esercizio 4. Un calciatore pu`o essere descritto tramite nome, cognome, nazionalit`a, et`a e ruolo. Scrivere una classe Calciatore con gli opportuni costruttori ed i metodi che restitui- scono i valori delle variabili istanza. Inoltre, definire un metodo per modificare il ruolo ed un metodo che restituisce una stringa che descrive un calciatore.

(2)

Esercizio 5. Un calciatore convocato nella squadra nazionale `e caratterizzato anche dal numero di presenze in nazionale, dal numero di goal segnati e dal numero di ammonizioni ricevute in partite della squadra nazionale. Scrivere una classe ConvocNazionale 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 calciatore convocato nella squadra nazionale.

Esercizio 6. Una squadra di calcio pu`o essere caratterizzata dal nome, la citt`a, il nome del presidente, il nome dell’allenatore e l’elenco dei suoi calciatori. Scrivere una classe SquadraCalcio, il cui costruttore imposta il numero massimo dei calciatori di una squadra.

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

- un metodo che aggiunge un dato calciatore c ad una squadra;

- un metodo che rimuove un dato calciatore c da una squadra;

- un metodo che restituisce true se in una squadra esiste almeno un giocatore di una data nazionalit`a s, altrimenti il metodo restituisce false;

- un metodo che restituisce l’elenco dei giocatori di una squadra che sono stati convocati in nazionale almeno k volte.

Esercizio 7. Siano date le seguenti classi:

class A {

private int val;

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

}

public int getVal() { return this.val;

}

public int size (A a) { if (this.val > a.val)

return this.val * a.val;

else

return this.val + a.val;

} }

class B extends A { private int num;

public B (int k, int n) { super(k);

this.num = n;

}

public int getNum() { return this.num;

}

public int size (A a) {

return super.size(a) - this.num;

} }

Dato il seguente frammento di codice:

A a1 = new A (3);

A a2 = new B (5,4);

B b1 = new B (7,8);

a1 = a2;

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

1) a1.size(b1);

2) a2.size(a1);

3) b1.size(a2).

Riferimenti

Documenti correlati

Per poter fare il giro della morte due volte deve avere velocit` a v 0 (ricavata nel punto 1) dopo avere attraversato per due volte il tratto scabro di lunghezza L, una prima

Poich´ e l’attrito tra il carrello e il binario ` e trascurabile, la risultante delle forze esterne agenti sul sistema carrello-persona ` e nulla lungo la componente parallela

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

Un curriculum vitae (cv) pu`o essere caratterizzato dal nome della persona, il luogo e anno di nascita, il titolo di studio posseduto e l’elenco delle borse di studio

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

Inoltre, definire un (unico) metodo per cambiare il nome della scuola, la classe e la sezione frequentata, ed un metodo che restituisce una stringa che descrive un alunno.

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.