Laborator 4

Lab 4

Exercitiul 1

import java.io.*;

class ExempluIO {

public static void main(String argv[]) {

int n,i,suma,temporar;

try {

BufferedReader in_stream_char = new BufferedReader(new InputStreamReader(System.in));

PrintStream out_stream = new PrintStream(new FileOutputStream("out.txt"));

System.out.print("Dati numarul de intregi:");

n = Integer.parseInt(in_stream_char.readLine());

suma = 0;

for(i = 1; i <= n; i++) {

System.out.print("Dati numarul " + i + ":");

temporar = Integer.parseInt(in_stream_char.readLine());

suma+= temporar;

out_stream.println(temporar);

}

out_stream.println(suma);

System.out.println("Suma este:" + suma);

out_stream.close();

} catch(IOException e) {

System.out.println("Eroare la operatiile de intrare-iesire!");

System.exit(1);

}

}

}

Exercitiul 2

class Main {

public static void main(String[] args){

Boolean b1 = true;

Boolean b2 = true;

Boolean b3 = false;

System.out.println(!(b1^b2));

System.out.prinln(b1==b2);

System.out.prinln(b1.equals(b3));

}

}

Exercitiul 3

import java.io.*;

public class Main {

public static void main(String[] args) {

try {

InputStreamReader inputKeyboard = new InputStreamReader(System.in);

BufferedReader buffKeyboard = new BufferedReader(inputKeyboard);

System.out.print("Dati sirul de caractere: ");

String linie = buffKeyboard.readLine();

System.out.print("Dati denumirea fisierului: ");

String fisier = buffKeyboard.readLine();

FileInputStream bac_in=new FileInputStream(fisier) ;

InputStreamReader inputFile=new InputStreamReader(bac_in);

BufferedReader buffFile=new BufferedReader(inputFile);

int count=0;

String LinieFisier;

while((LinieFisier=buffFile.readLine())!=null){

if(LinieFisier.equals(linie))

count++;

}

System.out.println(count);

}catch (FileNotFoundException e){

System.out.println("Fisierul nu exista");

}catch(IOException e){

System.out.println("Something is wrong!");

}

}

}

Exercitiul 4

import java.io.*;

public class Main {

public static void main(String[] args) {

InputStreamReader inputKeyboard = new InputStreamReader(System.in);

BufferedReader buffKeyboard = new BufferedReader(inputKeyboard);

try {

System.out.print("N=");

int n = Integer.parseInt(buffKeyboard.readLine());

System.out.print("M=");

int m = Integer.parseInt(buffKeyboard.readLine());

System.out.print("P=");

int p = Integer.parseInt(buffKeyboard.readLine());

double[][] a = new double[n][m];

double[][] b = new double[m][p];

double[][] c = new double[n][p];

for (int i = 0; i < n; i++)

for (int j = 0; j < m; j++) {

System.out.print("a[" + i + "][" + j + "]=");

a[i][j] = Double.parseDouble(buffKeyboard.readLine());

}

for (int i = 0; i < m; i++)

for (int j = 0; j < p; j++) {

System.out.print("b[" + i + "[" + j + "]=");

b[i][j] = Double.parseDouble(buffKeyboard.readLine());

}

for (int i = 0; i < n; i++)

for (int j = 0; j < p; j++) {

c[i][j] = 0.0;

for (int k = 0; k < m; k++)

c[i][j] = c[i][j] + a[i][k] * b[k][j];

}

FileOutputStream outputFile =new FileOutputStream("bac_out");

OutputStreamWriter outputWriter=new OutputStreamWriter(outputFile);

PrintStream outStream=new PrintStream(outputFile);

for (int i = 0; i < n; i++) {

for (int j = 0; j < p; j++) {

System.out.print(String.format("%.2f\t", c[i][j]));

outStream.print(String.format("%.2f\t", c[i][j]));

}

System.out.println("");

outStream.println("");

}

} catch (IOException e) {

System.out.println("Variabilele trebuie sa fie de timp int/double");

}

}

}

Exercitul 5

import java.io.*;

import java.util.ArrayList;

class Pair {

private int l;

private int r;

private int testedNumbers;

private int validNumbers;

public Pair(int l, int r){

this.l = l;

this.r = r;

testedNumbers = 0;

validNumbers = 0;

}

public void test(Double d){

if (d > l && d < r)

validNumbers++;

testedNumbers++;

}

public Double getPercentage(){

return validNumbers/(double)testedNumbers * 100;

}

public int getL(){ return l; }

public int getR(){ return r; }

public void setL(int l){ this.l = l; }

public void setR(int r){ this.r = r; }

}

class Buff {

public static BufferedReader getBuffer(String fileName){

try{

FileInputStream fis = new FileInputStream(fileName);

InputStreamReader streamReader = new InputStreamReader(fis);

BufferedReader buff = new BufferedReader(streamReader);

return buff;

}catch(Exception e){

return null;

}

}

public static BufferedReader getBuffer(InputStream inputStream){

try{

InputStreamReader streamReader = new InputStreamReader(inputStream);

BufferedReader buff = new BufferedReader(streamReader);

return buff;

}catch(Exception e){

return null;

}

}

}

class Main {

public static void main(String[] args){

BufferedReader buff = Buff.getBuffer("intervale.dat");

try{

String line1, line2;

ArrayList<Pair> pairs = new ArrayList<>();

while((line1 = buff.readLine()) != null && (line2 = buff.readLine()) != null){

int l = Integer.parseInt(line1);

int r = Integer.parseInt(line2);

Pair pair = new Pair(l,r);

pairs.add(pair);

}

buff = Buff.getBuffer(System.in);

System.out.print("Dati numarul de fisiere: ");

ArrayList<String> fileNames = new ArrayList<>();

int n = Integer.parseInt(buff.readLine());

for(int i = 0; i < n; i++){

String fileName = buff.readLine();

if (fileNames.contains(fileName)){

System.out.println("Ati introdus deja acest nume de fisier.");

i--;

}else

fileNames.add(fileName);

}

ArrayList<Double> reale = new ArrayList<>();

for(String fileName: fileNames){

buff = Buff.getBuffer(fileName);

String[] doubles = buff.readLine().split(" ");

for(String dbl: doubles)

reale.add(Double.parseDouble(dbl));

}

for(Pair p: pairs){

for(Double dbl: reale)

p.test(dbl);

System.out.println("["+p.getL()+"; "+p.getR()+"] ---> "+String.format("%.2f",p.getPercentage()));

}

}catch(IOException e){

System.out.println("Ops! Something went wrong.");

}

}

}