• Non ci sono risultati.

Laboratorio di Programmazione I (CdL Informatica) & Laboratorio di Programmazione (CdL Matematica) a.a. 2004-2005

N/A
N/A
Protected

Academic year: 2021

Condividi "Laboratorio di Programmazione I (CdL Informatica) & Laboratorio di Programmazione (CdL Matematica) a.a. 2004-2005"

Copied!
2
0
0

Testo completo

(1)

Laboratorio di Programmazione I (CdL Informatica) &

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

Prova Totale - 10 Dicembre 2004

NOME COGNOME MATRICOLA

CORSO DI LAUREA

Esercizio 1. Si consideri il seguente frammento di codice in Java:

String[] a = b;

int i = 0, j = 1, k = 0; boolean p = false;

while (i < a.length && !p) { j = 1;

while (j < a[i].length()) {

if (a[i].charAt(j) == a[i].charAt(j-1)) k++;

j++;

}

if (k >= c) p = true;

i++;

}

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

1) b = {"aabcccb","kkrkkrr"} e c = 5;

2) b = {"effffe","ac","bb"} e c = 2.

Esercizio 2. Si consideri il seguente frammento di codice in Java:

class Exc1 extends Exception { } class Exc2 extends Exception { } public class A1 {

public static int m (String s, String t, int i) throws Exc1,Exc2 { int l1 = s.length(), l2 = t.length();

try {

if (i>0 && i<l1 && i<l2) {

if (s.charAt(i) == t.charAt(i))

return m(s.substring(0,i),t.substring(0,i),i-1);

else throw new Exc1();

}

else throw new Exc2();

}

catch (Exc1 e) {

if (s.charAt(i-1) == t.charAt(i-1)) return i-1;

else throw e;

}

(2)

catch (Exc2 e) { if (i==0) throw e;

else return i;

} } }

Determinare il valore restituito dalle seguenti chiamate:

1) A1.m("abca","bbcdd",2);

2) A1.m("ab","cde",1).

Esercizio 3. Scrivere un metodo che, dati un array bidimensionale a di caratteri, un carat- tere c ed un intero k > 0, restituisce true se in a esistono almeno k occorrenze del carattere c, altrimenti il metodo restituisce false. Ad esempio, dati a = {{’r’,’b’,’b’},{’b’,’v’}, {’w’,’q’,’b’,’b’}}, c = ’b’ e k = 4, il metodo restituisce true. Il metodo deve sollevare opportune eccezioni nel caso in cui il valore di k non sia positivo.

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

Esercizio 5. Un articolo in vendita pu`o essere caratterizzato tramite il nome (Es. latte), la marca (Es. Aterno), il peso (Es. 500 ml) ed il prezzo (Es. 0.50 euro). Scrivere una classe Articolo con gli opportuni costruttori (ed opportune eccezioni in caso di parametri numerici non corretti) ed i metodi che restituiscono i valori delle variabili istanza. Inoltre, definire un metodo per modificare il prezzo di un articolo ed un metodo che restituisce una stringa che descrive un articolo (Es. "latte Aterno, 500 ml, 0.50 euro").

Esercizio 6. Un articolo scontato `e un articolo caratterizzato anche dallo sconto (Es.

30%) ed il numero di giorni in cui tale sconto `e valido (Es. 15 giorni). Scrivere una classe ArticoloScontatocon gli opportuni costruttori (ed opportune eccezioni in caso di parametri numerici non corretti) ed i metodi che restituiscono i valori delle variabili istanza. Infine, definire un metodo che calcola il prezzo di un articolo scontato ed un metodo che restituisce una stringa che descrive un articolo scontato.

Esercizio 7. Un supermercato pu`o essere caratterizzato dal nome, l’indirizzo, il nome del suo direttore e l’elenco di articoli in vendita. Scrivere una classe Supermercato, il cui costruttore imposta il numero massimo di articoli in vendita (con le opportune eccezioni in caso di parametri numerici non corretti). Oltre ai metodi che restituiscono i valori delle variabili istanza, definire i seguenti metodi:

- un metodo che aggiunge un articolo all’elenco di un supermercato (il metodo deve sollevare eventuali eccezioni);

- un metodo che cancella un articolo dall’elenco di un supermercato;

- un metodo che restituisce l’elenco degli articoli di un supermercato aventi marca m ed il cui prezzo `e minore di k euro.

Riferimenti

Documenti correlati

dott.ssa Sabrina Senatore DMI - Universita degli Studi di Salerno.. siano in ordine crescente (senza

Definire poi i metodi che restituiscono i valori delle variabili istanza, un metodo per modificare il curatore delle note, un metodo che inserisce una tipologia nell’elenco di

Scrivere un metodo che, dati un array bidimensionale di stringhe a ed un array monodimensionale di interi b, restituisce un array bidimensionale di stringhe c tale che la riga

Inoltre, definire un metodo che modifica il numero di abitanti, un metodo che modifica il nome del sindaco ed un metodo che, dato un intero k &gt; 0, restituisce true se un comune

Definire inoltre un metodo che modifica la presenza di pile nel giocattolo ed un metodo che restituisce una stringa che descrive un oggetto della classe GiocattoloPile.

■ I diagrammi di classe (Class Diagram) sono una notazione (grafica) per la descrizione dei tipi degli oggetti (classi) che fanno parte di un sistema ed i tipi di relazioni

La soluzione a questo problema consiste nel- l’arricchire la chiusura, facendo in modo di ri- cordarsi in essa non solo gli argomenti ed il cor- po della funzione che essa

Operazioni sul tipo di dato reale Marco Lapegna – Laboratorio di Programmazione 4. Rappresentazione