ESERCIZIO 1 ESERCIZIO 1

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "ESERCIZIO 1 ESERCIZIO 1"

Transcript

1 Si crei un progetto Java che mappi un semplice sistema medico. Il progetto deve contenere tre classi: una per i pazienti, una per le patologie e una per il main. Inoltre si definiscano le seguenti eccezioni: MoltoGraveException e GuaritaException. 1. La classe delle patologie deve avere come attributi con le dovute visibilita : 1. nome della patologia (stringa); 2. grado di gravità (intero) da 1(guarito) a 10 (molto grave). e come metodi: costruttore getter di nome e gravità void aggrava() e void attenua(), che aumentano o diminuiscono la gravità di 1 grado se è possibile, o altrimenti lanciano la MoltoGraveException (gravità 10) e la GuaritaException (gravità 1) rispettivamente. boolean equals(object o), che controlla se l'oggetto passato (una patologia) è uguale a quello su cui è stato invocato (per nome), e comunica che la patologia passata ha gravità maggiore o minore. String tostring(), un metodo che restituisce i valori degli attributi. 1. La classe dei pazienti deve avere come attributi con le dovute visibilita : 1. cognome (stringa); 2. patologie, un ArrayList di patologie. e come metodi: 1

2 costruttore getter del cognome e di una singola patologia dato il nome (Patologia getpatologia(string nome)) void aggiungipatologia(patologia p), che sfrutta il metodo contains di ArrayList per verificare che la patologia non sia già presente, ed eventualmente la aggiunge boolean rimuovipatologia(patologia p), che sfrutta il metodo contains di ArrayList per verificare che la patologia sia presente e in tal caso la rimuove (restituendo true), altrimenti restituisce false String tostring(), che restituisce una stringa formattata per la stampa chiamando il metodo tostring() delle patologie 3. La classe del main deve: creare 2 patologie: asma con gravità 10 e allergia alle graminacee con gravità 2; creare il paziente Rossi; aggiungere al paziente le 2 patologie e stampare a video le informazioni sul paziente; aggravare l'asma del paziente e gestire l'eccezione MoltoGraveException (facendone stampare il messaggio); attenuare l'allergia fino a portarla a 0, gestendo l'eccezione GuaritaException in modo da togliere la patologia al paziente; stampare la situazione aggiornata sul paziente. 2

3 Si crei un progetto Java che mappi un magazzino di stoccaggio pacchi. Il progetto deve contenere una classe per i pacchi, una per il magazzino, una per le posizioni all'interno del magazzino e una per il main. 1. La classe dei pacchi deve implementare l'interfaccia Stackable: public interface Stackable { public boolean isfragile(); public String getcodice(); } Deve contenere gli attributi boolean fragile; String codice; e avere come metodi: un costruttore l implementazione dei metodi dell interfaccia un metodo tostring() che restituisce una stringa formattata per la stampa, contenente il codice del pacco 2. La classe delle posizioni ha come attributi larghezza, profondità e un oggetto di tipo Stackable, e deve implementare il costruttore, i metodi getter per gli attributi e il metodo tostring() che richiama quello dell'oggetto contenuto. 3

4 3. La classe che gestisce il magazzino dovrà ricevere nel costruttore le dimensioni del pacco (altezza, larghezza e profondità) e dovrà avere un metodo per inserire un pacco: boolean aggiungipacco(stackable s) uno per togliere un pacco (identificandolo tramite il codice): Stackable toglipacco(string codice) un metodo tostring() che formatta le informazioni per la stampa mostrando gli elementi impilati correttamente (invocando i metodi tostring() opportuni). Il magazzino dovrà gestire un numero di posizioni dato dalle sue dimensioni (larghezzaxaltezzaxprofondità). È necessario che sopra ai pacchi fragili non ne siano impilati altri, ma se un pacco non è fragile deve essere inserito sotto agli altri se c'è spazio. Suggerimento: per gestire le posizioni del magazzino si può creare un'ulteriore classe che mappa le colonne di pacchi, controllando in questa se non ci sono errori di stoccaggio (impilamento pacchi fragili e non). si può utilizzare un ArrayList di colonne nella classe del magazzino: le colonne saranno costruite nel costruttore, mentre saranno utilizzate nei metodi per l aggiunta/ rimozione di un pacco. 4. La classe del main deve impilare i seguenti pacchi Magazzino m = new Magazzino(2,3,2); //l,h,p Pacco p1 = new Pacco("F1",true); //fragile Pacco p2 = new Pacco("F2",true); Pacco p3 = new Pacco("N3",false); //non fragile Pacco p4 = new Pacco("N4",false); Pacco p5 = new Pacco("N5",false); e stampare a video il risultato. 4

5 ESERCIZIO 3 Si realizzi una classe Call, con attributi di tipo stringa sender, receiver e di tipo intero start e stop. Tale classe, che rappresenta una singola chiamata telefonica, codifica un metodo costruttore a 4 argomenti e implementa il metodo public int getduration(). Il metodo restituisce un intero che rappresenta la durata della chiamata, che è calcolata come la differenza tra stop e start. Si realizzi poi un metodo main in una classe Prova che: 1. Legga, riga per riga, il file di testo data.txt che è così strutturato: ogni riga contiene il numero del chiamante (sender), il numero del chiamato (receiver), ESERCIZIO 3 l istante iniziale della chiamata (start) e quello finale (stop), separati da ;. Esempio del contenuto: ; ; ; ; ; ; Crei, per ogni riga del file, un oggetto Call usando il metodo split (vedi API) per ottenere i 4 valori (sender, receiver, start, stop) da passare al costruttore. Il metodo split suddivide la stringa su cui è invocato in tante stringhe separate in base ad un carattere specificato e le restituisce sotto forma di vettore di oggetti di tipo String. 5

6 ESERCIZIO 3 3. Inserisca in una lista (scegliere la migliore implementazione da JCF) tutte le istanze delle chiamate la cui durata è superiore a secondi. Non si conosce a priori quanti elementi dovrà contenere la lista. 4. Stampi a video la dimensione della lista. Esempio di output a video: Totale: 100 chiamate lunghe. 6

ESERCIZIO 1 (FILE DI TESTO)

ESERCIZIO 1 (FILE DI TESTO) ESERCIZIO 1 (FILE DI TESTO) Scrivere su un file di testo righe inserite da console, fino a quando non viene inserita la linea vuota. Passare il nome del file come parametro al programma. Bisogna incapsulare

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Mappe Tutor: Allegra De Filippo [email protected] a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 1 Mappe: definizione Tabelle a due colonne:

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione n 2. Obiettivi Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione e rimane immutato.

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione n 2. Obiettivi Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList Fondamenti di Informatica L-B 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito

Dettagli

Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi:

Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi: Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi: Vettore(int n): crea un oggetto Vettore contente n elementi, inizializzati

Dettagli

ESERCIZIO 1 (STRINGHE)

ESERCIZIO 1 (STRINGHE) ESERCIZIO 1 (STRINGHE) Fornire N stringhe di caratteri in input al programma. Per ogni stringa: si stampi a video la stringa si sostituiscano tutte le occorrenze di un carattere ( old_char ) con un altro

Dettagli

Fondamenti di Informatica T1 Mappe

Fondamenti di Informatica T1 Mappe Fondamenti di Informatica T1 Mappe Tutor Melissa Licciardello [email protected] Melissa Licciardello Fondamenti di Informatica T1 1 / 16 Mappe Matrice N x 2 : Gli elementi della prima colonna,

Dettagli

Preparazione allo Scritto di Programmazione

Preparazione allo Scritto di Programmazione Preparazione allo Scritto di Programmazione Informatica / Comunicazione Digitale A.A. 2013/2014 1. Una riga di testo è detta numerica se e solo se contiene più cifre che caratteri di altro genere. Ad esempio,

Dettagli

E17 Esercizi sugli Array in Java

E17 Esercizi sugli Array in Java E17 Esercizi sugli Array in Java Esercizio 1 (esercizio 9.1 del libro di testo). Implementare un metodo statico di nome stringacorta che prende come parametro un array di oggetti String e che restituisce

Dettagli

La classe java.lang.object

La classe java.lang.object La classe java.lang.object In Java: Gerarchia di ereditarietà semplice Ogni classe ha una sola super-classe Se non viene definita esplicitamente una super-classe, il compilatore usa la classe predefinita

Dettagli

ESERCIZI JAVA. Esercizi sulle Interfacce. Esercizio 1:

ESERCIZI JAVA. Esercizi sulle Interfacce. Esercizio 1: ESERCIZI JAVA Esercizi sulle Interfacce Esercizio 1: Java mette a disposizione un'interfaccia chiamata Comparable. Quando un oggetto implementa questa interfaccia esso può implementare un metodo chiamato

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList! Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione

Dettagli

E21 Esercizi sulle collezioni in Java

E21 Esercizi sulle collezioni in Java E21 Esercizi sulle collezioni in Java Esercizio 1. Sia data una classe Contatto le cui istanze rappresentano contatti telefonici. Ogni contatto ha un nome, un cognome e un numero telefonico (tutti di tipo

Dettagli

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici

Dettagli

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 06 Array" Lab06 1

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 06 Array Lab06 1 Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 06 Array" Lab06 1 Esercizio 1" n Creare un programma che legga da input un numero non noto a priori di interi

Dettagli

Programmazione con Java

Programmazione con Java Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:

Dettagli

Esercizio: Lista Circolare

Esercizio: Lista Circolare Esercizio: Lista Circolare Si realizzi in Java un gestore di una lista circolare. La dimensione minima della lista è 2 elementi (ed è anche la dimensione iniziale). La dimensione massima è 20 elementi.

Dettagli

Prova d Esame Compito A

Prova d Esame Compito A Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private static int counter=0; private int code; public

Dettagli

Campo Minato. in java

Campo Minato. in java Campo Minato in java Il gioco campo rettangolare o quadrato suddiviso in tanti quadratini Il giocatore deve sminare il campo, cliccando sui quadratini, col tasto destro o col tasto sinistro il gioco cliccando

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Esempio: Ogni colonna può contenere un solo tipo di dati. Colonne e righe sono numerate partendo da zero. L Header non conta nella numerazione:

Esempio: Ogni colonna può contenere un solo tipo di dati. Colonne e righe sono numerate partendo da zero. L Header non conta nella numerazione: JTable Cos è una JTable Una JTable è un elemento Swing che rende possibile visualizzare delle informazioni sotto forma di tabella e se necessario ne permette la modifica. Header - Nelle JTabel è possibile

Dettagli

Esercizio Si considerino la classe astratta Archiviabile e la classe Biblioteca:

Esercizio Si considerino la classe astratta Archiviabile e la classe Biblioteca: Si progetti un applicazione per gestire le attività di una tipografia che si occupa di stampare sia libri che quotidiani. Data la classe astratta così definita: public abstract class Stampabile { String

Dettagli

Esercizi 5 CICLI. Es.5(cicli)

Esercizi 5 CICLI. Es.5(cicli) Esercizi 5 CICLI 1 Es.5(cicli) Esercizio 1 Realizzare una funzione che, chiesto all utente un numero intero pari a N, ricavi e stampi a video tutte le terne pitagoriche con i cateti minori o uguali ad

Dettagli

Laboratorio di Programmazione 1 [Java]

Laboratorio di Programmazione 1 [Java] 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

Dettagli

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

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di

Dettagli

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna: Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione

Dettagli

Quadrato Magico. Fondamenti di Programmazione

Quadrato Magico. Fondamenti di Programmazione Quadrato Magico Si richiede lo sviluppo di un programma che permette all utente l inserimento di una matrice quadrata di numeri interi positivi e verifica se si tratta di un quadrato magico Una matrice

Dettagli

Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1

Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1 Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1 Gerarchia delle classi Una sottoclasse eredita metodi, variabili, etc. dalla superclasse... Per

Dettagli

Fondamenti di Informatica T-1. Classi e array

Fondamenti di Informatica T-1. Classi e array Classi e array 2 Classi e metodi statici Una classe è un costrutto linguistico che permette di modellare un'entità di un sistema, definendone le caratteristiche (variabili interne) e le azioni (metodi).

Dettagli