NFA032 Exercices sur les classes 2 - polynômes

Modérateurs : F. Barthélemy, eric.soutil

Verrouillé
$@M
Messages : 3
Inscription : 11 janv. 2015 23:23

NFA032 Exercices sur les classes 2 - polynômes

Message par $@M » 18 mars 2017 5:48

Classe Polynome :

Code : Tout sélectionner

import java.util.ArrayList;
class Polynome{
  public ArrayList<Integer> terme;
  
  void creer(){
    int Pmax;
    System.out.println("puissance max de x ?: ");
    Pmax = Terminal.lireInt();
    this.terme = new ArrayList<Integer>();
    for(int i=Pmax; i>=0; i--){
      System.out.println("coefficient de x^"+i+": ");
      this.terme.add(0,Terminal.lireInt());
    }
  }
  
  void afficher(){
    for(int i=this.terme.size()-1; i>=0; i--){
      if(this.terme.get(i)>0)
        System.out.print("+"+this.terme.get(i)+"*x^"+i);
      else
        System.out.print(this.terme.get(i)+"*x^"+i);
    }
  }
  
  void afficherAdd(Polynome poly1,Polynome poly2){
    System.out.println("Addition des polynomes :");
    System.out.print("(");
    poly1.afficher();
    System.out.print(") + (");
    poly2.afficher();
    System.out.print(") = ");
    this.afficher();
    System.out.println();
  }
  
  void addition(Polynome poly1, Polynome poly2){
    this.terme = new ArrayList<Integer>();
    for(int i=0; i<poly1.terme.size(); i++){
      this.terme.add(poly1.terme.get(i) + poly2.terme.get(i));
    }
  }
  
  
  void multi(Polynome poly2){
    ArrayList<Polynome> tab = new ArrayList<Polynome>();
    for(int i=0; i<this.terme.size(); i++){
      tab.add(new Polynome());
      tab.get(i).terme = new ArrayList<Integer>();
      for(int a=0; a<i; a++){
        tab.get(i).terme.add(a,0);
      }
      for(int j=0; j<poly2.terme.size(); j++){
        tab.get(i).terme.add(this.terme.get(i) * poly2.terme.get(j));
      }
    }
    ArrayList<Integer> mult = new ArrayList<Integer>();
    int puissanceMax = (this.terme.size()-1) + (poly2.terme.size()-1);
    for(int i=0; i<=puissanceMax; i++){
      mult.add(new Integer(0));
      for(int j=0; j<tab.size(); j++){
        if(i < tab.get(j).terme.size()){
          mult.set(i, mult.get(i) + tab.get(j).terme.get(i));
        }
      }
    }
    System.out.println("Multiplication des polynomes :");
    System.out.print("(");
    this.afficher();
    System.out.print(") * (");
    poly2.afficher();
    System.out.print(") = ");
    for(int i=mult.size()-1; i>=0;i--){
      if(mult.get(i)>0)
        System.out.print(" + "+mult.get(i)+"*x^"+i);
      else
        System.out.print(" - "+ -mult.get(i)+"*x^"+i);
    }
  }   
}

Exemple du main :

Code : Tout sélectionner

import java.util.ArrayList;
public class ProgPolynomes{
  public static void main(String[] args){
    Polynome p1 = new Polynome();
    Polynome p2 = new Polynome();
    p1.creer();
    p2.creer();
    Polynome add = new Polynome();
    add.addition(p1,p2);
    add.afficherAdd(p1,p2);
    System.out.println();
    p1.multi(p2);
  }
}
j'ai conscience que la méthode "multi" est incompréhensible et qu'il manque les termes public & ou private.

Verrouillé

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité