Java - Operatii de Intrare/iEsire (I/E)

Download Report

Transcript Java - Operatii de Intrare/iEsire (I/E)

C3 – LPO: I/E, tablou, sir
CUPRINS

Citirea datelor in mod

text, grafic
Afisarea datelor in mod


text, grafic
Tablouri


definitie, declaratie, creare si utilizare
Siruri



definitie, declaratie, creare si utilizare
metode
Obiective
Dupa parcurgerea acestui curs ar trebuie sa puteti:
 efectua operatii de intrare/iesire (citire/afisare) a
unor valori corespunzatoare tipurilor primitive din
Java, atat in mod linie comanda (text) cat si in mod
grafic (predefinit sau definit de utilizator);
 declarati, creati, utilizati, citi si afisa tablouri de
tipuri primitive pentru prelucarea unor grupuri de
valori numerice
 declarati, creati, prelucrati, citi si afisa siruri
alfanumerice necesare pentru alcatuirea unor
interfete de aplicatii
Operatii de intrare/iesire in
mod text - 1




Afisarea datelor de I/E se face utilizand caractere
alfanumerice (litere si cifre);
Viteza de afisare este mare, memoria consumata
putina;
Este specific aplicatiilor ce utilizeaza interfete de tip
linie comanda;
Mediul JDeveloper trebuie configurat pentru a
permite operatiile de Intrare (vezi laboratorul 1).
Operatii de intrare/iesire in mod
text - 2 Text intre “ …“ = Sir de
caractere

Cod Afisare-iEsire in mod text:
System.out.print("Ce varsta ai: ");
sau
System.out.print("Barbat: "+masa+"kg");

Cod Citire-Intrare in mod text:

Import:
masa este o variabila
de tip primitiv
import java.util.Scanner;ds

Declaratii:
Scanner intrare;
intrare = new Scanner(System.in);



Citire real (float): intrare.nextFloat();
Citire intreg (int): intrare.nextInteger();
Citire intreg (byte): intrare.nextByte();
I/E in mod grafic – predefinit - 1




Adaptorul video lucreaza in mod grafic
generand pixeli si nu caractere;
Conversatia se face prin ferestre de dialog;
Forma si organizarea acestor ferestre este
predefinita;
Programatorul trebuie sa cunoasca numele si
structura fiecarui element de I/E predefinit (se
gasesc definite in documentatia Java).
I/E in mod grafic – predefinit - 2

Cod Intrare in mod grafic predefinit:

String
int
iEsire cu citirea unei date de intrare:
in = JOptionPane.showInputDialog("Ce..");
varsta = Integer.parseInt(in);
sau
float

inaltimea = Float.parseFloat(in);
Cod iEsire in mod grafic predefinit:
JOptionPane.showMessageDialog(null,
masaideala,"Masa ideala",
JOptionPane.INFORMATION_MESSAGE);
I/E in mod grafic


Se face cu ajutorul obiectelor JTextField si JLabel.
Obiectele se iau din fereastra Component
Palette (dreapta-sus) a mediului.
Cod Intrare in mod grafic definit de
utilizator (tempTextField este JTextField):
tempTextField.getText()

Cod iEsire in mod grafic definit de
utilizator (fahreheitLabel este JLabel):
fahreheitLabel.setText(tempFahr + "Fah..")
Obiect
Metoda
Parametru sir
Tabouri - 1




Indice
o colectie ordonata de elemente de
[0]
acelaşi tip (primitiv, obiect sau alte
[1]
tablouri) numit de baza;
[2]
[3]
un element poate stoca o singur
valoare de tipul celui de baza ;
elementele se identifica unic printr-un
Indice
intreg numit indice;
[0]
numarul de elemente de tablou se [1]
fixeaza în momentul crearii acestuia. [2]
[3]
Valoare
element
1
7
23
1
Valoare
element
Punct
Punct
Punct
Punct
Tablouri -2: declarare,
constructie, initializare




declararea tabloului (numele tabloului si tipul de
baza al elementelor): int []a;
crearea unui obiect tablou (alocarea spatiului pe
heap, nr. de el trebuie sa fie cunoscut): a = new
int[4];
initializarea tabloului: int[] a = {1, 7, 23,
1};
indicele [0, nr_elem-1] > altfel apare
exceptia “array index out of bounds”
 accesul la un element:
a[indice]
Exceptii




O executie anormala a programului
Exceptiile se prind sau de declara
Orice exceptie mosteneste superclasa java.lang.Throwable
Prinderea unei exceptii se face cu secventa de cod:
try {
//codul care genereaza exceptie
}
catch (tipExceptie nume) {
//codul de tratare a exceptiei vine aici
}

Blocul try contine codul care genereaza exceptia blocul catch
trateaza exceptia
Exceptii întâlnite la tablouri

utilizarea unei indice în afara domeniului permis genereaza
exceptia de tip ArrayIndexOutOfBoundsException:
int [] a = new int[7];
System.out.println(a[13]);
(în exemplul anterior indicele poate fi în domeniu [0, 6 = 7-1])
 accesarea unor membri unui element obiect care înca nu a fost
initializat genereaza exceptia de tip NullPointerException:
puncte = new PunctOK[3];
System.out.println(puncte[0].x());
(în exemplul anterior 0 apartine lui [0, 2], dar nu s-a folosit new
punct[0] pentru crearea unui obiect PunctOK)
Siruri - 1






Exista o clasa numita String si predefinita in java.lang.String
Java NU are implementat un tip primitiv şir de caractere
O secventa de caractere Unicode stocate intr-un tablou ce se
pot accesa doar, indirect, prin metodele clasei
Sirurile sunt imuabile, odata create nu se mai pot modifica
Desi exista operatii ce par a modifica sirul (numarul de
caractere, spatiile, …) in realitate se creeaza un sir nou
Literalii sir se scriu intre ghilimele (vezi mai jos ”Salut” este
literal).
String s; //decl. unui obiect şir
String sal = ”Salut”; //decl.
iniţial
cu
Siruri - 2

Citire sir in mode text:
String nume;
Scanner in = new Scanner(System.in);
// citire sir si atribuire
nume = in.nextLine();
in.close();

Operatori pentru manipularea sirurilor:



atribuirea (=);
concatenarea (+): nume=nume+" salut!";
atribuirea compusă (+=): nume+=" salut!";
Siruri - 3
String s ="unSir cu spatii";
//
012345678901234

Metodele obiectelor sir:




s.length(): numarul de caractere;
s.charAt(2): asigura accesul la elemetele individuale (primul
element are indicele 0);
s.subSequence(1,5): intoarce o portiune din sir;
s.indexOf("sp"): cauta prima aparitie a caracterului sau subsirului
si intoarce pozitia primului caracter sau –1 daca nu exista.
15
S
nSir
9
Rezumat






Operatiile de Intrare/iEsire in Java se pot realiza in mod text sau grafic
(predefinit sau definit de utilizator)
I/E in mod text si grafic predefinite se fac pe baza unor metode
definite in pachete
I/E in mod grafic definit de utilizator se face prin definirea interfetei de
catre programator
Tabloul este o structura de date formata dintr-o lista numerotata de
articole de acelasi tip. Etapele lucrului cu tablourile sunt: declararea,
crearea, initializarea si utilizarea.
Utilizarea tablourilor poate conduce la exceptii. Java implementeaza
un mecanism de tratare a conditiilor exceptionale de executie
Manipularea sirurilor in Java se face cu o clasa predefinita String.
Aceasta pune la dispozitia programatorului metode specifice pentru
prelucare.
Intrebari
1)
2)
3)
4)
5)
Care este codul Java pentru afişarea unui sir in mod text
pe ecran si intr-o fereastra de ieşire predefinita?
Care este codul Java pentru citirea unui sir in mod text
pe ecran sau dintr-o fereastra de ieşire predefinita?
Când se utilizează tablourile in locul variabilelor de tip
primitiv?
Ce excepţii pot apare la manipularea greşita a
elementelor de tablou?
Ce metode cunoaşteţi pentru accesul la caracterele unui
sir?
Bibliografie
1.
2.
3.
4.
5.
6.
http://www.oracle.com/technetwork/java/javase/documenta
tion/index.html
http://docs.oracle.com/javase/6/docs/
Ştefan Tanasă, Cristian Olaru, Ştefan Andrei, Java de la 0
la expert, Polirom, 2003, ISBN: 973-681-201-4.
Herber Schild, Java 2 - The Complete Reference, Fourth
Edition, Osborne, 2001, ISBN: 0-07-213084-9.
Deitel H.M., Deitel P. J., Java - How to programm, Fith
Edition, Prentice Hall, 2003, ISBN: 0-13-120236-7.
http://www.east.utcluj.ro/mb/mep/antal/downloads.html