Forum de discussion
Forum « Programmation JAVA » (archives)
division d'une matrice
Envoyé: 15 mai 2006, 11h09 par camy12
j'ai un problème avec mon programme, il me signale pas d'érreurs dans mon code mais il me génère un erreurs de compilation. je programme avec java sous eclipse. si qlq un peut essayer mon programme sur sa machine je serai reconnaisante
voici mon code:
public class Matrice {
public double contenu[][];
public Matrice (double [][] contenu)
{
this.contenu=contenu;
}
////////// /...Affichage de la matrice m...//////////
public void printMat (){
for (int i=0; i<this.contenu.length; i++)
{
for (int j=0; j<this.contenu[i].length; j++)
{
System.out.print("\t" + this.contenu[i][j]);
}
System.out.println();
}
}
/////// la méthode qui retourne le max de la colonne n° numColonne/////////////
public double getMaxiCol(int numColonne){
double max = Double.NEGATIVE_INFINITY;
for(int i=0;i<this.contenu.length;i++)
if(this.contenu[i][numColonne]> max)
max=this.contenu[i][numColonne];
return (max);
}
///////////// la méthode qui rend le max des colonnes/////////
public double [] getTabMaxiCol( )
{
int nbColonnes=this.contenu[0].length;
double [] res = new double[nbColonnes];
for(int colonne=0;colonne<nbColonnes;colonne++)
res[colonne]=getMaxiCol(colonne);
return res;
}
//////////////////la méthode qui affiche un tableau de double/////
public static void afficher(double [] tab)
{
for (int colonne=0;colonne<tab.length;colonne++)
System.out.println("\t" + tab[colonne]);
}
//////////...la division d'elements d'une matrice sur les max de ces colonnes...////////
public double [][] division( )
{
int nblignes=this.contenu.length;
int nbColonnes=this.contenu[0].length;
double [] tab = new double[nbColonnes];
double [][]resfin=new double[nblignes][nbColonnes];
for (int ligne=0; ligne<nblignes; ligne++)
{
for (int colonne=0; colonne<nbColonnes; colonne++)
{
resfin[ligne][colonne]=contenu[ligne][colonne]/tab[colonne];
}
}
return resfin;
}
public static void affiche(double [][]mat)
{
for (int ligne=0; ligne<mat.length; ligne++){
for (int colonne=0; colonne< mat[0].length; colonne++)
{
System.out.print("\t" + mat[ligne][colonne]);
}
}
}
////////// /...la fonction main...//////////
public static void main(String[] args){
double m[][]={{2,5,8,6,9,4},{1,2,3,6,8,9},{7,8,5,2,6,2}};
Matrice matrice=new Matrice(m);
matrice.printMat();
afficher(matrice.getTabMaxiCol( ));
affiche(matrice.division());
}
}
merci d'avance.
Réponses
|