You are on page 1of 3

Muntean Mircea Gr.

I32
Problema: Sa se un program care calculeaza derivatele de ordinul 0, 1 si 2 folosind
clase derivate.
Avind la intrare a1, a2, a3 si x.
Rezolvare:
import java.io.*;
public class derivata
{
public static class y0
// clasa parinte y0
{
int a1, y;
y0(int a1) // constructorul clasei y0
{
this.a1 = a1; // initializam a1
y = a1;
// rezultatul ecuatiei y0
}
public int GetA1()
// functie care returneaza valoarea variabilei a1
{
return a1;
}
public void Afis()
// functie care afiseaza ecuatia
{
System.out.println("y0="+a1);
}
}
public static class y1 extends y0
// clasa y1 mosteneste clasa parinte y0
{
int a2, x;
y1(int a1, int a2, int x) //constructorul clasei y1
{
super(a1); // apelam constructorul clasei parinte cu parametru a1
this.a2 = a2; // initializam a2
y = y * x + a2; //rezultatul ecuatiei y1
}
public int GetA2()
// functia returneaza valoarea variabilei a2
{
return a2;
}
public void Afis()
//functie care afiseaza ecuatia y1
{
System.out.println("y1="+a1+"x+"+a2);
}
}
public static class y2 extends y1
{

// clasa y2 mosteneste clasa y1

int a3;
y2(int a1, int a2, int a3, int x) // constructorul clasei y2
{
super(a1, a2, x); // apelam constructorul clasei y1
this.a3 = a3;
// initializam a3
y = y * x + a3;
//rezultatul ecuatiei y3
}
public int GetA3()
// functia returneaza valoarea variabilei a3
{
return a3;
}
public void Afis() // functie care afiseaza ecuatia y2
{
System.out.println("y2="+a1+"x*x+"+a2+"x+"+a3);
}
}
public static void main(String[] args) // functia main
{
int a1, a2, a3, x;
a1 = a2 = a3 = x = 0; // initializam valorile variabilelor cu 0
BufferedReader data = new BufferedReader(new
InputStreamReader(System.in));
try
{
System.out.println("Introduceti a1=");
a1 = Integer.valueOf(data.readLine()).intValue(); // citim datele si apoi
le convertim
System.out.println("Introduceti a2=");
a2 = Integer.valueOf(data.readLine()).intValue();
System.out.println("Introduceti a3=");
a3 = Integer.valueOf(data.readLine()).intValue();
System.out.println("Introduceti x=");
x = Integer.valueOf(data.readLine()).intValue();
}
catch (IOException e)
{
System.out.println(e); // daca apare eroare afisam mesajul e
respective
}
y0 grd = new y0(a1);
// instantiam clasa y0
y1 grd1 = new y1(a1, a2, x);
// instantiam clasa y1
y2 grd2 = new y2(a1, a2,a3, x);
// instantiam clasa y2
grd.Afis();
// afisam ecuatia y0
grd1.Afis();
// afisam ecuatia y1
grd2.Afis();
// afisam ecuatia y2
System.out.println("a1=" + grd.GetA1() + " a2=" + grd1.GetA2() + " a3=" +
grd2.GetA3() +" x="+x);
System.out.println("\ny0=" + grd.y + "\ny1=" + grd1.y + "\ny2=" + grd2.y);

BufferedReader data1 = new BufferedReader(new


InputStreamReader(System.in));
try
{
data1.read();
// retinem ecranul
}
catch (IOException e)
{
System.out.println(e);
}
}
}

Rezultatul executarii programului pentru:


Exe1:
Introduceti a1=
2
Introduceti a2=
3
Introduceti a3=
4
Introduceti x=
2
y0=2
y1=2x+3
y2=2x*x+3x+4
a1=2 a2=3 a3=4 x=2
y0=2
y1=7
y2=18
Exe2:
Introduceti a1=
10
Introduceti a2=
20
Introduceti a3=
30
Introduceti x=
4
y0=10
y1=10x+20
y2=10x*x+20x+30
a1=10 a2=20 a3=30 x=4
y0=10
y1=60
y2=270

You might also like