170 likes | 289 Views
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:
E N D
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: 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(); masa este o variabila de tip primitiv
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: • iEsire cu citirea unei date de intrare: in = JOptionPane.showInputDialog("Ce.."); varsta = Integer.parseInt(in); sau inaltimea = Float.parseFloat(in); • Cod iEsire in mod grafic predefinit: JOptionPane.showMessageDialog(null, masaideala,"Masa ideala", JOptionPane.INFORMATION_MESSAGE); String int float
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 • o colectie ordonata de elemente de acelaşi tip (primitiv, obiect sau alte tablouri) numit de baza; • un element poate stoca o singur valoare de tipul celui de baza ; • elementele se identifica unic printr-un intreg numit indice; • numarul de elemente de tablou se fixeaza în momentul crearii acestuia.
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. cu iniţial
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 • 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 • http://www.oracle.com/technetwork/java/javase/documentation/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