lab2_java.docx

4
Laborator 2 Citirea datelor de la tastatură. Instrucțiuni de control în Java. Pachetul java.io pune la dispoziție un set de clase cu ajutorul cărora se realizează operațiile de intrare/ieșire într-un program Java. Deja s-a folosit in exemplele anterioare operatia println care afișeaza datele pe ecran (consola standard de ieșire). In Java operațiile de intrare/ieșire se bazează pe conceptul de flux de date (stream). Un flux de date este o secvență de date care se citește de la o sursa externă - caz în care avem de a face cu un flux de intrare (input stream) sau se trimite spre o destinație externă - flux de ieșire (output stream). Pentru operațiile de intrare/ieșire cea mai frecventă sursa externă este tastatura, iar destinația este ecranul monitorului. Acestea se mai numesc și suporturi standard de intrare, respectiv ieșire. Corespunzător suporturilor standard, în Java există două obiecte predefinite: System.in pentru tastatură și System.out pentru monitor. Clasa care modelează citirea unei linii dintr-un flux de intrare este BufferedReader, prin funcția sa membră readLine. Aceasta funcție nu are parametrii, iar execuția ei are ca efect citirea din fluxul de intrare a unei secvențe de caractere până la întâlnirea caracterului de sfârșit de linie. Operația returnează un obiect String care conține caracterele citite, dar fără a include și caracterul linie nouă. Dacă citirea NU se poate desfășura, operația emite o excepție de tip IOException . De aceea, semnătura unei funcții care apelează metoda readLine trebuie conțină clauza throws IOException. Pentru citirea de la tastatura, obiectul BufferedReader se crează astfel: BufferedReader fluxIntrare = new BufferedReader(new InputStreamReader(System.in)); Citirea unui șir de caractere se poate realiza cu apelul: sirIntrare = fluxIntrare.readLine();

Upload: alex-negulescu

Post on 24-Sep-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Laborator 2Citirea datelor de la tastatur. Instruciuni de control n Java.Pachetul java.io pune la dispoziie un set de clase cu ajutorul crora se realizeaz operaiile de intrare/ieire ntr-un program Java. Deja s-a folosit in exemplele anterioare operatia println care afieaza datele pe ecran (consola standard de ieire). In Java operaiile de intrare/ieire se bazeaz pe conceptul de flux de date (stream). Un flux de date este o secven de date care se citete de la o sursa extern - caz n care avem de a face cu un flux de intrare (input stream) sau se trimite spre o destinaie extern - flux de ieire (output stream).Pentru operaiile de intrare/ieire cea mai frecvent sursa extern este tastatura, iar destinaia este ecranul monitorului. Acestea se mai numesc i suporturi standard de intrare, respectiv ieire. Corespunztor suporturilor standard, n Java exist dou obiecte predefinite: System.in pentru tastatur i System.out pentru monitor. Clasa care modeleaz citirea unei linii dintr-un flux de intrare este BufferedReader, prin funcia sa membr readLine. Aceasta funcie nu are parametrii, iar execuia ei are ca efect citirea din fluxul de intrare a unei secvene de caractere pn la ntlnirea caracterului de sfrit de linie. Operaia returneaz un obiect String care conine caracterele citite, dar fr a include i caracterul linie nou. Dac citirea NU se poate desfura, operaia emite o excepie de tip IOException . De aceea, semntura unei funcii care apeleaz metoda readLine trebuie s conin clauza throws IOException.

Pentru citirea de la tastatura, obiectul BufferedReader se creaz astfel: BufferedReader fluxIntrare = new BufferedReader(new InputStreamReader(System.in));Citirea unui ir de caractere se poate realiza cu apelul: sirIntrare = fluxIntrare.readLine();Deoarece readLine ntoarce ntotdeauna un String, pentru citirea unui numr se va apela ulterior una din funciile Integer.parseInt(sirIntrare), Long.parseLong(strIntrare), Double.valueOf(strIntrare) sau Float.valueOf(strIntrare).

Sarcina 1Creati o clasa Operatii, apoi compilai i executai programul urmtor:

import java.io.*; /** * Clasa Operatii se foloseste pentru a demonstra * operatorii si operatiile de I/O la consola * public class Exp1 {

/** Metoda principala a aplicatiei * @param args tablou continand parametrii din linia de comanda * @return Nu returneaza nimic * @exception exceptions Se trateaza exceptiile de intrare/iesire */ public static void main(String args []) throws IOException { int n1, n2; // notele studentului double inaltimea; // inaltimea studentului String linie; // buffer pentru linia de intare String nume; // numele studentului

BufferedReader fluxIntrare = new BufferedReader (new InputStreamReader (System.in)); // se creaza fluxul de citire

System.out.println("Numele: "); nume = fluxIntrare.readLine(); // se citeste o linie System.out.println("Inaltimea: "); linie = fluxIntrare.readLine(); // se citeste o linie inaltimea = Double.valueOf(linie).doubleValue(); // se face conversia sir->numar System.out.println("Nota 1: "); linie = fluxIntrare.readLine(); // se citeste o linie n1 = Integer.parseInt(linie); // se face conversia sir->numar System.out.println("Nota 2: "); linie = fluxIntrare.readLine(); // se citeste o linie n2 = Integer.parseInt(linie); // se face conversia sir->numar linie = "Persoana "+nume; linie += " are inaltimea "+inaltimea; linie += " si are media notelor "+(((double)n1+n2)/2)+"!"; System.out.println(linie); fluxIntrare.close(); //se inchide fluxul }}

Instruciuni de control1. IF, SWITCHSarcina 2: Compilai i executai urmtorul program:public class Exp2 {public static void main(String args[]) {int nota1 = 8;int nota2 = 9;int min;String mesaj;

if (nota1>nota2) System.out.println("nota1>nota2");else {System.out.println("nota2>nota1");min = nota1;}

min = (nota1