Mathc matrices/Fichiers c : sub r

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche


Installer et compiler ce fichier dans votre répertoire de travail.

Crystal Clear mimetype source c.png sub.c
soustraction des matrices
/* ------------------------------------ */
/*  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),5,0,C6);

  printf(" B : ");
  p_mR(r_mR(B,99),5,0,C6);

  printf(" AmnsB : ");
  p_mR(sub_mR(A,B,AmnsB),5,0,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 elle travaille. (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 fonction parfaitement.

Par contre le code

  printf(" A : ");
  p_mR((r_mR(A,99)),5,0,C6);

devrait être écrit obligatoirement :

  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