Esercizi classi e array



Похожие документы
SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

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

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

Esercizi della lezione 5 di Java

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

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

esercizi Esercizi / problemi

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

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

SAPIENZA Università di Roma, Facoltà di Ingegneria

Algoritmi di Ricerca. Esempi di programmi Java

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

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Esempi di esercizi d esame

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:

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

Realizzazione di una classe con un associazione

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

Programmazione 1 A.A. 2015/2016

3. La sintassi di Java

10 - Programmare con gli Array

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

Unità B3 Strutture di controllo

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

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

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

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

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

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

Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Un oggetto per la lettura dalla tastiera

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

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

ARRAY E STRINGHE. G. Frosini Slide 1

Gestione delle eccezioni

Compito di Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Chat. Si ha un server in ascolto sulla porta Quando un client richiede la connessione, il server risponde con: Connessione accettata.

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

Raffaella Brighi, a.a. 2005/06. Eventi e listener. Corso di Laboratorio II. A.A

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

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

Programmazione ad Oggetti: JAVA. Esercitazione

Lab 11 Gestione file di testo"

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

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

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

Modulo 2: Strutture fondamentali della programmazione Java

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

20. Appunti sulle liste (gestione in linguaggio C#) 16/04/2015 Arraylist

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

Le variabili. Olga Scotti

Pila di interi. Car 1. Car n. Pila di interi: Pila di Oggetti: Gli elementi che sono inseriti e tolti dalla pila sono numeri interi

Appello di Informatica B

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

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre Alcune Soluzioni

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

Definizione di classi con array di oggetti

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'

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

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

Prova d Esame Compito A

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

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

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

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

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

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

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

Corso sul linguaggio Java

7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità:

RICERCA DI UN ELEMENTO

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Supermarket Progetto di Programmazione Febbraio 2010

Un esercizio d esame. Flavio De Paoli

Flussi, lettori e scrittori

Laboratorio di Informatica Lezione 2

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

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

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

Vettori Algoritmi elementari di ordinamento

Esercizio: la classe CashRegister

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Luglio Soluzione degli Esercizi

Introduzione alla programmazione in C

Algoritmi e Strutture Dati. Tipo di dato astratto e Strutture dati elementari

SAPIENZA Università di Roma, Facoltà di Ingegneria

Транскрипт:

Esercizi classi e array Raffaella Brighi, a.a. 2006/07 Corso di Algoritmi e programmazione. A.A. 2006-07 CdL Operatore Informatico Giuridico. Progetto DataSet Realizzare una classe DataSet per la gestione di un insieme di numeri interi. La classe fornisce i seguenti servizi: add per aggiungere un valore getmedia per restituire la media getmax per restituire il massimo printall: stampa in output tutti i dati inseriti dall utente. suggerimento: memorizzare i dati in un array Realizzare un programma client che chieda all utente di inserire un numero (stop per terminare), consentendo l inserimento di un massimo di 50 numeri. Al termine il programma stampa media, massimo ed elenco di tutti i numeri inseriti.

public class Dataset { private int numero, count, tot, max; private double media; final int NUMERI_LENGTH = 50; private int[] numeri = new int [NUMERI_LENGTH]; /** Crea una nuova istanza della classe Datase */ public Dataset() { numero = 0; count=0; public void addvalue(int fnumero) { numeri [count]= fnumero; tot = tot + fnumero; count++; if (count==1 fnumero>max) max=fnumero; public int gettot(){ return tot; public double getaverage(){ media = (double)tot/count; return media; public int getmax(){ return max; public void printall() { for (int i=0; i<count; i++){ System.out.println(numeri[i]); import java.util.*; public class DatasetClient { public static void main(string[] args){ int num, count=0; String risp; int numins; Dataset calcolo = new Dataset(); System.out.println ("Inserire il numero:"); Scanner in = new Scanner (System.in); risp = in.nextline(); while ((!risp.equals("stop")) count>calcolo.numeri_length) { numins = Integer.parseInt(risp); calcolo.addvalue(numins); count++; System.out.println ("Inserire il numero:"); risp = in.nextline(); System.out.println("Il numero più grande è:" + calcolo.getmax()); System.out.println("La media è:" + calcolo.getaverage()); calcolo.printall();

Progetto Fattura Progettare e realizzare una classe Fattura. Ogni fattura fornisce i seguenti servizi getintestario: restituisce l intestatario della fattura. aggiungiprodotto: consente di registrare la vendita di un prodotto. gettotale: restituisce il totale da pagare elencaprodotti: restituisce una stringa con nome, prezzo e quantità di ogni prodotto acquistato. Suggerimento: la stringa deve essere costruita mano a mano che i prodotti vengono aggiunti. Realizzare un programma client che dopo aver letto i dati del cliente, simula l acquisto di prodotti chiedendo all utente di inserire nome, prezzo e quantità del prodotto. Al termine delle operazioni di inserimento il programma stampa la fattura: intestatario elenco prodotti totale Nota: realizzare anche la classe Prodotto e la classe Persona. public class Prodotto { private String nome; private double prezzo; private int qta; /** Creates a new instance of Prodotto */ public Prodotto(String fnome,double fprezzo,int fqta) { nome = fnome; prezzo = fprezzo; qta = fqta; public String getvenduto(){ return nome; public double getprezzo(){ return prezzo; public int getqta(){ return qta;

public class Persona { private String nome; private String cognome; private String cf; /** Creates a new instance of Persona */ public Persona(String fnome,string fcognome,string fcf) { nome = fnome; cognome = fcognome; cf = fcf; public String getnome(){ return nome; public String tostring(){ String descrizione; descrizione = nome+cognome+cf; return descrizione; ublic class Fattura { private String elenco = ""; private Persona cliente; private Prodotto bene; private double totale =0; public Fattura(Persona fcliente) { cliente = fcliente; totale = 0; public Persona getintestatario(){ return cliente; public void aggiungiprodotto(prodotto fbene){ bene = fbene; totale = totale + (bene.getprezzo()*bene.getqta()); elenco = elenco + "\n Il bene è: "+bene.getvenduto()+ " il prezzo è: "+bene.getprezzo()+" la quantità è: "+bene.getqta(); public double gettotale(){ return totale; public String elencaprodotti(){ return elenco;

package mypackage; import java.util.*; public class ClienteClient { public static void main (String [] args){ String nome,cognome,cf; String nomep; double prezzo; int q; Scanner in; in = new Scanner (System.in); System.out.println("Inserisci nome, cognome,e cod. fiscale del cliente: "); nome = in.nextline(); cognome = in.nextline(); cf = in.nextline(); Persona mycli = new Persona(nome,cognome,cf); Fattura f = new Fattura(mycli); System.out.println("Inserisci il nome, il prezzo e la quantità del prodotto: "); in = new Scanner(System.in); nomep = in.nextline(); while (!nomep.equalsignorecase("stop")) { in = new Scanner(System.in); prezzo = in.nextdouble(); in = new Scanner(System.in); q = in.nextint(); Prodotto p = new Prodotto(nomep,prezzo,q); f.aggiungiprodotto(p); System.out.println("Inserire un altro prodotto o inserire stop per uscire"); in = new Scanner(System.in); nomep = in.nextline(); System.out.println("La fattura è di: \n\t"); System.out.println(f.getIntestatario().toString); //getintestario restituisce un oggetto di tipopersona, qui invochiamo il metodo tostring dell oggetto Persona per stamparnela descrizione System.out.println(f.elencaProdotti()); System.out.println("Il totale della fattura è: "+f.gettotale()); Progetto Carta Progettare una classe Carta che rappresenti una carta da gioco. Ogni carta deve avere un seme (cuore, quadri, fiori e picche) e un valore. Realizzare i seguenti metodi: estrai: inizializza una carta casualmente equals: restituisce un boolean che indica se due carte sono uguali (cfr metodo equals per confrontare stringhe). Scrivere un programma client che, estratte due carte, verifica se sono uguali.

public class Carta { private char seme; private byte figura; /** Creates a new instance of Carta */ public Carta() { estrai(); public void estrai() { int numg; numg=(int)(math.random()*4+1); switch (numg){ case 1: seme='p'; break; case 2: seme ='C'; break; case 3: seme='q'; break; case 4: seme='f'; break; figura=(byte)(math.random()*13 +1); public boolean equals(carta carta2) { boolean carteuguali=false; if (seme==carta2.getseme()&&figura==carta2.getfigura()){ carteuguali=true; return carteuguali; public char getseme() { return seme; public byte getfigura() { return figura; public class CartaClient { public static void main(string[] args) { // TODO code application logic here Carta carta1 = new Carta(); Carta carta2=new Carta(); carta1.estrai(); carta2.estrai(); boolean isequal; isequal = carta1.equals(carta2); if (isequal) System.out.print("Le carte sono uguali"); else System.out.print("Le carte sono diverse");

Progetto Negozio Realizzare una classe CD caratterizzata da titolo, autore e numero di codice. Realizzare una classe che rappresenti un Negozio che vende CD. La classe è caratterizzata da: CD in vendita (si assuma che siano 4), il CD più venduto e il numero totale di CD venduti. Fornisce i seguenti servizi stampaelenco: per ogni cd in vendita stampa titolo, autore e codice registravendita(): riceve in input il codice del cd venduto e registra la vendita getpiuvenduto getnumerovendite Realizzare un programma client che: - costruisca un negozio di CD, impostando i 4 cd in vendita - stampi all utente la lista dei CD (indicando titolo, autore e codice) e chieda all utente di inserire il codice del CD che vuole acquistare. Ogni vendita viene così registrata. Terminare l inserimento quando l utente digita stop. Al termine del programma stampare il numero totale di CD venduti e titolo e autore del CD più venduto. public class CD { private String autore, titolo; private int codice, numvenduti; /** Creates a new instance of CD */ public CD(String fautore, String ftitolo, int fcod) { autore=fautore; titolo=ftitolo; codice=fcod; public String getautore() { return autore; public String gettitolo() { return titolo; public int getcodice() { return codice; public int getvenduti() { return numvenduti; public void venduto() { numvenduti++;

public class Negozio { private CD cd1, cd2, cd3, cd4; private int numcd1=0, numcd2=0, numcd3=0, numcd4=0; private int numvendite=0; /** Creates a new instance of Negozio */ public Negozio(CD fcd1, CD fcd2,cd fcd3,cd fcd4) { cd1=fcd1; cd2=fcd2; cd3=fcd3; cd4=fcd4; public void stampaelenco(){ System.out.println (cd1.getautore() + " " + cd1.gettitolo() + " COD: " + cd1.getcodice()); System.out.println (cd2.getautore() + " " + cd2.gettitolo() + " COD: " + cd2.getcodice()); System.out.println (cd3.getautore() + " " + cd3.gettitolo() + " COD: " + cd3.getcodice()); System.out.println (cd4.getautore() + " " + cd4.gettitolo() + " COD: " + cd4.getcodice()); public void registravendita(int fcod) { if (fcod==cd1.getcodice()) cd1.venduto(); else if (fcod==cd2.getcodice()) cd2.venduto(); else if (fcod==cd3.getcodice()) cd3.venduto(); else if (fcod==cd4.getcodice()) cd4.venduto(); numvendite++; public CD getpiuvenduto() { CD cdpiuvenduto = cd1; if (cd2.getvenduti()>cdpiuvenduto.getvenduti()) cdpiuvenduto=cd2; if (cd3.getvenduti()>cdpiuvenduto.getvenduti()) cdpiuvenduto=cd3; if (cd4.getvenduti()>cdpiuvenduto.getvenduti()) cdpiuvenduto=cd4; return cdpiuvenduto; public int getvendite() { return numvendite; import java.util.*; public class NegozioClient { /** Creates a new instance of NegozioClient */ public NegozioClient() { public static void main(string[] args) { // TODO code application logic here CD mycd1 = new CD ("Buoni o cattivi", "Vasco Rossi", 1); CD mycd2 = new CD ("All that you can't leave behind", "U2", 2); CD mycd3 = new CD ("Out of time", "R.E.M.", 3); CD mycd4 = new CD ("Sugar", "Zucchero", 4); Negozio cdshop = new Negozio (mycd1, mycd2,mycd3,mycd4); String risp; int codice; Scanner in; cdshop.stampaelenco(); System.out.println ("Vuoi acquistare un CD? Inserisci il codice. Stop per uscire."); in= new Scanner (System.in); risp=in.nextline(); while (!risp.equalsignorecase("stop")) { codice= Integer.parseInt(risp); cdshop.registravendita(codice); System.out.println("Vuoi acquistare un altro CD? Inserisce il codice. STOP per uscire"); in= new Scanner (System.in); risp=in.nextline(); CD bestcd; bestcd=cdshop.getpiuvenduto(); System.out.println ("Il cd più venduto è: "+ bestcd.gettitolo()); System.out.println ("Il numero totale delle vendite é:" + cdshop.getvendite());