lab2_java.docx
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