Mathc matrices/Fichiers c : sub r
Installer et compiler ce fichier dans votre répertoire de travail.
sub.c |
---|
/* ------------------------------------ */
/* Save as : sub.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r,int c)
{
double **A = i_mR(r,c);
double **B = i_mR(r,c);
double **AmnsB = i_mR(r,c);
clrscrn();
printf(" A : ");
p_mR(r_mR(A,99),S5,P0,C6);
printf(" B : ");
p_mR(r_mR(B,99),S5,P0,C6);
printf(" AmnsB : ");
p_mR(sub_mR(A,B,AmnsB),S5,P0,C6);
f_mR(A);
f_mR(B);
f_mR(AmnsB);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
fun(rp_I(R4),rp_I(C6));
while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Ici on initialise les valeurs des matrices dans la fonction qui les imprime.
Cela est possible car ces fonctions retournent toutes un pointeur sur la matrice sur laquelle elles travaillent. (voir le code dans les fichiers h)
On pourrait très bien écrire la fonction r_mR(); sans qu'elle ne retourne ce quoi que soit. Par exemple ;
double **r_mR(double **A,int n)
void r_mR(double **A,int n)
Il suffirait de supprimer
return(A);
pour que cela fonctionne parfaitement.
Par contre le code
printf(" A : ");
p_mR((r_mR(A,99)),5,0,C6);
devrait obligatoirement s'écrire :
printf(" A : ");
r_mR(A,99));
p_mR(A,5,0,C6);
Exemple de sortie écran :
A :
+16 -85 +26
+68 -83 -53
+44 +96 -69
+74 +54 +78
B :
-55 -25 -63
+44 +28 +12
+8 +44 -99
+18 -99 +40
AmnsB :
+71 -60 +89
+24 -111 -65
+36 +52 +30
+56 +153 +38
Press return to continue
Press X to stop