Laboratorio di Programmazione 1 [Java]

Похожие документы
Programmazione 1 A.A. 2015/2016

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Algoritmi di Ricerca. Esempi di programmi Java

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

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

Algoritmi di Ricerca. Esempi di programmi Java

Definizione di classi

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

Esercizi della lezione 5 di Java

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

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

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

Programmazione 1 A.A. 2015/2016

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

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1

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

Definizione di classi con array di oggetti

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

Modulo 2: Strutture fondamentali della programmazione Java

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

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

Fondamenti di Informatica I

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

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

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

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali

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

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo

Ingegneria del Software

TIPI PRIMITIVI: LIMITI

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali

Java: loading dinamico e reflection

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Programmazione Orientata agli Oggetti in Linguaggio Java

Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

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

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Esempi di Problemi Iterativi

Riassunto. La programmazione OO. Oggi. Esempio

Problemi, algoritmi e oggetti

Programmazione ad Oggetti

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

Esercizi classi e array

Esempio su strutture dati dinamiche: ArrayList

Esercizi per il recupero del debito formativo:

Prova d Esame Compito A

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

18 - Classi parzialmente definite: Classi Astratte e Interfacce

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Uso di metodi statici. Walter Didimo

Lezione 9 programmazione in Java Classi come contenitori

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

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

14 - Metodi e Costruttori

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

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

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe

Compito di Programmazione, 22 marzo 2007 INFORMATICI E MULTIMEDIALI

Esempio: L EURO-CONVERTITORE (1) Scopo

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

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

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

Programmazione I. 11 gennaio Considerate la seguente gerarchia di classi (rappresentata mediante un diagramma UML): +f(double x):

Prova di Laboratorio di Programmazione

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Ereditarietà. Ereditarietà. Ereditarietà. Ereditarietà

Транскрипт:

Laboratorio di Programmazione 1 [Java] Prova di esame - 7 Settembre 2010 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Ristorante. La classe Tavolo ha i seguenti attributi: numero (un intero contenente il numero del tavolo) capienza (un intero contenente il numero massimo di coperti del tavolo) ed i seguenti metodi: costruttore che crea un oggetto della classe Tavolo assegnando numero e capienza. metodi "get" per tutti gli attributi, cioè metodi che restituiscono i valori di ciascun attributo; metodo tostring La classe Ristorante ha i seguente attributi: tavoli (un array di Tavolo) ntavoli (un intero contenente il numero di tavoli attualmente presenti nel ristorante) ed i seguenti metodi: costruttore che crea un oggetto della classe Ristorante prendendo in input il numero massimo di tavoli che quel ristorante può contenere metodo addtavolo, che preso in input un tavolo lo aggiunge ai tavoli del ristorante. metodo tostring, che sfruttando il metodo tostring della classe Tavolo restituisce la descrizione di tutti i tavoli presenti. Esempio di test: public class Test { public static void main(string [] args) { Ristorante r = new Ristorante(40); r.addtavolo(new Tavolo(1,10)); r.addtavolo(new Tavolo(5,8)); System.out.println (r); a.a 2009/2010

Laboratorio di Programmazione 1 [Java] Prova di esame - 7 Settembre 2010 Cognome Nome Matricola Tempo disponibile: 1 ora (più il tempo eventualmente risparmiato nella prova pratica) Esercizio 1 (4 punti) Dato il seguente codice Java: public class Test { public static void main (String args []) { int i=23, j=i-1; if (!(i>=j)) { i+= i+j; System.out.println("i = "+ i++); System.out.println ("i = " + (++i)); Cosa stampa il programma? a.a 2009/2010 1

Esercizio 2 (4 punti) Dato il seguente programma Java: public class Calc { public static void main (String args []) { int total = 0; for (int i = 0; total > -30 && total!= 1; ++i) { int j = 4; total = 1; System.out.println("j =" + j); Quali delle seguenti affermazioni è vera? Cerchiare la risposta esatta 1. Genera un errore a tempo di esecuzione 2. Genera un errore a tempo di compilazione 3. Visualizza "j =4" 4. Non termina mai la sua esecuzione Esercizio 3 (4 punti) Dato il seguente codice Java: class Test { public static void main(string args[]) { int i,j,somma=0; for (i = 0; i < 10; i++) { for(j = i; j < 10; j++) { if(i == j) somma+=i; System.out.println(somma); Cosa viene visualizzato? a.a 2009/2010 2

Esercizio 4 (5 punti) Date le seguenti classi Java: class B { int x; public B(int i){ x=i; public int m1(a a){ return a.m1(this); class A { int y; public int m1(b b) { b.x--; y=b.x; if (y==0) return 10; return m1(b); public int m1(a a) { if (y==0) return 24; y--; return (1+a.m1(this)); public class Main{ public static void main(string args[]){ B b=new B(18); A a=new A(); System.out.println(b.m1(a)); Cosa viene visualizzato? Esercizio 5 (18 punti) Rispondere sul foglio protocollo Si consideri il seguente codice: public class Tavolo { private int numero; private int capienza; public Tavolo (int n, int c){ numero=n; capienza=c; a.a 2009/2010 3

public int getnumero(){ return numero; public int getcapienza(){ return capienza; public String tostring(){ return "Tavolo numero: "+numero+" capienza: "+capienza; public class Ristorante { private int ntavoli; private Tavolo [] tavoli; public Ristorante (int max){ tavoli=new Tavolo[max]; ntavoli=0; public void addtavolo (Tavolo t){ if (ntavoli < tavoli.length) { tavoli[ntavoli++]=t; public String tostring(){ String ris ="Numero di tavoli presenti: "+ntavoli+" capienza tavoli: "+tavoli.length; for (int i=0; i< ntavoli;i++){ ris += "\n"; ris+=tavoli[i].tostring(); return ris; Completare il codice in questo modo: Scrivere una classe Prenotazione che contiene i campi Nome (di tipo stringa), giorno di prenotazione (di tipo intero), ora di inizio prenotazione (di tipo intero) ed ora di fine prenotazione (di tipo intero). [Nota: si assume dunque che sia le date che gli orari sono gestiti tramite numeri interi] (5 punti) Aggiungere alla classe Tavolo un array di Prenotazione di lunghezza 100 (modificando opportunamente anche il costruttore) (3 punti) Aggiungere (10 punti) alle classe Tavolo e Ristorante tutto ciò che è necessario per gestire l arrivo di nuove prenotazioni; in particolare, nella classe Ristorante deve essere aggiunto o un metodo addprenotazione che presi in input il nome (stringa) del prenotante e gli interi corrispondenti al giorno, all ora di inizio e all ora di fine della prenotazione e il numero di persone cerca un tavolo libero, lo restituisce in output come ritorno del metodo, e aggiunge la prenotazione opportunamente al tavolo in questione. Se nessun tavolo con le caratteristiche richieste è trovato, restituisce -1. a.a 2009/2010 4