• Non ci sono risultati.

Si consideri il seguente frammento di codice in Java: int

N/A
N/A
Protected

Academic year: 2021

Condividi "Si consideri il seguente frammento di codice in Java: int"

Copied!
2
0
0

Testo completo

(1)

Modulo di Laboratorio di Programmazione I (CdL Informatica) &

Corso di Laboratorio di Programmazione (CdL Matematica) a.a. 2007-2008

Recupero - 17 Giugno 2008

NOME COGNOME MATRICOLA

CORSO DI LAUREA

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

Si ricorda di riconsegnare il testo del compito insieme al proprio elaborato scritto.

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’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:

int[][] a = b;

int i = 0, j = 0, m = 0;

boolean p = false;

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

while (j<a[i].length-1 && !p) { if (a[i][j] % a[i][j+1] == 0) {

p = true;

} j++;

}

if (p) { m++;

p = false;

} }

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

1) b = {{-3,4,2,5},{5,-7,2,4,-3},{8,-4,2,-1}};

2) b = {{7,-3,11,4,1},{-2,5,10,2,1,-6}}.

Esercizio 2. Scrivere un metodo statico iterativo che, date due stringhe s e t, restituisce la stringa ottenuta concatenando i singoli caratteri di s e t a partire dal primo carattere di s e alternando caratteri di s e t. Nel caso in cui le stringhe in ingresso siano una pi´u lunga dell’altra, la parte finale della stringa risultante `e composta dalla parte finale della stringa in ingresso pi´u lunga. Ad esempio, date le stringhe s = "rosso" e t = "arancione", il metodo restituisce la stringa "raorsasnocione". Scambiando le stringhe in ingresso, la stringa risultante `e "arroasnscoione".

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

(2)

Esercizio 4. Un quotidiano pu`o essere caratterizzato da titolo, nome della casa editrice, nome del direttore e prezzo. Scrivere una classe Quotidiano con un opportuno costruttore ed i metodi che restituiscono i valori delle variabili istanza. Definire inoltre un metodo che restituisce una stringa che descrive un quotidiano ed un metodo che modifica il prezzo.

Esercizio 5. Un quotidiano con supplemento `e un quotidiano caratterizzato anche dal titolo del supplemento, il giorno di pubblicazione del supplemento ed il prezzo extra del supplemento. Scrivere una classe QuotidianoConSupplemento con un opportuno costruttore ed i metodi che restituiscono i valori delle variabili istanza. Inoltre, definire un metodo che restituisce il prezzo di un quotidiano con supplemento ed un metodo che restituisce una stringa che descrive un quotidiano con supplemento.

Esercizio 6. Un’edicola pu`o essere caratterizzata da nome del proprietario, indirizzo e dall’elenco di quotidiani venduti. Scrivere una classe Edicola, il cui costruttore imposta il numero massimo di quotidiani che possono essere venduti. Oltre ai metodi che restituiscono i valori delle variabili istanza, definire i seguenti metodi:

- un metodo che aggiunge un quotidiano q nell’elenco dei quotidiani venduti da un’edicola;

- un metodo che, dato un quotidiano con supplemento q, controlla se q `e venduto da un’edicola;

- un metodo che, data una stringa s che denota il nome di una casa editrice, restituisce l’elenco dei quotidiani venduti da un’edicola che sono pubblicati da s.

Esercizio 7. Siano date le seguenti classi:

class A {

private String s;

public A (String s) { this.s = s;

}

public String leggiS() { return this.s;

}

public String m (A a) { if (this.s.equals(a.s))

return this.s + a.s;

else

return a.s + this.s;

} }

class B extends A { private String t;

public B (String s, String t) { super(s);

this.t = t;

}

public String leggiT() { return this.t;

}

public String m (A a) { return super.m(a) + this.t;

} }

Dato il seguente frammento di codice:

A a = new A ("Estate");

B b = new B ("Estate","Giugno");

String u = a.m(b);

a = b;

String v = b.m(new A ("Giugno"));

String w = a.m(b);

determinare qual `e il valore delle variabili u, v e w.

Riferimenti

Documenti correlati

Dopo aver definito i costi separabili dei giocatori e il costo non separabile del gioco, si spieghi perch` e il costo non separabile deve essere non negativo; infine si

Come si pu` o verificare agevolmente (vedasi la tabella seguente a sinistra, dove ` e indicata anche la miglior risposta per II), la coppia di strategie che abbiamo individuato `

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.

Scrivere un metodo che, dati un array bidimensionale di stringhe a ed un intero k &gt; 0, restituisce true se in ogni riga a[i] di a esistono almeno k coppie di stringhe adiacenti

Oltre ai metodi che restituiscono i valori delle variabili istanza, definire un metodo che aggiunge il nome di un monumento nell’elenco di una via storica ed un metodo che

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

Inoltre, definire un metodo per modificare il nome del produttore, un metodo che, dati due farmaci, controlla se appartengono alla stessa categoria e hanno lo stesso principio

Le soluzioni degli esercizi non devono contenere alcun metodo main n´e alcuna istruzione di stampa n´e istruzioni switch, break, continue, etc. La non osservanza di tali