public static boolean mr (String[] a, String[] b) { 2. Esercizio 3. Scrivere una versione ricorsiva del metodo definito per risolvere l Esercizio 2.

Documenti analoghi
public BorsaStudio(String nome, String ente, int d, double r) { this.nome = nome; this.ente = ente; this.durata = d; this.

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;

3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre Alcune Soluzioni

LABORATORIO DI PROGRAMMAZIONE Prova Intermedia - 4 Novembre Soluzione degli Esercizi

public int gety() { return y;

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Programmazione 1 A.A. 2015/2016

Programmazione a Oggetti Metodologie di Programmazione 8 Giugno 2012

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

Corso di Laurea in Matematica Corso di Informatica Prova d Esame del 17/02/2011

E7 Esercizi sul Capitolo 7 Realizzazione di Classi

System.out.print("\tATTENZIONE: hi inserito un valore non valido!\n");

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre 2001

Corso di Laurea in Matematica Corso di Informatica Prova d Esame del 02/02/2010

Esercitazione Fondamenti di informatica 2

import java.io.*; System.out.print("\tInserire l\'altezza (in CM) delle piastrelle: "); stringainput = tastiera.readline();

Esercitazione n 2. Obiettivi

Programmazione II Compitino (Vers. B)

Esercitazione n 2. Obiettivi

Fondamenti di informatica 2 Claudio Biancalana. Esercitazione capitolo 22 Ricorsione

Esercitazione n 3. Capacità di analisi e di estensione di progetti esistenti Linguaggio Java:

Array. Definizione e utilizzo di vettori

import java.io.*; boolean condizioneciclo = true;

Fondamenti di Informatica T2 Modulo 2. Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009. Enumerativi

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Luglio Soluzione degli Esercizi

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Laboratorio di Programmazione 1 [Java]

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Esempio: Tombola! Vogliamo progettare una applicazione che realizza il gioco della tombola Versione semplificata: un banco, un

Fondamenti di informatica 2 Claudio Biancalana. Esercitazione capitolo 19 Array

E21 Esercizi sulle collezioni in Java

E17 Esercizi sugli Array in Java

Fondamenti di informatica T-1 (A K) Esercitazione 8: classi e oggetti

Tecniche iterative. Walter Didimo

Esercitazione n 2. Obiettivi

Algoritmi di Ricerca. Esempi di programmi Java

Fondamenti di Informatica T-1. Costruttori Ereditarietà

Programmazione I - Preparazione A.A. 2010/2011

Esercitazione. Docente Ing. Mariateresa Celardo

Programmazione. Cognome... Nome... Matricola... Compitino del 26 gennaio 2009

Realizzare un applicazione console che stampi la somma dei primi n numeri dispari oppure pari (a scelta dell operatore). import java.io.

Programmazione II Compitino (Vers. B)

Corso di Laurea Ingegneria Informatica. Dispensa E11. Esercizi su array e. Gennaio 2012

COGNOME NOME MATRICOLA DATA

Sviluppo di progetti. metodologie di soluzione di un problema. iterazione o ricorsione nel pensare per OGGETTI

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

import java.io.*; System.out.print("\tInserire il tasso di spesa: ");

Esercitazione n 3. Obiettivi

import java.io.*; char sceltautente = '_'; boolean condizionesn = true; boolean condizionedowhile = true; boolean condizioneprogramma = true;

COGNOME NOME MATRICOLA DATA

import java.io.*; System.out.print("\tInserire il valore (in OHM) della resistenza \"R1\": ");

Laboratorio di Programmazione 1 [Java]

E9 Esercizi sul Capitolo 9 Array

Corso di Laurea Ingegneria Informatica

Esempio: Interfacce. Gioco Interfacce

La Ricorsione. Carla Binucci e Walter Didimo

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array

import java.io.*; Pag. 1 di 15

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2012

Esempio: Interfacce. Gioco Interfacce

Programmazione Concorrente e Distribuita

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 16. Array. A. Miola Gennaio

import java.io.*; double massa = 0.0; double velocità = 0.0; double coefficienteattrito = 0.0; int numeroveicoli = 0;

come segue: data una collezione C di elementi e una un elemento che verifica la proprietà P

Algoritmi di Ricerca. Esempi di programmi Java

Fondamenti di Java. Soluzione esercizio hashcode

14 - Metodi e Costruttori

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a luglio 2011

ESERCIZI JAVA. Esercizi sulle Interfacce. Esercizio 1:

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61

Esercizio: Lista Circolare

Capitolo 9. Tipi enumerativi, tipi generici e interfacce. c 2005 Pearson Education Italia Capitolo 9-1 / 73

Definizione di classi con array di oggetti

Altri Esercizi. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E17. C. Limongelli Maggio 2012

Informatica 3 secondo recupero 13 Settembre 2002

Esonero del corso di Programmazione a Oggetti

Pag. 1 di 5. private Color C0 = new Color(255, 0, 0);

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05

Algoritmi di ordinamento e ricerca. Classe SelSort.java

Array. Emilio Di Giacomo e Walter Didimo

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

Esercizi su Array di Stringhe

Insieme.java. Printed by Paolo. Feb 24, 04 16:44 Page 1/1 class Insieme { private int[] elementi; Tuesday February 24, /10

Alcuni Soluzioni. Fornire la specifica di un algoritmo risolutivo utilizzando lo pseudocodice visto a lezione.

Approcci nella soluzione di un problema

Programmazione con Java

Programmazione. Cognome... Nome... Matricola... Compitino del 17 gennaio 2007

Soluzioni degli esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione

ESERCIZIO 1 (STRINGHE)

Transcript:

Esame scritto del 26/03/2007: soluzioni di alcuni esercizi 1. Esercizio 2. Scrivere un metodo statico iterativo che, dati due array monodimensionali di stringhe a e b, restituisce true se per ogni stringa a[i] di a esiste almeno una stringa b[j] di b tale che la lunghezza di b[j] è uguale alla lunghezza di a[i]. Altrimenti, il metodo restituisce false. Ad esempio, dati gli array a = {"ciao","salve","bye" e b = {"hi","hola","hello","addio","hi!", il metodo restituisce true. public static boolean m (String[] a, String[] b) { for (int i=0; i<a.length; i++) { int j=0; boolean p = false; while (j < b.length &&!p) { if (a[i].length() == b[j].length()) p = true; j++; if (!p) return false; return true; 2. Esercizio 3. Scrivere una versione ricorsiva del metodo definito per risolvere l Esercizio 2. public static boolean mr (String[] a, String[] b) { return mr(a,b,0,0); public static boolean mr (String[] a, String[] b, int i, int j) { if (i==a.length) return true; if (j==b.length) return false; if (a[i].length() == b[j].length()) return mr(a,b,i+1,0); return mr(a,b,i,j+1); 3. Esercizio 4. Un film può essere caratterizzato dal titolo, il nome del regista, la lingua originale, l anno e la nazione di produzione. Scrivere una classe Film con gli opportuni costruttori ed i metodi che restituiscono i valori delle variabili istanza. Inoltre, definire un metodo per modificare il titolo di un film ed un metodo che restituisce una stringa che descrive un film. public class Film { private String title, director, origlang, country; private int year;

public Film(String t, String d, String l, int y, String c) { this.title = t; this.director = d; this.origlang = l; this.year = y; this.country = c; public String gettitle() { return this.title; public String getdirector() { return this.director; public String getoriglang() { return this.origlang; public int getyear() { return this.year; public String getcountry() { return this.country; public void modtitle(string e) { this.title = e; public String descr() { return "Titolo del film: " + this.title + "\n Regista: " + this.director + "\n Lingua originale: " + this.origlang + "\n Anno: " + this.year + "\n Nazione: " + this.country + "\n"; 4. Esercizio 5. Un film in dvd è un film caratterizzato anche da un elenco di lingue disponibili per l audio, un elenco di lingue disponibili per i sottotitoli e la presenza o meno di bonus. Scrivere una classe FilmDVD, il cui costruttore imposta i numeri massimi per le lingue disponibili per l audio e per i sottotitoli. Oltre ai metodi che restituiscono i valori delle variabili istanza, definire i seguenti metodi: - un metodo che aggiunge una lingua all elenco di lingue per l audio di un film in dvd; - un metodo che aggiunge una lingua all elenco di lingue per i sottotitoli di un film in dvd; - un metodo che restituisce una stringa che descrive un film in dvd; - un metodo eq che, dato un film f, è tale che d.eq(f) restituisce true se d è il dvd di f.

public class FilmDVD extends Film { private String[] languages, subtitles; private int countl, counts; private boolean bonus; public FilmDVD (String t, String d, String l, int y, String c, int maxl, int maxs, boolean b) { super(t,d,l,y,c); this.languages = new String[maxL]; this.subtitles = new String[maxS]; this.bonus = b; public String[] getlanguages() { return this.languages; public String[] getsubtitles() { return this.subtitles; public boolean getbonus() { return this.bonus; public void agglanguageaudio(string lang) { if (countl < languages.length) { languages[countl] = lang; countl++; public void agglanguagesubtitle(string lang) { if (counts < subtitles.length) { subtitles[counts] = lang; counts++; public String descr() { String s = super.descr() + "Lingue disponibili: \n"; for (int i=0; i<countl; i++) s = s+languages[i]+" "; s = s + "\n Sottotitoli in: \n"; for (int i=0; i<counts; i++) s = s+subtitles[i]+" "; s = s + "\n Bonus: "; if (bonus) s = s + "si \n"; s = s + "no \n"; return s;

public boolean eq(film f) { return (this.gettitle().equals(f.gettitle()) && this.getdirector().equals(f.getdirector()) && this.getyear() == f.getyear()) ; 5. Esercizio 6. Una videoteca può essere caratterizzata tramite il nome, l indirizzo, il nome del proprietario e l elenco dei film in dvd che possono essere noleggiati. Scrivere una classe Videoteca, il cui costruttore imposta il numero massimo di film in dvd che possono essere gestiti. Oltre ai metodi che restituiscono i valori delle variabili istanza, definire i seguenti metodi: - un metodo che aggiunge un film in dvd nell elenco dei dvd di una videoteca; - un metodo che restituisce true se, dato un film f, esiste nella videoteca il dvd di f, altrimenti il metodo restituisce false; - un metodo che restituisce l elenco dei titoli dei film in dvd disponibili in una videoteca. public class Videoteca { private String name, address, owner; private FilmDVD[] list; private int cont; public Videoteca (String s, String a, String o, int m) { this.name = s; this.address = a; this.owner = o; this.list = new FilmDVD[m]; public String getname() { return this.name; public String getaddress() { return this.address; public String getowner() { return this.owner; public FilmDVD[] getlistdvd() { return this.list; public void aggdvd (FilmDVD d) { if (cont < list.length) { this.list[cont] = d; cont++;

public boolean DvdAvailable (Film f) { for (int i=0; i<cont; i++) { if (list[i].eq(f)) return true; return false; public String[] TitleList() { String[] t = new String[cont]; for (int i=0; i<cont; i++) { t[i] = list[i].gettitle(); return t; 6. 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; 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) { if (this.s.length() == a.getx()) return super.m(a); return super.m(a) + this.getx(); Dire qual è il valore delle variabili y, z e w dopo l esecuzione del seguente frammento di codice Java: A a = new A (5); B b = new B (7,"marzo"); int y = a.m(b); a = new B (8,"recupero"); int z = b.m(a); int w = a.m(b); Soluzione: y = -2, z = 6, w = 23.