Mathc matrices/Fichiers c : p03b

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 p03a.c
imprimer la ligne colonne zéro
/* ------------------------------------ */
/*  Save as : p03b.c                    */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void p2_mR(
double **A,
int     Cx
)
{
int r;
int c;

int firstc;
int lastc;

int tempc  = C0;

printf("\n");

while(tempc<A[C_SIZE][C0])
     {
		 
/*   Select the last column  to draw  */
	
	  firstc = tempc;
	  
      tempc += Cx;       
      
      if(tempc<A[C_SIZE][C0])
      
           lastc  = tempc;
      else                 
           lastc  = A[C_SIZE][C0];

/*          Draw the Cx columns         */

 	  for(r=R0; r<A[R_SIZE][C0]; r++)
         {        
          
 	      for (c=firstc; c<lastc; c++)
 	      
               printf("%+4.0f ",A[r][c]); 
               
          if(!r)
                  printf("\n\n");
          else   
                  printf("\n");           
          }
          
/* A line between each part of the matrix  */     
     
      printf("\n");
     }
}
/* ------------------------------------ */
void fun(int r,int c)
{
double **A     = r_mR(i_mR(r,c),9);

  clrscrn();

  printf(" A1[R%d,C%d] : \n",rsize_mR(A),csize_mR(A));
  pall_mR(A,4,0,C9);
  
  printf(" A2[R%d,C%d] : \n",rsize_mR(A),csize_mR(A));
  p2_mR(A,C9);

  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é p2_mR();

Exemple de sortie écran :

  A1[R4,C8] : 

  +5   +1   +2   +3   +4   +5   +6   +7   +8 

  +9   +6   +2   -3   -1   +8   -1   -7   +4 
  +0   +4   -9   -9   -1   +4   -7   +4   -9 
  +0   +8   -9   +6   +8   +8   -1   -1   +2 
  +0   -1   -1   -9   -9   +4   +2   -1   +8 

 A2[R4,C8] : 

  +5   +1   +2   +3   +4   +5   +6   +7   +8 

  +9   +6   +2   -3   -1   +8   -1   -7   +4 
  +0   +4   -9   -9   -1   +4   -7   +4   -9 
  +0   +8   -9   +6   +8   +8   -1   -1   +2 
  +0   -1   -1   -9   -9   +4   +2   -1   +8 


 Press return to continue
 Press X      to stop


Le code ci-dessous remplace un simple appel à la fonction printf(); du programme précédent pour introduire un saut de ligne après la première ligne.

          if(!r)
                  printf("\n\n");
          else   
                  printf("\n");


Une fonction printf(); a aussi été rajouté pour créer une ligne vide avant l'impression de la matrice. (voir début du listing)