Corso JAVA Lezione n° 12 Istituto Statale di Istruzione Superiore “F. Enriques”

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A2 Java: le basi del linguaggio.
Java Stream e File.
Java Stream e File. La classe File Per operare con lintero file java mette a disposizione la classe File Per utilizzare la classe File è necessario importare.
Costruttori e Distruttori
Package Utilizzo classi.
Recupero debito quarto anno Primo incontro
12/11/2004Laboratorio di Programmazione - Luca Tesei1 Caratteri – Input da Console Il tipo char Input dallo standard input.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
LIP: 4 Aprile 2008 ECCEZIONI. Eccezioni Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
LIP: 19 Aprile Contenuto Soluzione Compitino Tipo di dato MultiSet, estensione con sottoclasse.
Liste Ordinate 3 Maggio Ultima Lezione Abbiamo visto i tipi di dato astratti IntList e StringList Realizzano liste di interi e di stringhe Realizzati.
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Un nuovo tipo di dati Gli array.
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Fisica Computazionale I - 51 OPERAZIONI DI INPUT/OUTPUT Le operazioni di input/output sono estremamente complesse perche' implicano una sostanziale interazione.
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: funzione di output a video Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Introduzione agli stream e alle classi
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Primi programmi in Java
Java Serialization.
Java base III: Array e Stringhe
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori. Lapproccio classico consiste nellinse- rire controlli.
Programmazione in Java
Problema dell’ordinamento di un array: Il metodo Bubble Sort.
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
Diagramma di flusso del problema del Supermercato.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
11/11/2004Laboratorio di Programmazione - Luca Tesei1 Operazioni numeriche - Input Espressioni, funzioni matematiche, classi involucro, Acquisizione di.
Diagramma di flusso del problema del Calcolo del Bollo di Circolazione
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Corso JAVA Lezione n° 11 Istituto Statale di Istruzione Superiore “F. Enriques”
Problema dei Contratti Telefonici
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Conversione da base 10 a base X (Utilizzo della pila)
Corso di Programmazione in Java – Esercizio n° 001
Diagramma di flusso del problema dello stipendio del rappresentante.
Le eccezioni F. Bombi 01/11/ Errori e situazioni impreviste situazioni eccezionali In un programma situazioni eccezionali possono.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Ricerca sequenziale in un array di interi
Lezione n° 07 - Esercitazione
Corso JAVA Lezione n° 02 Istituto Statale di Istruzione Superiore “F. Enriques”
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Una "vera" classe.. ..un esempio pratico: la calcolatrice
Ingresso e uscita in Java F. Bombi 10 ottobre 2002.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Corso JAVA Lezione n° 03 Istituto Statale di Istruzione Superiore “F. Enriques”
1 novembre I nomi in Java F. Bombi 1 novembre 2002.
1 Corso di Informatica (Programmazione) Lezione 8 (7 novembre 2008) Programmazione in Java: operatori aritmetici, operatori di assegnamento e cast.
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Ottobre 2014.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
Università di Torino – Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a prof. Viviana Bono Blocco 7 – Array.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
Programmazione in Java. Classi I programmi in Java consistono di classi. Le classi consentono di definire: collezioni di procedure (metodi statici) tipi.
LIP: 22 Marzo 2005 Eccezioni. Eccezioni-Richiami Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
Cose nuove di Java (prima a chiacchiera, poi formalmente)
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
LIP: 15 Marzo 2005 Vettori di interi. Esercizio proposto Definire una classe VectorInt i cui oggetti sono vettori omogenei di interi ordinati in modo.
13/08/02Input 1 Interagire con il computer Da tastiera Da riga di comando Funzioni di conversione.
Transcript della presentazione:

Corso JAVA Lezione n° 12 Istituto Statale di Istruzione Superiore “F. Enriques”

Corso di Programmazione in Java – Lezione n° 12 Input da Tastiera Fino ad oggi abbiamo visto come stampare a video un risultato tramite l’operazione System.out.println(). Oggi faremo vedremo brevemente come si può inserire un input da tastiera. Approfondiremo la gestione dell’input e dell’output nella lezione successiva, ma vi anticipo quali sono le istruzioni per leggere una stringa da tastiera solamente per rendere gli esercizi da svolgere un po’ più interessanti. Vedremo quindi un esempio su come immettere dei dati da tastiera, in particolare su come immettere un numero intero. Quello che dobbiamo fare è leggere una stringa di caratteri che inseriamo da tastiera e poi convertire tale stringa nel formato che più ci aggrada. Detto questo dobbiamo per forza dichiarare una String in cui andrà a finire tutto quello che verrà scritto sulla tastiera. String Stringa_di_Input; Istituto Statale di Istruzione Superiore “F. Enriques”

Corso di Programmazione in Java – Lezione n° 12 Input da Tastiera (2) Per leggere una stringa da tastiera, occorre usare il metodo readLine() di DataInputStream, che estende (ovvero e' derivata da) FilterInputStream, che a sua volta estende java.io.InputStream. Per accedere a DataInputStream.readLine() occorre istanziare un oggetto di tipo DataInputStream: DataInputStream leggilo = new DataInputStream(System.in); Al costruttore passiamo lo stream (flusso) da cui prendere input, che nel nostro caso e' System.in, ovvero la tastiera. Ora abbiamo un DataInputStream chiamato leggilo, che possiamo usare per leggere una stringa: Stringa_di_Input = leggilo.readLine(); Istituto Statale di Istruzione Superiore “F. Enriques”

Corso di Programmazione in Java – Lezione n° 12 Input da Tastiera (3) A questo punto abbiamo una stringa che contiene ciò che abbiamo digitato sulla tastiera. Adesso dobbiamo convertire tale stringa in qualcosa di più significativo: int x; x = Integer.valueOf(Stringa_di_Input); Se il dato fosse stato un float avremmo potuto usare: x float; x = Float.valueOf(stringa).floatValue(); x = Float.valueOf(stringa).intValue(); Nel primo caso se inseriamo 125,83 nella variabile x viene memorizzato il numero 125,83. Nel secondo caso nella variabile x viene memorizzato il numero 125. Istituto Statale di Istruzione Superiore “F. Enriques”

Corso di Programmazione in Java – Lezione n° 12 Le Eccezioni Quando si legge un input da tastiera, come quando si eseguono altre operazioni (tra cui l’utilizzo di array), sarebbe sempre consigliato gestire le eccezioni. Le eccezioni possono essere considerate come dei segnali che vengono generati dal sistema nel momento in cui si verificano degli errori durante l'esecuzione, e servono per far eseguire delle istruzioni di emergenza, come la stampa di messaggi di errore e/o l'interruzione del programma. Ad esempio: int mioarray[]; mioarray = new int[10]; for(int i =0; i<11; i++) mioarray[i]=i; ottengo il seguente risultato: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Visto che questo messaggio ad un utente inesperto è del tutto incomprensibile, magari vorremmo che invece di questo messaggio, ne venisse fuori un altro più comprensibile… Istituto Statale di Istruzione Superiore “F. Enriques”

Sintassi Try…Catch…Finally Corso di Programmazione in Java – Lezione n° 12 Sintassi Try…Catch…Finally Sintassi Try…Catch Per gestire le eccezioni si utilizzano le istruzioni try…catch try { Blocco Istruzioni; } catch ( tipo_di_eccezione e) { finally { Prova a fare queste istruzioni…. Se viene intercettata una eccezione di un certo tipo… … esegui queste istruzioni! Indipendentemente dall’esserci un’eccezione… … fai quest’altre istruzioni! Nota Bene: Il Blocco finally è facoltativo. Istituto Statale di Istruzione Superiore “F. Enriques”

Esempio di utilizzo del Try..Catch Corso di Programmazione in Java – Lezione n° 12 Esempio di utilizzo del Try..Catch Le istruzioni try…catch traducendole dall’inglese all’italiano significano: TRY = prova a fare …. CATCH= cattura, intercetta. e si utilizzano nel seguente modo… int mioarray[]; mioarray = new int[10]; try { for(int i =0; i<11; i++) mioarray[i]=i; } catch(Exception e) System.out.println(“Errore durante inserimento dati nell’array”); Inserisco 11 elementi in un array di 10: Ottengo una ArrayIndexOutOfBoundException!!! Con il try catch posso far stampare il messaggio di errore sullo schermo, altrimenti otterrei una terminazione anomala del programma. Istituto Statale di Istruzione Superiore “F. Enriques”

Alcuni tipi di eccezioni Corso di Programmazione in Java – Lezione n° 12 Alcuni tipi di eccezioni ArithmeticException: solitamente una divisione per zero. int i = 12 / 0 ; NullPointerException: accesso ad un oggetto non ancora istanziato. Image im[] = new Image[3]; String name = im[0].toString(); NegativeArraySizeException: tentativo di creare un array di dimensione negativa. ArrayIndexOutOfBoundException: tentativo di accesso ad un elemento dell’array fuori dalla dimensione definita. Le eccezioni vengono propagate all’indietro dal metodo in cui si verificano al metodo chiamante, fino ad incontrare il codice che la gestisca. Se nessun metodo gestisce l’eccezione lanciata, si arriva al metodo main( ). Se neanche il metodo main( ) cattura l’eccezione il programma termina in modo anomalo. Istituto Statale di Istruzione Superiore “F. Enriques”

Esempio di Input da Tastiera Corso di Programmazione in Java – Lezione n° 12 Esempio di Input da Tastiera public static void main(String[] args) { System.out.println("Inserisci un numero intero nella linea in basso..."); int x=0; DataInputStream stream = new DataInputStream(System.in); String stringa; try { stringa= stream.readLine(); x=Integer.valueOf(stringa); } catch(Exception e) System.out.println("Errore: " + e + " nella lettura da tastiera"); System.exit(0); System.out.println("Il numero che hai inserito è il numero: "+ x); }; Istituto Statale di Istruzione Superiore “F. Enriques”

Creare e gestire le proprie eccezioni Corso di Programmazione in Java – Lezione n° 12 Creare e gestire le proprie eccezioni Si possono creare e lanciare eccezioni direttamente, tramite l’istruzione Throw: try { …… if ( i < 0 ) throw new Exception(“eccezione di prova”); } catch (Exception e) System.out.println( e.getMessage() ); // msg contenuto System.out.println( e.toString() ); // breve descrizione dell’eccezione Istituto Statale di Istruzione Superiore “F. Enriques”

Corso di Programmazione in Java – Lezione n° 12 Precisazioni Durante la propagazione all'indietro delle eccezioni tutti i blocchi finally incontrati vengono eseguiti. Non tutte le eccezioni vanno catturate. Si tralasciano quelle che sono sottoclassi di Error e RuntimeException Tutti i metodi che accedono ad array possono generare una ArrayIndexOutOfBoundException che è una sottoclasse di RuntimeException, pertanto non è necessario gestirla (ma si può). Alcune eccezioni 'normali' vanno catturate: java.io.IOException, java.lang.InterruptedException, ... Per sapere quali siano queste eccezioni occorre consultare la documentazione dei metodi chiamati o gli errori del compilatore. Istituto Statale di Istruzione Superiore “F. Enriques”