lpo_c3_ie

17
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

Upload: alina-mafteor

Post on 24-Dec-2015

212 views

Category:

Documents


0 download

DESCRIPTION

dsg

TRANSCRIPT

Page 1: LPO_C3_IE

C3 – LPO: I/E, tablou, sirCUPRINS 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

Page 2: LPO_C3_IE

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

Page 3: LPO_C3_IE

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).

Page 4: LPO_C3_IE

Operatii de intrare/iesire in mod text - 2

Cod Afisare-iEsire in mod text:System.out.print("Ce varsta ai: ");

sauSystem.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();

Text intre “ …“ = Sir de caractere

masa este o variabila de tip

primitiv

Page 5: LPO_C3_IE

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).

Page 6: LPO_C3_IE

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);

sauinaltimea = Float.parseFloat(in);

Cod iEsire in mod grafic predefinit:JOptionPane.showMessageDialog(null,

masaideala,"Masa ideala",JOptionPane.INFORMATION_MESSAGE);

String

int

float

Page 7: LPO_C3_IE

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

Page 8: LPO_C3_IE

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.

7

1

23

1

Indice Valoareelement

[0]

[1]

[2]

[3]

Punct

Punct

Punct

Punct

Punct

Indice Valoareelement

[0]

[1]

[2]

[3]

Page 9: LPO_C3_IE

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 apareexceptia “array index out of bounds” accesul la un element: a[indice]

Page 10: LPO_C3_IE

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

Page 11: LPO_C3_IE

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)

Page 12: LPO_C3_IE

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 şirString sal = ”Salut”; //decl. cu iniţial

Page 13: LPO_C3_IE

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!";

Page 14: LPO_C3_IE

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.

15S

nSir9

Page 15: LPO_C3_IE

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.

Page 16: LPO_C3_IE

Intrebari

1) Care este codul Java pentru afişarea unui sir in mod text pe ecran si intr-o fereastra de ieşire predefinita?

2) Care este codul Java pentru citirea unui sir in mod text pe ecran sau dintr-o fereastra de ieşire predefinita?

3) Când se utilizează tablourile in locul variabilelor de tip primitiv?

4) Ce excepţii pot apare la manipularea greşita a elementelor de tablou?

5) Ce metode cunoaşteţi pentru accesul la caracterele unui sir?

Page 17: LPO_C3_IE

Bibliografie

1. http://www.oracle.com/technetwork/java/javase/documentation/index.html

2. http://docs.oracle.com/javase/6/docs/

3. Ştefan Tanasă, Cristian Olaru, Ştefan Andrei, Java de la 0 la expert, Polirom, 2003, ISBN: 973-681-201-4.

4. Herber Schild, Java 2 - The Complete Reference, Fourth Edition, Osborne, 2001, ISBN: 0-07-213084-9.

5. Deitel H.M., Deitel P. J., Java - How to programm, Fith Edition, Prentice Hall, 2003, ISBN: 0-13-120236-7.

6. http://www.east.utcluj.ro/mb/mep/antal/downloads.html