• 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 - 22 Settembre 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 q = false;

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

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

k++;

if (k > v) { q = true;

k = 0;

} } j++;

} }

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

1) b = {"lola","lilli"}, c = ’l’ e v = 3;

2) b = {"sbafo","fifa","buffo"}, c = ’f’ e v = 4.

Esercizio 2. Scrivere un metodo che, dati un array bidimensionale a di interi ed un intero k, restituisce un array monodimensionale b di booleani tale che l’elemento b[i] di b vale true se nella riga a[i] di a esiste almeno un intero maggiore di k, altrimenti b[i] vale false. Ad esempio, dati a = {{3,5,7,9},{4,-1},{-9,21,5}} e k = 6, il metodo restituisce l’array b

= {true,false,true}.

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

Esercizio 4. Una borsa di studio pu`o essere caratterizzata tramite il nome del beneficiario, l’ente che eroga la borsa, la durata (espressa in numero di mesi) e la rata mensile. Scrivere una classe BorsaStudio con gli opportuni costruttori ed i metodi che restituiscono i valori delle variabili istanza. Inoltre, definire un metodo per modificare la rata mensile ed un metodo che restituisce una stringa che descrive una borsa di studio.

(2)

Esercizio 5. Un assegno di ricerca pu`o essere considerato come una borsa di studio carat- terizzata anche dalla tematica, su cui sar`a svolta la ricerca, e dal dipartimento che ne fa richiesta. Scrivere una classe AssegnoRicerca 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 assegno di ricerca ed un metodo che, dati due assegni di ricerca, restituisce true se il dipartimento richiedente `e lo stesso, altrimenti restituisce false.

Esercizio 6. 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 usufruite.

Scrivere una classe CV, il cui costruttore imposta il numero massimo di borse di studio che una persona pu`o ottenere. Oltre ai metodi che restituiscono i valori delle variabili istanza, definire i seguenti metodi:

- un metodo che aggiunge una borsa di studio ad un cv controllando che il nome del benefi- ciario della borsa coincida con il nome della persona nel cv;

- un metodo che restituisce il numero totale di mesi nei quali in un cv si `e usufruito di una qualche borsa di studio;

- un metodo che, data una stringa c, restituisce l’elenco delle borse di studio in un cv che sono state erogate dall’ente c.

Esercizio 7. Siano date le seguenti classi:

class A {

private int x;

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

}

public int getX() { return this.x;

}

public int m (A a) { if (this.x >= a.x)

return this.x + a.x;

else

return this.x - a.x;

} }

class B extends A { private String s;

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

this.s = t;

}

public String getS() { return this.s;

}

public int m (A a) { return

super.m(a) + this.s.length();

} }

Dato il seguente frammento di codice:

A obj1 = new A (5);

B obj2 = new B (3,"pallone");

A obj3 = new B (-2,"rete");

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

1) obj1.m(obj2);

2) obj3.m(obj1);

3) obj2.m(obj3).

Riferimenti

Documenti correlati

E-mail POSIZIONE CASSA GEOMETRIA. 1984

 Febbraio 2013–Febbraio 2014: Tirocinio obbligatorio non retribuito per la Laurea Specialistica in Biotecnologie Mediche e Medicina Molecolare, sotto la supervisione

Amministrazione ENTE NAZIONALE PER L'AVIAZIONE CIVILE - ENAC Incarico attuale Responsabile Direzione Aeroportuale Calabria.. Numero telefonico dell’ufficio 0968.414345

· Dal 1978 al 1982 medico frequentatore del reparto della I clinica Ostetrica e Ginecologica dell’Università degli Studi di Roma “La Sapienza”, diretto dal

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