• 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 = {"gggfe","kjjt","vv"} e c = 3;

2) b = {"aabccb","krkrr"} e c = 4.

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

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

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) A2.m("fg","cde",1);

2) A2.m("rdevd","reevdd",3).

Esercizio 3. Scrivere un metodo che, dati un array bidimensionale a di interi e due interi v e k (k > 0), restituisce true se in a esistono almeno k occorrenze del valore v, altrimenti il metodo restituisce false. Ad esempio, dati a = {{-1,3,2},{3,3},{-2,6,3,3}}, v = 3 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 insegnamento universitario pu`o essere caratterizzato tramite il nome (Es.

Laboratorio di Programmazione), il settore scientifico-disciplinare (Es. INF/01), il numero di crediti (Es. 6) ed il nome del docente (Es. M. Nesi). Scrivere una classe InsegnamentoUniv 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 nome del docente di un insegnamento ed un metodo che restituisce una stringa che descrive un insegnamento (Es. "Laboratorio di Programmazione, 6 cfu INF/01, Docente M. Nesi").

Esercizio 6. Un insegnamento a contratto `e un insegnamento universitario caratterizzato anche dal compenso e dall’anno di durata del contratto. Scrivere una classe InsegnContratto con gli opportuni costruttori (ed opportune eccezioni in caso di parametri numerici non cor- retti) ed i metodi che restituiscono i valori delle variabili istanza. Infine, definire un metodo che restituisce una stringa che descrive un insegnamento a contratto.

Esercizio 7. Un corso di laurea pu`o essere caratterizzato dal nome (Es. Informatica), il tipo (Es. Base), l’universit`a in cui viene erogato (Es. L’Aquila) e l’elenco degli insegnamenti previsti. Scrivere una classe CorsoDiLaurea, il cui costruttore imposta il numero massimo di insegnamenti (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 insegnamento all’elenco di un corso di laurea (il metodo deve sollevare eventuali eccezioni);

- un metodo che cancella un insegnamento dall’elenco di un corso di laurea;

- un metodo che restituisce l’elenco degli insegnamenti “scoperti” di un corso di laurea, ovvero gli insegnamenti non ancora assegnati ad alcun docente.

Riferimenti

Documenti correlati

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

■ 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

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.

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