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

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

Iterazioni. L istruzione while. while (condition) istruzione

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

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

Programmazione Java (Applicazioni e Applet )

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

Le basi del linguaggio Java

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

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

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

Simulatore di un miscelatore di acqua

Eventi di azione. // con interfaccia per eventi di azione

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

Esempio su strutture dati dinamiche: ArrayList

Alberi Binario in Java

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone

Operazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Ricerca e ordinamento su array di oggetti. Corso di Programmazione 2 Esercitazione 5

Operazioni di scrittura e lettura con periferici in linguaggio Java

Corso di Reti di Calcolatori L-A

Corso sul linguaggio Java

Corso sul linguaggio Java

Classi Wrapper. int Integer float Float char Char byte Byte double Double. classe "wrapper"

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

Gestione delle Eccezioni

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

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

Programmazione 2 - Marco Ronchetti. Fondamenti di Java. Fac.Scienze Università di Trento. Static

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni

Prova d Esame Compito A

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

Gestione di errori e situazioni eccezionali. Gestione delle eccezioni. Gestione tradizionale di errori e situazioni eccezionali (2)

Corso sul linguaggio Java

L interfaccia grafica con Java

Scope e visibilità per classi

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

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

Decomposizione per scelta

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio

Programmazione ad Oggetti. Java Parte II

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

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

Implementazione ADT: Alberi

Eccezioni Precisazioni e approfondimenti

GESTIONE DEGLI ERRORI

La fase di progetto e realizzazione. PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Diagramma delle classi realizzativo

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

Programmazione ad Oggetti

Creazione, eliminazione, lettura e scrittura di file di testo

Esercizi della lezione 5 di Java

Le basi del linguaggio Java

Corso sul linguaggio Java

Politecnico di Milano

Costrutti iterativi. Utilizzo dei costrutti iterativi

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

Corso di Reti di Calcolatori L-A

Compute engine generici in RMI

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Flussi, lettori e scrittori

Polimorfismo parametrico vs polimorfismo per inclusione

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

Riassunto. I mattoni di base di un programma Java. Oggi. Un programma complicato. Oggi. Perché è complicato? Stefano Mizzaro 1.

Gestione delle eccezioni Individuazione e ripristino parseint Individuazione e ripristino Individuazione e ripristino parseint

Metodi statici. Dichiarazione e chiamata di metodi statici

Esercizio monitor. Sistemi Operativi T 1

Laboratorio di Programmazione 1 [Java]

Programmazione Orientata agli Oggetti in Linguaggio Java

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Unità 2 I file binari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

Esercitazione n 3. Capacità di analisi e di estensione di progetti esistenti Linguaggio Java:

Eccezioni. Comportamento di default (esempio) Propagazione delle eccezioni

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

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

singoli campi la classe Constructor permette di creare nuovi oggetti.

Esempio: Interfacce. Gioco Interfacce

Prima lezione di laboratorio. I mattoni di base di un programma Java. Comandi Unix. Riassunto. Oggi. Un programma complicato.

Unità B3 Strutture di controllo

Corso di Laurea in Informatica e Comunicazione Digitale. a.a Interazione Uomo-Macchina. Introduzione a Java.

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

Corso sul linguaggio Java

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

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP

Esempio: Interfacce. Gioco Interfacce

Corso sul linguaggio Java

Prova d Esame Compito A

Restrizioni per la sicurezza

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

Gestione delle eccezioni

Chiamata delle funzioni JavaScript da un applet

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

Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso

Cifratura simmetrica

Programmazione II Compitino (Vers. B)

Prova d Esame Compito B

Applicazioni web. Parte 10 Socket. Alberto Ferrari

Ottava Esercitazione. introduzione ai thread java mutua esclusione

Linguaggio Java. Testo adottato: S. Mizzaro, Introduzione alla programmazione con il linguaggio Java.

Interfacce e polimorfismo

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali

Transcript:

Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM ERRATA CORRIGE dei programmi della prima stampa (Aprile 2004) aggiornato al 20/05/2017 Nota: il codice corretto è ottenibile da quella errato con tre tipi di operazioni riconoscibili dal colore. LEGENDA dei colori: sostituzione inserimento cancellazione Pag. 93 (Cap. 2) class OrdinaDueInteri { int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); if (a < b) { System.out.println(a); System.out.println(b); //notare l'assenza del ; dopo else { System.out.println(b); System.out.println(a); //endif Pag. 111 (Cap. 2) /*ricerca del massimo di un vettore uso: java Massimo i1 i2 in */ class Massimo { int[] v = new int[args.length]; for (int i=0;i<args.length;i++) v[i] = Integer.parseInt(args[i]); System.out.println("Il massimo e` " + max(v)); Pag. 113 (Cap. 2) static double valutapolinomio(double a[], double x) { double ris = a[0]; for(int i = 1; i<a.length; i++) ris = ris * x + a[i]; return ris; class ProvaPolinomio { public static void main(string[] args){ double[] p = new double[] {1.0, -3.0, 5.0; System.out.println(valutaPolinomio(p,3.0)); // scrive 5.0 static double valutapolinomio(double a[], double x) {

pag. 125 (Cap. 2) import java.io.*; class ConfrontoIngenuo { // N.B. va in ciclo infinito! public static void main(string[] args) throws IOException{ InputStreamReader input = new InputStreamReader(System.in); BufferedReader tastiera = new BufferedReader(input); String s=""; while (s!="fine") { // N.B. questo confronto darà sempre TRUE! s = tastiera.readline(); //endw (a) import java.io.*; class ConfrontoCorretto { // versione corretta della classe precedente public static void main(string[] args) throws IOException{ InputStreamReader input = new InputStreamReader(System.in); BufferedReader tastiera = new BufferedReader(input); String s=""; while (!s.equals("fine")) { s = tastiera.readline(); //endw pag. 131 (Cap. 2) class PuntoImmutabile { private int x,y; PuntoImmutabile(int x0, int y0) { x=x0; y=y0; PuntoImmutabile traslato(int deltax, int deltay) { return new PuntoImmutabile(x+deltaX,y+deltaY); Fig. 2.59 Una classe di oggetti immutabili. pag. 133 (Cap. 2) import java.math.bigdecimal;/* calcoli con BigDecimal */ class ProvaBigDecimal { BigDecimal undecimoesatto = new BigDecimal("0.1"); BigDecimal undecimofloat= new BigDecimal(0.1f); BigDecimal undecimodouble= new BigDecimal(0.1); System.out.println(unDecimoEsatto+" esatto"); System.out.println("0.1 float = "+ undecimofloat); System.out.println("0.1 double="+ undecimodouble); System.out.println("0.1 float ^2=" + undecimofloat.multiply(undecimofloat)); Fig. 2.61 Calcoli con BigDecimal.

pag. 180 (Cap. 3) /* Chiamare con: java Hello1ConEccezione Nome Cognome */ class Hello1ConEccezione { public static void main(string[] args){ try { System.out.println("Salve "+args[0]+' '+args[1]+'!'); catch (ArrayIndexOutOfBoundsException e) { System.err.println("l'indice fuori dai limiti vale:"+e.getmessage() ); System.err.println("Hai dimenticato il nome e/o il cognome"); pag. 183 (Cap. 3) /* Somma di due numeri letti da tastiera con gest. eccezioni*/ import java.io.*; class SommaConEccezioni{ int a,b,som; InputStreamReader input= new InputStreamReader(System.in); BufferedReader tastiera = new BufferedReader(input); try { System.out.print("dammi il primo numero :"); a = Integer.parseInt(tastiera.readLine().trim()); System.out.print("dammi il secondo numero :"); b = Integer.parseInt(tastiera.readLine().trim()); som = a+b; System.out.println("la somma e`"+som); catch (IOException e) { System.err.println("Errore di IO. Dettagli:"); e.printstacktrace(); pag. 259 (Cap. 3) import java.awt.*; import java.awt.event.*; public class CombinatoreTelefonico { Frame f = new Frame("Combinatore telefonico"); f.setsize(200,200); // dimensioni iniziali f.setlocation(400,400); f.setlayout(new GridLayout(4,3)); Button tasti[] = { new Button("1"),new Button("2"),new Button("3"), new Button("4"),new Button("5"),new Button("6"), new Button("7"),new Button("8"),new Button("9"), new Button("*"),new Button("0"),new Button("#"); for (int i=0;i<tasti.length;i++) f.add(tasti[i]); f.setvisible(true);

pag. 268 (Cap. 3) /* Applet somma con lettura di parametri */ import java.awt.*; import java.awt.event.*; import java.applet.applet; public class AppletSomma extends Applet implements ActionListener { TextField text1,text2,risultato; public void init() { String param1 = getparameter("primo"); if (param1==null) param1="0"; String param2 = getparameter("secondo"); if (param2==null) param2="0"; pag. 290 (Cap. 4) import java.util.random; public class Dado { //versione appropriata //ATTRIBUTI protected Random gencas; protected int esito; // COSTRUTTORI public Dado() { genacas = new Random(); lancia(); public Dado(long seme) { gencas = new Random(seme); lancia(); //METODI public void lancia() { esito = 1 + gencas.nextint(6); public int getesito(){ return esito; pag. 329 (Cap. 4) class AttivitaComposta extends Attivita { Attivita [] componenti; AttivitaComposta (String descrizione, Attivita[] componenti) { this.componenti = componenti; this.descrizione = descrizione; pag. 335 (Cap. 4) /* Prova di riflessione - G. Callegarin - 2004 */ import java.lang.reflect.*; class Saluti {

pag. 342 (Cap. 5) static NodoConc listanumeridalprimo(int n) { NodoConc ris=null; if (n>0) { ris = new NodoConc(new Integer(1),null); NodoConc hprec=ris; for (int i=2; i<=n; i++) { NodoConc h = new NodoConc(new Integer(i),null); hprec.next = h; // modifica (1) di Fig. 5.8 hprec = h; // modifica (2) di Fig. 5.8 return ris; pag. 357 (Cap. 5) /*G. Callegarin - "Java, Oggetti e Strutture Dati", 2004 */ package javaosd.strutture.pile; import javaosd.strutture.nodi.nodoconc public class Pila { pag. 358 (Cap. 5) /*G. Callegarin - "Java, Oggetti e Strutture Dati", 2004 */ package javaosd.strutture.pile; public class PilaLimitata { protected Object elementi[]; protected int sp; // stack pointer protected int capacita; public PilaLimitata(int capacita) { sp=-1; // stack vuoto this.capacita=capacita; elementi = new Object[capacita]; pag. 387 (Cap. 5) /*G. Callegarin - "Java, Oggetti e Strutture Dati", 2004 Implementazione degli alberi binari come oggetti */ package javaosd.strutture.alberibinari; import javaosd.strutture.*; public IteratoreAlberoBin newiterator() { // visita anticipata return new IteratoreAlberoBin(this); //altri metodi per altri tipi di visita

pag. 405 (Cap. 5) /* G. Callegarin - "Java, Oggetti e Strutture Dati", 2004 Iteratore per gli alberi binari di ricerca */ package javaosd.strutture.alberibinari; import javaosd.strutture.pile.pila; import javaosd.strutture.iteratore; public class IteratoreABR implements Iteratore { ABR daattraversare,cursore; Pila s; public IteratoreABR(ABR a){ daattraversare=a; s=new Pila(); gofirst(); public boolean inside() { return!cursore.isempty(); public Comparable current() { assert inside() : "'getcurrent' non applicabile"; return cursore.info; public ABR currenttree() { assert inside() : "'currenttree' non applicabile"; return cursore; public void gofirst() { cursore=daattraversare; s=new Pila(); if (!cursore.isempty()) while (!cursore.left.isempty()) { s.push(cursore); cursore=cursore.left; pag. 406 (Cap. 5) /* G. Callegarin - "Java, Oggetti e Strutture Dati", 2004 prova ABR e suo iteratore */ import javaosd.strutture.alberibinari.abr; import javaosd.strutture.alberibinari.iteratoreabr; class ProvaABR { Fine Errata Corrige