MATH_MatriceLigne [Algebre]
Par Antoine Galmiche (Math4D v1)
Nouvelle recherche
Si (Faux)
` MATH_MatriceLigne [Antoine Galmiche 30/07/2002]
` ----------------------------------
` La méthode permet de réaliser des opérations sur une ou deux lignes
` d'une matrice régulière
` Utiliser MATH_ObjetVersMatrice pour travailler avec une matrice correcte
` ---------------------------------
` MATH_MatriceLigne(->Tableau2D; Sélecteur; Ligne1; Coefficient; Ligne2)
` Tableau2D (Pointeur) Tableau réel 2D
` Sélecteur (Entier) 1->Multiplier, 2->Permuter, 3->Ajouter
` ou constantes : Matrice_Multiplier, Matrice_Permuter, Matrice_Ajouter
` Ligne1 (Entier) Ligne de travail
` Coefficient (Réel) Coefficient multiplicateur
` Ligne2 (Entier) Ligne secondaire
` ----------------------------------
` MATHERROR
` 0 -> Pas d'erreur
` -1 -> Le sélecteur est hors définition
` -2 -> Une ligne est hors tableau
` -3 -> Ligne1 et Ligne2 n'ont pas le même nombre d'éléments (impossible)
` ----------------------------------
` ATTENTION :
` Multiplier, si Ligne2 non nul, elle est ajoutée après la multiplication
` Permuter, Coeff est appliqué à Ligne1 après la permutation
` Le tableau passé en premier paramètre est modifié
` ----------------------------------
`
Fin de si
C_ENTIER LONG(MATHERROR)
C_POINTEUR($1)
C_ENTIER LONG($2;$3;$5)
C_REEL($4)
Au cas ou
: (($2<0) & ($2>3))
MATHERROR:=-1
: (($3>Taille tableau($1->)) | ($5>Taille tableau($1->)))
MATHERROR:=-2
: (($5#0) & (Taille tableau($1->{$3})#Taille tableau($1->{$5})))
MATHERROR:=-3
Sinon
MATHERROR:=0
Fin de cas
Si (MATHERROR=0)
C_ENTIER LONG($i)
C_REEL($k)
Au cas ou
: ($2=1) ` Multiplier, si Ligne2 non nul, elle est ajoutée après la multiplication
Boucle ($i;1;Taille tableau($1->{$3})) ` chaque élément de la ligne $3
$1->{$3}{$i}:=($1->{$3}{$i})*$4
Si ($5#0)
$1->{$3}{$i}:=$1->{$3}{$i}+($1->{$5}{$i})
Fin de si
Fin de boucle
: ($2=2) ` Permuter, Coeff est appliqué à Ligne1 après la permutation
Boucle ($i;1;Taille tableau($1->{$3})) ` chaque élément de la ligne $2
$k:=$1->{$3}{$i}
$1->{$3}{$i}:=$1->{$5}{$i}
$1->{$5}{$i}:=$k*$4
Fin de boucle
: ($2=3) ` Ajouter, Coeff est appliqué à Ligne2 puis Ligne2 est ajoutée à Ligne1
Boucle ($i;1;Taille tableau($1->{$3})) ` chaque élément de la ligne $2
$1->{$3}{$i}:=($1->{$3}{$i})+(($1->{$5}{$i})*$4)
Fin de boucle
Fin de cas
Fin de si