IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Problèmes traitements Matriciels


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 99
    Points : 47
    Points
    47
    Par défaut Problèmes traitements Matriciels
    Bonsoir à tous,

    J'ai construit une classe Matrice, cependant je dois créer une classe Essai, pour tester toutes les méthodes...

    Malheureusement je vois pas comment s'y prendre...On m'a dit que je devais crée (Par Exemple) une liste d'étudiants avec plusieurs notes, avec laquel on leur attribué une coefficient. Ainsi on pourrai faire différentes moyennes (moyenne classe, dans chaque matière...)

    C'est pourquoi je vous pose cette question, je ne vois pas du tout comment je pourrai faire...

    Merci pour tous vos conseils et pistes.

    Désolé la Classe est longue !!!

    public class Matrice {

    //Représentation :
    int [][] valeurs = null;

    //Constructeur :
    public Matrice(int [][] t){

    int nbLignes = t.length;
    int nbCol = t[0].length;

    for (int i=1; i<t.length; i++){
    if(t[i].length!=nbCol){
    System.out.println("Matrice non stabilisée ! ");
    System.out.println(1);
    }
    }
    valeurs = t;
    }

    //Autre constructeur :
    public Matrice(int nbl, int nbc){

    valeurs = new int[nbl][nbc];
    }

    //Nbre de lignes :
    public int nbreLignes(){

    return valeurs.length;
    }

    //Nbre de colonnes :
    public int nbreColonnes(){

    return valeurs[0].length;
    }

    //Afficher :
    public void afficher(){

    for(int i=0; i<nbreLignes();i++){
    for(int j=0; j<nbreColonnes(); j++){
    System.out.println(" " + valeurs[i][j]);
    }
    System.out.println();
    }
    }

    //Faire la somme des lignes :
    public int[] sommesLignes(){

    int[] sommes = new int[nbreLignes()];
    for(int i=0; i<nbreLignes(); i++){
    sommes[i]=0; //initialisation
    for(int j=0; j<nbreColonnes(); j++){
    sommes[i]+= valeurs[i][j];
    }
    }
    return sommes;
    }

    public int[] moyennesLignes(int denominateur){

    int[]s = sommesLignes();
    for(int i=0; i<nbreLignes(); i++){
    s[i]/= denominateur;
    }
    return s;
    }

    //Sommes des colonnes :
    public int[] sommesColonnes(){

    int[] sommesCol = new int[nbreColonnes()];
    for(int i=0; i<nbreColonnes();i++){
    sommesCol[i]=0; //initialisation
    for(int j=0; j<nbreLignes(); j++){
    sommesCol[i]+=valeurs[j][i];
    }
    }
    return sommesCol;
    }

    //Moyenne des colonnes :
    public int[] moyenneColonnes(int denominateur){

    int[] s = sommesColonnes();
    for(int i=0; i<nbreColonnes(); i++){
    s[i]/=denominateur;
    }
    return s;
    }

    public void setValeurs(int i, int j, int val){

    valeurs[i][j] = val;
    }

    public int getValeurs(int i, int j){

    if(i<nbreLignes() && j<nbreColonnes()){
    return valeurs[i][j];
    }
    else{
    System.out.println("Erreur !");
    System.exit(1);
    }
    return valeurs[i][j];
    }

    //Construction de la transposée :
    public Matrice transposer(){

    Matrice transp = new Matrice(nbreColonnes(), nbreLignes());
    for(int i=0; i<nbreLignes();i++){
    for(int j=0; j<nbreColonnes(); j++){
    transp.setValeurs(j,i,valeurs[i][j]);
    }
    }
    return transp;
    }

    //Tester qu'une matrice est identique à une autre passée en paramètre :
    public boolean estIdentique(Matrice mat){

    if(nbreLignes()!= mat.nbreLignes() || nbreColonnes()!= mat.nbreColonnes()){
    return false;
    }
    for(int i=0; i<nbreLignes(); i++){
    for(int j=0; j<nbreColonnes(); j++){
    if(valeurs[i][j]!= mat.getValeurs(i, j)){
    return false;
    }
    }
    }
    return true;
    }

    //Addition d'une matrice avec une autre passée en paramètre ;
    public Matrice additionner(Matrice b){

    Matrice c = new Matrice(nbreLignes(), nbreColonnes());
    if(nbreLignes()!= b.nbreLignes() || nbreColonnes()!= b.nbreColonnes()){
    System.out.println("Erreur !");
    System.exit(1);
    }
    for(int i=0; i<nbreLignes(); i++){
    for(int j=0; j<nbreColonnes(); j++){
    c.setValeurs(i, j, valeurs[i][j] + b.getValeurs(i,j));
    }
    }
    return c;
    }

    //multiplier la matrice par un nombre :
    public Matrice multiplierNb(int nb){

    Matrice res = new Matrice(nbreLignes(), nbreColonnes());
    for(int i=0; i<nbreLignes(); i++){
    for(int j=0; j<nbreColonnes(); j++){
    res.setValeurs(i, j, valeurs[i][j]*nb);
    }
    }
    return res;
    }

    //Multiplier la matrice par un vecteur :
    public Matrice muliplierVect(int[] t){

    Matrice res = new Matrice(nbreLignes(), nbreColonnes());
    if(nbreColonnes()!= t.length){
    System.out.println("Erreur !");
    System.exit(1);
    }
    for(int i=0; i<nbreLignes(); i++){
    for(int j=0; j<nbreColonnes(); j++){
    res.setValeurs(i, j, valeurs[i][j]*t[j]);
    }
    }
    return res;
    }

    //Multiplier la matrice par une autre matrice passée en paramètre :
    public Matrice multplierMat(Matrice m){

    Matrice res = new Matrice(nbreLignes(), m.nbreColonnes());
    if(nbreColonnes()!= m.nbreColonnes()){
    System.out.println("Erreur !");
    System.exit(1);
    }
    for(int i=0; i<nbreLignes(); i++){
    for(int j=0; j<m.nbreColonnes(); j++){
    m.setValeurs(i, j, 0); //initialisation
    for(int k=0; k<nbreColonnes(); k++){
    res.setValeurs(i, j, res.getValeurs(i, j) + valeurs[i][k]*m.getValeurs(k, j));
    }
    }
    }
    return res;
    }

    //Triangle de Pascal :
    public Matrice trianglePascal(int n){

    Matrice res = new Matrice(n, n);
    res.setValeurs(0,0,1);
    for(int i=1; i<n; i++){
    for(int j=1; j<n; j++){
    res.setValeurs(i, j, 0); //initialisation
    }
    }
    for(int i=1; i<n; i++){
    res.setValeurs(i, 0, 1); res.setValeurs(i, i, 1);
    for(int j=1; j<i; j++){
    res.setValeurs(i, j, res.getValeurs(i-1, j-1) + res.getValeurs(i-1, j));
    j++;
    }
    }
    return res;
    }

    //Triangle de Pascal en optimisant :
    public Matrice trianglePascal2(int n){

    int[][] t = new int[n][];
    for (int i=0; i<n; i++){
    t[i] = new int [i+1];
    t[i][0] = 1;
    t[i][i]= 1;
    for(int j=1; j<i; j++){
    t[i][j] = t[i-1][j-1] + t[i-1][j];
    }
    }
    Matrice res = new Matrice(t); //inihiler les conditions sur les "tuilles de matrices non constantes"
    return res;
    }

    } //Fin de la classe

  2. #2
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Bonjour
    J'ai construit une classe Matrice, cependant je dois créer une classe Essai, pour tester toutes les méthodes...
    si je vois ça sans lire le reste de ta phrase et en voyant ton code je dirai que c'est facile t'a juste qu'a faire les tests pour voir ce que tu obtiens(add,mutli,transposé ....)
    On m'a dit que je devais crée (Par Exemple) une liste d'étudiants
    il faut faire les tests obligatoirement avec ce cas de situation ou c'est vraiment juste une supposition?
    (sinon tu peux considere une matrice nbLigne=nbMatiere nbColone=2 ou vise versa comme ça tu peux mettre d'un coté les notes et de l'autres les coef associés)
    La Classe Essai c'est toi qui choisi de faire ce que tu veux ou quoi?
    @+
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

Discussions similaires

  1. Problème formule matricielle
    Par Gerard6969 dans le forum Excel
    Réponses: 2
    Dernier message: 18/09/2007, 08h47
  2. problème : Traitement d'une chaine
    Par hitsugaya dans le forum Langage
    Réponses: 15
    Dernier message: 27/04/2007, 11h15
  3. Réponses: 13
    Dernier message: 24/10/2006, 14h17
  4. problème traitement formulaire cgi(débutant)
    Par Shyboy dans le forum Web
    Réponses: 13
    Dernier message: 02/07/2006, 18h17
  5. Problème: produit matriciel
    Par v4np13 dans le forum Algorithmes et structures de données
    Réponses: 19
    Dernier message: 17/05/2005, 17h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo