ESERCIZIO 1 ESERCIZIO 1
|
|
|
- Laura Valentini
- 6 anni fa
- Visualizzazioni
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) 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
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:
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
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.
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
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
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
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
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,
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,
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
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
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
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
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
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
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
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
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:
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.
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
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
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
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
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
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
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
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
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
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
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
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).
