12/11/2004Laboratorio di Programmazione - Luca Tesei1 Caratteri – Input da Console Il tipo char Input dallo standard input.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

IL PACKAGE java.io Il package java.io definisce quattro
Informatica 22/03/2012.
Accesso ai dati su file Lab. Sistemi Informativi Economico-Aziendali Accesso ai dati su file Localizzazione dei dati File system locali e distribuiti Protocolli.
© 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.
If a cascata, switch, operatori logici
2/11/2004Laboratorio di Programmazione - Luca Tesei1 Progettazione Fase di progettazione di unapplicazione Fase di implementazione.
Linguaggi Regolari e Linguaggi Liberi
26/10/2004Laboratorio di Programmazione - Luca Tesei1 Variabili e Oggetti Lo spazio di memoria di Java Le API di Java.
3/12/2004Laboratorio di Programmazione - Luca Tesei1 Sequenze di lunghezza variabile ArrayList Operazioni Ricerche.
5/11/2004Laboratorio di Programmazione - Luca Tesei1 Esercizi Su Progettazione e Implementazione di classi.
29/10/2004Laboratorio di Programmazione - Luca Tesei1 Metodi e variabili istanza Definizione e chiamata di metodi Uso delle variabili istanza Documentazione.
18/10/2004Programmazione e Laboratorio di Programmazione – Luca Tesei1 Programmazione e Laboratorio 2004/05 Informazioni Introduttive.
9/11/2004Laboratorio di Programmazione - Luca Tesei1 Tipi numerici di base - Costanti Interi e decimali Definizione di costanti.
22/10/2004Programmazione e Laboratorio di Programmazione – Luca Tesei1 Laboratorio – Primo Impatto Scrivere un semplice programma I primi concetti.
Programmazione e Laboratorio di Programmazione – Luca Tesei1 La Programmazione Cosè la programmazione? Concetti preliminari.
29/11/2004Laboratorio di Programmazione - Luca Tesei1 Ancora sulla progettazione/Pacchetti Concetti di coesione/accoppiamento/coerenza Uso dei package.
26/11/2004Laboratorio di Programmazione - Luca Tesei1 Input/Output Redirecting, scomposizione dellinput, uso di file.
2/11/2004Laboratorio di Programmazione - Luca Tesei1 Punto della situazione Da dove veniamo, dove andiamo.
Capitolo 8 Array Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl.
Programmazione Ingegneria TLC
1 Astrazioni sui dati : Specifica ed Implementazione di Tipi di Dato Astratti in Java.
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.
Laboratorio Matematica e Informatica
9/12/2004Laboratorio di Programmazione - Luca Tesei1 Ereditarietà
FUNZIONI DI BIBLIOTECA
Eccezioni Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
Algoritmi Politecnico di Milano C Primi programmi Politecnico di Milano.
Laboratorio di Linguaggi lezione XI: I/O Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
Fisica Computazionale I - 51 OPERAZIONI DI INPUT/OUTPUT Le operazioni di input/output sono estremamente complesse perche' implicano una sostanziale interazione.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
Corso di Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
Scomposizione di stringhe
Soluzione Esercizio - Classe Vettore
Capitolo 4 Tipi di dati fondamentali
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori. Lapproccio classico consiste nellinse- rire controlli.
Programmazione in Java
Programmazione in Java Claudia Raibulet
Programmazione in Java (9) Mauro Lorenzutti. 30/09/2005Corso Java - Mauro Lorenzutti2 Scaletta I/O Evoluto Serializzazione Comunicazioni via socket JUnit.
30 ottobre Mergesort F. Bombi 30 ottobre 2002.
Algoritmi di conversione in basi numeriche diverse
11/11/2004Laboratorio di Programmazione - Luca Tesei1 Operazioni numeriche - Input Espressioni, funzioni matematiche, classi involucro, Acquisizione di.
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° 12 Istituto Statale di Istruzione Superiore “F. Enriques”
Conversione da base 10 a base X (Utilizzo della pila)
Corso di Programmazione in Java – Esercizio n° 001
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.
15/11/2004Laboratorio di Programmazione - Luca Tesei1 Costrutto condizionale Scelte, blocchi.
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Programmazione ad oggetti
Ingresso e uscita in Java F. Bombi 10 ottobre 2002.
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Eccezioni Metodi parziali Eccezioni: Usi e Metodi parziali Eccezioni: rimuovere i requires Eccezioni: rimuovere i requires Eccezioni: definizione, sollevamento,
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
Input-Output 16 Maggio Nei programmi sviluppati sino ad oggi abbiamo usato * output su schermo (con System.out.print e System.out.print ) * input.
Esercitazione sull’ ordinamento 20 maggio 2003
10/10/20021 Ingresso e uscita in Java F. Bombi 10 ottobre 2002.
1 Input / Output Spesso un programma deve acquisire dati da una sorgente esterna o inviare informazioni a una destinazione esterna. L’informazione può.
13/08/02Input 1 Interagire con il computer Da tastiera Da riga di comando Funzioni di conversione.
Input in Java. Uso Scanner Un oggetto per la lettura dalla tastiera Piuttosto, per rappresentare la tastiera del nostro calcolatore useremo un oggetto.
Transcript della presentazione:

12/11/2004Laboratorio di Programmazione - Luca Tesei1 Caratteri – Input da Console Il tipo char Input dallo standard input

12/11/2004Laboratorio di Programmazione - Luca Tesei2 Il tipo base char Il tipo base char rappresenta i caratteri Come sappiamo Java gestisce tutto il set di caratteri Unicode Per indicare un carattere basta inserirlo tra due apici singoli: a Ogni sequenza di escape corrisponde a un carattere \n, \t, \u009F Un carattere ha associato un valore numerico reperibile con Character.getNumericValue

12/11/2004Laboratorio di Programmazione - Luca Tesei3 Caratteri e Stringhe h è un char h è una stringa, quindi un oggetto dello Heap, che contiene un solo carattere h Pippo.charAt(0) ritorna il carattere P Nelle stringhe i caratteri sono numerati da 0 in su Pippo.length() ritorna 5, la lunghezza della stringa Consultare le API

12/11/2004Laboratorio di Programmazione - Luca Tesei4 Input da console Oltre che da una finestra di dialogo linput può essere prelevato da uno stream di ingresso In Java, così come in C e in altri linguaggi, esiste uno stream apposito per questo che viene chiamato standard input Conosciamo già System.out, che è lo standard output, e sappiamo che è un oggetto della classe java.io.PrintStream System.in è un oggetto della classe java.io.InputStream ed è lo standard input

12/11/2004Laboratorio di Programmazione - Luca Tesei5 Ottenere linput Un oggetto della classe InputStream, quale è System.in, è in grado di leggere un byte per volta dallo stream che rappresenta Non è molto comodo Quello che vorremmo è poter ottenere, come con la finestra di dialogo, una stringa di input Per prima cosa bisogna incapsulare loggetto System.in, di tipo InputStream, in un oggetto della classe java.io.InputStreamReader

12/11/2004Laboratorio di Programmazione - Luca Tesei6 Ottenere linput Un oggetto della classe InputStreamReader interpreta i byte di un oggetto InputStream come caratteri (tipo base char di Java) È un passo avanti per arrivare al nostro obiettivo I costruttori di questi oggetti richiedono sempre come argomento unoggetto della classe InputStream Possiamo quindi usare System.in

12/11/2004Laboratorio di Programmazione - Luca Tesei7 Ottenere linput InputStreamReader reader = new InputStreamReader(System.in); reader può restituire linput sotto forma di un carattere per volta (guardare le API e scoprire come mai il metodo read restituisce un int piuttosto che un char ) Possiamo ottenere di meglio Gli oggetti della classe java.io.BufferedReader possono restituire stringhe formate da caratteri di uno stream di caratteri

12/11/2004Laboratorio di Programmazione - Luca Tesei8 Ottenere linput BufferedReader console = new BufferedReader(reader); Il costruttore richiede un oggetto della classe java.io.Reader, di cui InputStreamReader è una sottoclasse Possiamo quindi passare il nostro oggetto System.in, incapsulato nelloggetto reader di tipo InputStreamReader, al costruttore e ottenere loggetto riferito da console

12/11/2004Laboratorio di Programmazione - Luca Tesei9 Ottenere linput Sugli oggetti della classe BufferedReader è possibile chiamare il metodo readLine() che restituisce una stringa contentente una linea di testo Questo è quello che volevamo ottenere

12/11/2004Laboratorio di Programmazione - Luca Tesei10 Ottenere linput Ricapitolando: InputStreamReader reader = new InputStreamReader(System.in); BufferedReader console = new BufferedReader(reader); Oppure BufferedReader console = new BufferedReader(new InputStreamReader(System.in));

12/11/2004Laboratorio di Programmazione - Luca Tesei11 Ottenere linput A questo punto: String input = console.readLine(); Aspetta fino a quando lutente non digita una linea di testo e preme Invio La linea scritta è contenuta nella stringa riferita da input A questo punto possiamo fare il parsing della stringa con i metodi delle classi involucro se ci aspettiamo linserimento di un valore di un certo tipo (es Integer.parseInt )

12/11/2004Laboratorio di Programmazione - Luca Tesei12 IOException Abbiamo già visto che il metodo Integer.parseInt può sollevare uneccezione se la stringa passata non contiene le cifre di un intero Anche il metodo readLine della classe BufferedReader può sollevare uneccezione se qualcosa va storto con il reperimento dellinput Leccezione è del tipo IOException Leccezione IOException è uneccezione che deve essere gestita obbligatoriamente Nel caso non la si voglia gestire si deve esplicitare che il metodo che stiamo scrivendo la può sollevare

12/11/2004Laboratorio di Programmazione - Luca Tesei13 Throws Nel nostro caso il metodo che chiama readLine è il main Siccome ancora non abbiamo visto come gestire leccezione dobbiamo esplicitamente dichiarare che non la gestiamo scrivendo public static void main(String[] argv) throws IOException {... }

12/11/2004Laboratorio di Programmazione - Luca Tesei14 Un programma di esempio import java.io.*; public class InputDaConsole { public static void main(String argv[]) throws IOException { BufferedReader console = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Quanti nickels hai?"); String input = console.readLine(); int nickels = Integer.parseInt(input); System.out.println("Hai scritto " + nickels); }

12/11/2004Laboratorio di Programmazione - Luca Tesei15 Esercizio Riscrivere il costruttore della classe Purse in modo che chieda in input il numero di monete iniziali Aggiungere alla classe Purse un metodo che restituisca il totale in dollari e in penny (100 penny = 1 dollaro) (Suggerimento: usare la divisione intera e il resto della divisione intera)

12/11/2004Laboratorio di Programmazione - Luca Tesei16 Esercizio Scrivere una classe RisolutoreEquazione2Grado Il costruttore deve chiedere in input i coefficienti a, b, c dellequazione Implementare i due metodi per dare le due soluzioni: –public double getFirstSolution() –public double getSecondSolution() Scrivere una classe test

12/11/2004Laboratorio di Programmazione - Luca Tesei17 Esercizio Scrivere un programma che assista un cassiere nel dare il resto Input: sommaDaPagare e sommaRicevuta La differenza sommaRicevuta – sommaDaPagare rappresenta il resto da dare Il resto deve essere corrisposto usando le seguenti banconote/monete: 1 dollaro, 1 Quarter, 1 Dimes, 1 Nickel, 1 Penny Il programma deve indicare quante monete di ogni tipo il cassiere deve dare --continua

12/11/2004Laboratorio di Programmazione - Luca Tesei18 Esercizio contd Il programma deve fornire una soluzione che corrisponda allerogazione del minimo numero possibile di banconote/monete Esempio Cassiere harry = new Cassiere(); harry.setSommaDaPagare(8.37); harry.riceve(10); int dollars = harry.returnDollars(); // Restituisce 1 int quarters = harry.returnQuarters(); // Restituisce 2 int dimes = harry.returnDimes(); // Restituisce 1 int nickels = harry.returnNickels(); // Restituisce 0 int pennies = harry.returnPennies(); // Restituisce 3

12/11/2004Laboratorio di Programmazione - Luca Tesei19 Esercizio Scrivere un programma che legge un numero intero e poi stampa le sue cifre, una ad una, in ordine inverso Esempio: se leggo Deve stampare

12/11/2004Laboratorio di Programmazione - Luca Tesei20 Esercizio Scrivere un programma che calcoli la data della domenica di Pasqua, che è la prima domenica dopo la prima luna piena di primavera, di un qualunque anno. Si usi il seguente algoritmo ideato da Carl Friedrich Gauss nel 1800: Sia y lanno (1800, 2001,...) Dividi y per 19 ottenendo il resto a. Ignora il quoziente Dividi y per 100 ottenendo il quoziente b e il resto c Continua

12/11/2004Laboratorio di Programmazione - Luca Tesei21 Esercizio contd Dividi b per 4 ottenendo quoziente d e resto e Dividi 8 * b + 13 per 25 ottenendo il quoziente g. Ignora il resto. Dividi 19 * a + b - d - g + 15 per 30 ottenendo il resto h. Ignora il quoziente. Dividi c per 4, ottenendo il quoziente j e il resto k Dividi a + 11 * h per 319, ottenendo il quoziente m. Ignora il resto Continua

12/11/2004Laboratorio di Programmazione - Luca Tesei22 Esercizio contd Dividi 2 * e + 2 * j - k - h + m + 32 per 7 ottenendo il resto r. Ignora il quoziente Dividi h - m + r + 90 per 25, ottenendo il quoziente n. Ignora il resto Dividi h - m + r + n + 19 per 32 ottenendo il resto p. Ignora il quoziente Pasqua cade il giorno p del mese n Scrivere una classe Year con metodi getEasterDay() e getEasterMonth()