Mohamed amine abdallah
TP1 :
package Interface;
import java.util.Comparator;
public class Joueur implements Comparator , Comparable {
private int id ;
private String nom ;
private int sc ;
public Joueur(int id, String nom, int sc) {
this.id = id;
this.nom = nom;
this.sc = sc;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public int getSc() {
return sc;
}
public void setSc(int sc) {
this.sc = sc;
}
@Override
public String toString() {
return "Joueur [id=" + id + ", nom=" + nom + ", sc=" + sc +
"]";
}
@Override
public int compareTo(Object o) {
Joueur j1=(Joueur) o ;
if (this.id> j1.getId()) {
return 0 ;
}
else {
if(this.id== j1.getId()) {
return 1 ;
}
else {
return -1 ;
}
}
}
@Override
public int compare(Object o1, Object o2) {
Joueur j1=(Joueur) o1 ;
Joueur j2=(Joueur) o2 ;
if(j1.getId()>j2.getId()) {
return 1;
}
else {
if(j1.getId()==j2.getId()) {
return 0 ;
} else {
return -1 ;
}
}
}
}
package Interface ;
import java.util.Arrays;
public class test {
public static void main(String[] args) {
int[] tab = {1,9,3,7} ;
String []tab2 = {"cc" ,"bb" ,"aa"} ;
Arrays.sort(tab);
System.out.println(Arrays.toString(tab));
Arrays.sort(tab2);
System.out.println(Arrays.toString(tab2));
Joueur j1= new Joueur(101,"ali",16) ;
Joueur j2= new Joueur(103,"samouha",20) ;
Joueur j3= new Joueur(109,"salah",18) ;
Joueur []tab3 = {j1 ,j2,j3} ;
Arrays.sort(tab3);
System.out.println(Arrays.toString(tab3));
}
Application : Calculer la valeur d’une fonction mathématique
package Tpinterface;
public interface Expression {
public double valeur(double x) ;
public abstract String toSring() ;
}
package Tpinterface;
public class Constante implements Expression {
private int c ;
public Constante (int c) {
this.c=c ;
}
public double valeur(double x) {
return this.c ;
public String toSring() {
return ""+c;
}
}
package Tpinterface;
public class Variable extends OperationUnaire implements Expression{
public Variable() {
super(null) ;
}
public double valeur(double x) {
// TODO Auto-generated method stub
return x ;
}
@Override
public String toSring() {
return "";
}
@Override
public double oberation(Expression e1, int x) {
return e1.valeur(x);
}
}
package Tpinterface;
public class Addition extends OperationBinaire implements Expression
{
private Expression a,b ;
public Addition(Expression a, Expression b) {
super(a,b);
this.a = a;
this.b = b;
}
@Override
public double valeur(double x) {
return this.a.valeur(x)+this.b.valeur(x) ;
}
@Override
public String toSring() {
return ""+a+"+"+b;
}
@Override
public double oberation(Expression e1, Expression e2, int x) {
return e1.valeur(x)+e2.valeur(x);
}
}
package Tpinterface;
public class Soustraction extends OperationBinaire implements
Expression{
private Expression a,b ;
public Soustraction(Expression a, Expression b) {
super(a,b);
this.a = a;
this.b = b;
}
@Override
public double valeur(double x) {
return this.a.valeur(x)-this.b.valeur(x) ;
}
@Override
public String toSring() {
return ""+a+"-"+b;
}
@Override
public double oberation(Expression e1, Expression e2, int x) {
return this.a.valeur(x)-this.b.valeur(x) ;
}
}
package Tpinterface;
public class Multiplication extends OperationBinaire implements
Expression {
private Expression a,b ;
public Multiplication(Expression a, Expression b) {
super(a,b) ;
this.a = a;
this.b = b;
}
@Override
public double valeur(double x) {
return this.a.valeur(x)*this.b.valeur(x) ;
}
@Override
public String toSring() {
return ""+a+"*"+b;
}
@Override
public double oberation(Expression e1, Expression e2, int x) {
return this.a.valeur(x)*this.b.valeur(x) ;
}
}
package Tpinterface;
public abstract class OperationBinaire {
private Expression e1 ;
private Expression e2;
public OperationBinaire(Expression x,Expression y) {
this.e1=x ;
this.e2=y ;
}
public abstract double oberation(Expression e1 , Expression e2
,int x);
public Expression getE1() {
return e1;
}
public void setE1(Expression e1) {
this.e1 = e1;
}
public Expression getE2() {
return e2;
}
public void setE2(Expression e2) {
this.e2 = e2;
}
}
package Tpinterface;
public abstract class OperationUnaire {
private Expression e1 ;
public OperationUnaire (Expression x) {
this.setE1(x) ;
}
public abstract double oberation(Expression e1 ,int x);
public Expression getE1() {
return e1;
}
public void setE1(Expression e1) {
this.e1 = e1;
}
}
package Tpinterface;
import java.lang.Math;
public class Sinx implements Expression {
private Variable y ;
public Sinx(Variable y) {
this.y=y ;
}
@Override
public double valeur(double x) {
double n =Math.sin(this.y.valeur(x)) ;
return n;
}
@Override
public String toSring() {
String ch="sin("+y+")" ;
return ch ;
}
}
package Tpinterface;
import java.lang.Math;
public class Cosx implements Expression {
private Variable y ;
public Cosx(Variable y) {
this.y=y ;
}
@Override
public double valeur(double x) {
double n =Math.cos(this.y.valeur(x)) ;
return n;
}
@Override
public String toSring() {
return "cos("+y+")";
}
}
package Tpinterface;
import java.lang.Math;
public class Logx implements Expression {
private Variable y ;
public Logx(Variable y) {
this.y=y ;
}
@Override
public double valeur(double x) {
double n =Math.log(this.y.valeur(x)) ;
return n;
}
@Override
public String toSring() {
return "log("+y+")";
}
}
package Tpinterface;
import java.lang.Math;
public class Expx implements Expression{
private Variable y ;
public Expx(Variable y) {
this.y=y ;
}
@Override
public double valeur(double x) {
double n =Math.exp(this.y.valeur(x)) ;
return n;
}
@Override
public String toSring() {
return "Exp("+y+")";
}
}
package Tpinterface;
import java.lang.Math;
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("constante -------------------");
Expression f = new Constante(2) ;
int x=1 ;
Double res01= f.valeur(x) ;
System.out.println("f(" + x + ") = " + res01);
x=2 ;
Double res02= f.valeur(x) ;
System.out.println("f(" + x + ") = " + res02);
System.out.println("variable -------------------");
Expression f1 = new Variable() ;
// calcul de la valeur de f(x)=x
int y=1 ;
Double res011= f1.valeur(y) ;
System.out.println("f(" + y + ") = " + res011);
y=2 ;
Double res022= f1.valeur(y) ;
System.out.println("f(" + y + ") = " + res022);
System.out.println("addition-------------------");
Expression f3 = new Addition ( new Variable(), new
Constante(3));
// calcul de la valeur de f(x)=x
int z=1 ;
double res0111= f3.valeur(z) ;
System.out.println("f(" + z + ") = " + res0111);
z=2 ;
double res0222= f3.valeur(z) ;
System.out.println("f(" + z + ") = " + res0222);
System.out.println("soustraction-------------------");
Expression f4 = new Soustraction ( new Variable(),new
Constante(3));
int n=1 ;
double res01111= f4.valeur(n) ;
System.out.println("f(" + n + ") = " + res01111);
n=2 ;
double res02222= f4.valeur(n) ;
System.out.println("f(" + n + ") = " + res02222);
System.out.println("multiplication-------------------");
Expression f5 = new Multiplication ( new Variable(), new
Constante(3));
int r=1 ;
double res011111= f5.valeur(r) ;
System.out.println("f(" + r + ") = " + res011111);
r=2 ;
double res022222= f5.valeur(r) ;
System.out.println("f(" + r + ") = " + res022222);
System.out.println("-------------f(x)=2X+1----------------
---");
Expression f6 = new Addition ( new Multiplication(new
Constante(2),new Variable()),new Constante(3));
int h=1 ;
double res0111111= f6.valeur(h) ;
System.out.println("f(" + h + ") = " + res0111111);
h=2 ;
double res0222222= f6.valeur(h) ;
System.out.println("f(" + h + ") = " + res0222222);
System.out.println("-------------Operation_Binaire--------
-----------");
Expression e1=new Variable() ;
Expression e2=new Constante(3) ;
OperationBinaire o= new Addition(e1, e2);
int d=1 ;
double j=o.oberation(e1, e2, d);
System.out.println("f(" + d + ") = " + j);
System.out.println("-------------Operation_unaire---------
----------");
System.out.println("-------------sin(x)-------------------
");
Expression m = new Sinx ( new Variable());
double i= 1 ;
System.out.println("f(" + i + ") = " + m.valeur(i));
double p=Math.PI /2 ;
double ress1= m.valeur(p) ;
System.out.println("f(" + p + ") = " + ress1);
p= Math.PI /3 ;
double ress2= m.valeur(p) ;
System.out.println("f(" + p + ") = " + ress2);
System.out.println("-------------f(x) = 2 * sin(x) + 3
*cos(x) -------------------");
Expression k = new Addition(new Multiplication(new
Constante(2), new Sinx(new Variable())), new Multiplication(new
Constante(3), new Cosx(new Variable())));
double[] tab = { 0, 0.5, 1, 1.5, 2, 2.5 };
for (int v = 0 ; v < tab.length; i++) {
double g = tab[v];
System.out.println("f(" + g + ") = "
+k.valeur(g));
}