Aller au contenu

Mathc matrices/Fichiers h : vfpm

Un livre de Wikilivres.


Bibliothèque


Installer ce fichier dans votre répertoire de travail.

vpfm.h
/* ------------------------------------ */
/*  Save as :   vpfm.h                  */
/* ------------------------------------ */
double **fp_mR(
double **A,
char FileName[],
char MatrixName[],
int er,
int dr,
int n
)
{
FILE * fp = fopen(FileName,"a");
 
int r;
int c;
int n_c = C1;
int n_c_LAST;
int n_c_FIRST;
 
fprintf(fp,"%s",MatrixName);
 
while(n_c<A[C_SIZE][C0])
     {
      n_c+=n;
                           n_c_FIRST = n_c-n;
      if(n_c<A[C_SIZE][C0])n_c_LAST  = n_c;
      else                 n_c_LAST  = A[C_SIZE][C0];
 
          for(r=R1; r<A[R_SIZE][C0]; r++)
         {
          fprintf(fp,"\n");
              for (c=n_c_FIRST; c<n_c_LAST; c++)
               fprintf(fp,"%+*.*f ",er,dr,A[r][c]);
          }
      fprintf(fp,"\n");
     }
fprintf(fp,"\n\n");
 
fclose(fp);
 
return(A);
}
/* ------------------------------------ */
double **fpE_mR(
double **A,
char FileName[],
char MatrixName[],
int er,
int dr,
int n
)
{
FILE * fp = fopen(FileName,"a");
 
int r;
int c;
int n_c = C1;
int n_c_LAST;
int n_c_FIRST;
 
fprintf(fp,"%s",MatrixName);
 
while(n_c<A[C_SIZE][C0])
     {
      n_c+=n;
                           n_c_FIRST = n_c-n;
      if(n_c<A[C_SIZE][C0])n_c_LAST  = n_c;
      else                 n_c_LAST  = A[C_SIZE][C0];
 
          for(r=R1; r<A[R_SIZE][C0]; r++)
         {
          fprintf(fp,"\n");
              for (c=n_c_FIRST; c<n_c_LAST; c++)
               fprintf(fp,"%+*.*e ",er,dr,A[r][c]);
          }
      fprintf(fp,"\n");
     }
fprintf(fp,"\n\n");
 
fclose(fp);
 
return(A);
}
/* ------------------------------------ */
/* ------------------------------------ */
/* ------------------------------------ */
double **fP_mR(
double **A,
char FileName[],
char MatrixName[],
int er,
int dr,
int n
)
{
FILE * fp = fopen(FileName,"a");
 
int r;
int c;
int n_c = C1;
int n_c_LAST;
int n_c_FIRST;
 
fprintf(fp,"%s",MatrixName);
 
while(n_c<A[C_SIZE][C0])
     {
      n_c+=n;
                           n_c_FIRST = n_c-n;
      if(n_c<A[C_SIZE][C0])n_c_LAST  = n_c;
      else                 n_c_LAST  = A[C_SIZE][C0];
 
          for(r=R1; r<A[R_SIZE][C0]; r++)
         {
          fprintf(fp,"\n");
              for (c=n_c_FIRST; c<n_c_LAST; c++)
               fprintf(fp,"%+*.*f, ",er,dr,A[r][c]);
          }
      fprintf(fp,"\n");
     }
fprintf(fp,"\n\n");
 
fclose(fp);
 
return(A);
}
/* ------------------------------------ */
double **fPE_mR(
double **A,
char FileName[],
char MatrixName[],
int er,
int dr,
int n
)
{
FILE * fp = fopen(FileName,"a");
 
int r;
int c;
int n_c = C1;
int n_c_LAST;
int n_c_FIRST;
 
fprintf(fp,"%s",MatrixName);
 
while(n_c<A[C_SIZE][C0])
     {
      n_c+=n;
                           n_c_FIRST = n_c-n;
      if(n_c<A[C_SIZE][C0])n_c_LAST  = n_c;
      else                 n_c_LAST  = A[C_SIZE][C0];
 
          for(r=R1; r<A[R_SIZE][C0]; r++)
         {
          fprintf(fp,"\n");
              for (c=n_c_FIRST; c<n_c_LAST; c++)
               fprintf(fp,"%+*.*e, ",er,dr,A[r][c]);
          }
      fprintf(fp,"\n");
     }
fprintf(fp,"\n\n");
 
fclose(fp);
 
return(A);
}
/* ------------------------------------ */
/* ------------------------------------ */


Ces fonctions permettent d'imprimer une matrice dans un fichier.

Les versions fP_mR(); et fPE_mR(); ajoute une virgule qui sépare les nombres, au lieu d'un simple espace, pour pouvoir facilement réintroduire une matrice dans un fichier c.

On peut contrôler la taille des colonnes, le nombre de chiffres après le point, le nombre de colonnes par ligne.