COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 17 Luglio 2002. Soluzione degli Esercizi



Documenti analoghi
Definizione di classi con array di oggetti

Esercizi della lezione 5 di Java

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre Alcune Soluzioni

Parcheggio.rtf 1/8 6 gennaio Prova di programmazione: parcheggio a pagamento

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni

Programmazione 1 A.A. 2015/2016

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 21 Dicembre 2006

Controllo degli accessi

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

Esercitazione n 4. Obiettivi

Programmazione ad Oggetti: JAVA. Esercitazione

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a giugno 2013

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre 2001

INFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002.

Algoritmi di Ricerca. Esempi di programmi Java

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4];

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a luglio 2013

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

Java. Linguaggi di Programmazione Linguaggi Speciali & Tecnologie dei Linguaggi di Programmazione: Scritto del 30 Giugno 2006

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 17 Dicembre 2005

public int gety() { return y;

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }

Esercitazioni aggiuntive Martedì Laboratorio L-12

Fondamenti di Informatica. Dichiarazione, creazione e gestione di array in Java

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A Esercitazione. Programmazione Object Oriented in Java

Un esercizio d esame. Flavio De Paoli

E21 Esercizi sulle collezioni in Java

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

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

Programmazione ad Oggetti Modulo A (Esame del 11/9/2015)

Funzioni in C. Violetta Lonati

// inizializzazione della biblioteca con utenti, libri e prestiti // non richiesta Biblioteca.inizializza();

Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo.

Parola chiave extends

UML Diagrammi delle classi. UML Diagramma classi 1

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Primo scritto 11 Gennaio 2008

Modulo 4: Ereditarietà, interfacce e clonazione

Esercitazione 6. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008

Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A

Oggetti Lezione 3. aspetti generali e definizione di classi I

Programmazione a oggetti e JAVA. Prof. B.Buttarazzi A.A. 2011/2012

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

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

3. La sintassi di Java

Prova di Laboratorio di Programmazione

Programmazione a Oggetti Lezione 10. Ereditarieta

Realizzazione di Phone Plan. Soluzione - SimpleTime. Realizzazione e testing! Soluzione - SimpleTime. Soluzione - SimpleTime

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a I scritto Febbraio 11 Febbraio 2011

Realizzazione di una classe con un associazione

Ottava Esercitazione. introduzione ai thread java mutua esclusione

Le variabili. Olga Scotti

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi

Prossime lezioni. Dai TDA agli oggetti. Riassunto. Riassunto TDA. Oggi. Stefano Mizzaro 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

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

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Concetto di Funzione e Procedura METODI in Java

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

obiettivi di questa seconda metà del corso fare un passo avanti rispetto a :... meccanismi di composizione dei dati

SAPIENZA Università di Roma, Facoltà di Ingegneria

Esercizio: la classe CashRegister

Programmazione Orientata agli Oggetti in Linguaggio Java

Introduzione a Classi e Oggetti

PROGRAMMA SVOLTO DI INFORMATICA ANNO SCOLASTICO 2013/2014. DOCENTE: Villani Chiara

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

GESTIONE DEI PROCESSI

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

10 - Programmare con gli Array

esercizi Esercizi / problemi

Fondamenti di informatica T-1 (A K) Esercitazione 9: array

Prova d Esame Compito B

La selezione binaria

Cifratura simmetrica

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

Programmazione II Compitino (Vers. B)

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Appello di Informatica B

Flussi, lettori e scrittori

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

Corso sul linguaggio Java

Esempi di esercizi d esame

Programmazione in Java Parte I: Fondamenti

Il conto corrente: uso

Test di unità con JUnit4

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca)

Laboratorio di programmazione

Esempio: Interfacce. Gioco Interfacce

Prova d Esame Compito A

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

Polinomio di secondo grado: Calcolo delle soluzioni di una equazione di secondo grado: import GraphicIO.*; public class Polinomio2 {

Ingegneria del Software

Main System Monitor Keyboard

Transcript:

COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 17 Luglio 2002 degli Esercizi ESERCIZIO 1. Si consideri il seguente frammento di codice in linguaggio Java: int i=0, j=0; int[][] a=b; boolean trovato=false; while(i<a.length &&!trovato) { j=0; while(j<a[0].length &&!trovato) { if ( a[i][j]==0 ) trovato=true; j++; i++; Determinare il valore finale delle variabili i, j e trovato nei seguenti casi: 1) b è un array bidimensionale di 2 righe e 2 colonne. Inoltre, b[0][0]=1, b[0][1]=2, b[1][0]=3, b[1][1]=4 ; 2) b è un array bidimensionale di 3 righe e 2 colonne. Inoltre, b[0][0]=1, b[0][1]=1, b[1][0]=1, b[1][1]=0, b[2][0]=0, b[2][1]=0. ESERCIZIO 2. Si consideri il seguente frammento di codice in linguaggio Java: String s=stringa, c= ; for(int i=0; i<s.length(); i++) { if(s.charat(i)== a s.charat(i)== b ) c=c+s.charat(i); Determinare il valore finale della variabile c nei seguenti casi: 1) stringa= libellula ; 2) stringa= albatro ; 3) stringa= anaconda ; 4) stringa= balena. 1) c= ba ; 2) c= aba ; 3) c= aaa ; 4) c= baa. 1) i=2, j=2, trovato=false; 2) i=2, j=2, trovato=true. ESERCIZIO 3. Scrivere un metodo in linguaggio Java che dato un array di interi restituisca true se tutti i suoi elementi sono identici, e false altrimenti. public static boolean uguali(int[] a) { boolean equal = true;

int i = 0; while(i<a.length-1 && equal) { if(a[i]!=a[i+1]) equal=false; else i++; return equal; ESERCIZIO 4. Risolvere l esercizio 3 usando la ricorsione. public static boolean uguali_ric(int[] a, int i) { if(i==a.length-1) return true; else { if(a[i]!=a[i+1]) return false; else return uguali_ric(a,i+1); ESERCIZIO 5. Si consideri la seguente classe Java Animale. Le variabili istanza sono la specie (ad esempio, tigre), il nome (ad esempio, Simba) e l età. I metodi sono quelli che restituiscono i valori delle variabili istanza. public class Animale { public Animale (String specie, String nome, int eta){ this.specie=specie; this.nome=nome; this.eta=eta; public String get specie() { return this.specie; public String get nome() { return this.nome; public int get eta() { return this.eta;

private String specie, nome; private int eta; Scrivere una nuova classe Contenitore di animali, dove ciascun contenitore di animali è caratterizzato dalle sue dimensioni (lunghezza, larghezza e altezza) e da un elenco di animali (il cui numero massimo deve essere impostato dal costruttore della classe), che abbia i seguenti metodi: 1. un metodo che aggiunge un animale ad un contenitore di animali; 2. un metodo che restituisce l elenco dei nomi di tutti gli animali in un contenitore di animali. Scrivere inoltre un breve programma di prova che illustri l uso della classe Contenitore di animali e dei suoi metodi. public class Contenitore_di_animali { public Contenitore_di_animali (int lunghezza, int larghezza, int altezza, int n) { this.lunghezza = lunghezza; this.larghezza = larghezza; this.altezza = altezza; this.animali = new Animale[n]; public void add_animale(animale a) { if (count < animali.length) { animali[count] = a; count++; public String[] get_nomi_animali() { String[] s = new String[count]; for (int i = 0; i < count; i++) s[i] = animali[i].get_nome(); return s; private int lunghezza, larghezza, altezza; private Animale[] animali; private int count = 0;

ESERCIZIO 6. Scrivere due sottoclassi, Gabbia e Vasca, della classe Contenitore di animali con le seguenti caratteristiche: 1. la classe Gabbia è caratterizzata da un habitat (es:savana); 2. la classe Vasca è caratterizzata dal tipo di acqua (es:acqua dolce) e dal flusso di acqua (misurato in litri al minuto) richiesto per il ricambio della stessa. Le due classi, oltre ad ereditare i metodi della classe Contenitore di animali, hanno metodi che restituiscono l habitat (classe Gabbia) ed il tipo di acqua e il flusso richiesto (classe Vasca). Scrivere inoltre un breve programma di prova che illustri l uso delle classi Gabbia e Vasca. public class Gabbia extends Contenitore_di_animali { public Gabbia(int lun, int lar, int alt, int n, String habitat) { super(lun, lar, alt, n); this.habitat = habitat; public String get_habitat() { return habitat; private String habitat; public class Vasca extends Contenitore_di_animali { public Vasca(int lun, int lar, int alt, int n, String tipo, double flusso) { super(lun, lar, alt, n); this.tipo = tipo; this.flusso = flusso; public String get_tipo_di_acqua() { return tipo; public double get_flusso() { return flusso; private String tipo;

private double flusso; ESERCIZIO 7. Uno zoo è composto da un insieme di gabbie e vasche al cui interno sono ospitati animali. Usando le classi precedentemente definite, scrivere una semplice classe Zoo, motivando le scelte effettuate. Scrivere inoltre un breve programma di prova che illustri l uso della classe Zoo. public class zoo { public zoo(string nome, int n) { this.nome = nome; contenitori = new Contenitore_di_animali[n]; public void add_contenitore(contenitore_di_animali c) { if(count<contenitori.length) { contenitori[count] = c; count++; public void add_animale(contenitore_di_animali c, Animale a) { contenitori[c].add_animale(a); private String nome; private Contenitore_di_animali[] contenitori; private int count;