MATRICES

Résolu
thececilia Messages postés 4 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 22 mai 2006 - 16 mai 2006 à 19:39
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 - 16 mai 2006 à 22:36
Bonjour à tous !

J'ai créé une classe matrice qui est un tableau à 2 dim ainsi que 2 entiers qui me servent à définir la taille de la matrice :

class matrice /*matrice est le nom de la classe*/
{
/* Le code de la classe est contenu entre les accolades */

var $mat; /* Un Tableau à 2 dim pr déf la matrice*/
var $n; /* Nombre de lignes */
var $p; /* Nombre de colonnes */


J'ai défini un constructeur (qui met une valeur dans $n et $p et qui met à 0 ttes les valeurs de la matrice) et plusieurs fonctions dont une qui est censée additionner deux matrices :

/*ADDITION*/

function addition($mat2)
{
$n=$this->n;
$p=$this->p;

$n2=$mat2->n;
$p2=$mat2->p;


if (($n=$n2) and ($p=$p2))
{

$result = new matrice($n,$p);

for ($i = 0; $i < $n; $i++)
{
for ($j = 0; $j < $p; $j++)
{
$result->mat[$i][$j]=($this->mat[$i][$j]) + ($mat2->mat[$i][$j]);
return $result;
}
}
}
else
{
?>
Vos matrices n'ont pas la meme taille !!!! Addition impossible

<?php
}
}

Le problème est le suivant : lorsque j'exécute la fonction additioner, ça additionne le premier terme de chaque matrice (donc aux indices [0][0] ) et ça s'arrete !!!

Ex : 1 2 + 2 9 = 3 0

2 0 1 2 0 0

Je cherche et pourtant je ne vois aucune erreur dans mes pages. Est-ce que quelq'un a la solution ???

3 réponses

cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 3
16 mai 2006 à 20:44
Salut, oui tu faits un return dans ta seconde boucle for donc c'est normal, le return doit se trouver après les deux boucles.

for ($i = 0; $i < $n; $i++)
    for ($j = 0; $j < $p; $j++)
        $result->mat[$i][$j]=($this->mat[$i][$j]) + ($mat2->mat[$i][$j]);
                           
return $result;

Bonne chance.

Bouba
3
thececilia Messages postés 4 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 22 mai 2006
16 mai 2006 à 22:27
Salut booba !

Merci beaucoup !! Evidemment erreur débile ... ;) En tout cas ça a résolu mon problème. J'ai l'habitude de travailler en delphi/pascal à la fac alors j'avoue que je suis un peu perdue en php!

Encore merci pour ton aide :D Et bonne chance à toi aussi ...
0
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 3
16 mai 2006 à 22:36
De rien, ça arrive , tu peux peut-être accepter la réponse, c'est relou de lire des msg résolus pour rien.
Bouba
0
Rejoignez-nous