Mathc matrices/Fichiers c : p01a

Un livre de Wikilivres.


Étude du code


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

p01a.c
/* ------------------------------------ */
/*  Save as : p01a.c                    */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void p1_mR(
double **A
)
{
int r;
int c;

 	for     (r = R1; r < A[R_SIZE][C0]; r++)
 	   {
 	    for (c = C1; c < A[C_SIZE][C0]; c++)

            printf("%f ",A[r][c]);
            
         printf("\n");
        }
}

/* ------------------------------------ */
void fun(int r,int c)
{
double **A     = r_mR(i_mR(r,c),9);

  clrscrn();

  printf(" A[R%d,C%d] : \n",rsize_R(A),csize_R(A));
  p_mR(A,S4,P0,C8);

  p1_mR(A);

  f_mR(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
  
   do 
        fun(rp_I(R4),rp_I(C8));
        
    while(stop_w());
        
  return 0;
}

/* ------------------------------------ */
/* ------------------------------------ */


La fonction p_mR(); existant déjà dans la librairie je l'ai ici renommé p1_mR();


Exemple de sortie écran :

 A[R4,C3] : 

  -9   -3   +8 
  -3   -9   -1 
  +2   -9   +4 
  -9   +4   +2 

-9.000000 -3.000000 8.000000 
-3.000000 -9.000000 -1.000000 
2.000000 -9.000000 4.000000 
-9.000000 4.000000 2.000000 

 Press return to continue
 Press X      to stop


Nous pouvons voir que la matrice est dessinée sans aucun formatage.


Les deux boucles for imbriquées permettent de dessiner, de la première colonne à la dernière colonne, et de la première ligne à la dernière ligne.

Le printf(); dans la boucle intérieure permet de passer à la ligne après que la dernière colonne soit dessinée


La fonction c_mR(); qui copie une matrice A dans une matrice B à exactement la même forme.


D'autres exemples de fonctions fonctionnant sur le même principe :

add_mR(); sub_mR(); smul_mR(); transpose_mR(); m0_mR(); eye_mR(); r_mR(); rp_mR(); rE_mR();