Aller au contenu

Mathc complexes/09p

Un livre de Wikilivres.


Application

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

c00e.c
/* ------------------------------------ */
/*  Save as :   c00e.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
double **p5_mZ(
double **A,  // R3xC8
int Sr,      // S4
int Pr,      // P0
int Si,      // S4
int Pi,      // P0
int Cn       // C3
)
{
int r;
int c;
int n_c;
int n_c_LAST;
int n_c_FIRST;

n_c = R1;

           //   C8
while(n_c<A[C_SIZE][C0])
     {
      n_c+=Cn*C2;
                          n_c_FIRST = n_c-Cn*C2;
      if(n_c<A[C_SIZE][C0])n_c_LAST  = n_c;             // Print C3 
                                                        // columns 
                                                             
      else                n_c_LAST  = A[C_SIZE][C0];    // Print the 
                                                        // last columns

 	  for(r=R1; r<A[R_SIZE][C0]; r++)
         {
          printf("\n");
 	      for (c=n_c_FIRST; c<n_c_LAST; c+=C2)
               printf("%+*.*f%+*.*fi ",Sr,Pr,A[r][c],Si,Pi,A[r][c+C1]);
          }
      printf("\n");
     }
printf("\n");

return(A);
}
/* ------------------------------------ */
/* ------------------------------------ */
int main(void)
{
  double **A = r_mZ(i_mZ(R3,C8),99.);

  clrscrn();
   
  printf(" A: p5_mZ(A, S4,P0, C3);");
  p5_mZ(A, S4,P0, S4,P0, C3);
  
  stop();  
  
  f_mZ(A);

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
On a ajouté le dernier argument à la fonction "Cn" pour contrôler le nombre de colonnes par ligne à afficher. 

* La variable "n_c_LAST" décide de la dernière colonne à afficher dans la boucle "for". 
* La variable "n_c_FIRST" décide qu'elle est la première colonne à afficher.
* "Cn" décide le nombre de colonnes à afficher par ligne. 
Algorithme :

  n_c = nombres de colonnes à afficher par ligne
 
 Si le nombre "n_c" est inférieur à la taille de la matrice.
      * Afficher "Cn" colonnes.          (Boucles "for")
      * Ajouter "Cn" nouvelles colonnes. (n_c+=Cn*C2   )
      
 Si le nombre n_c est supérieur à la taille de la matrice.
     * Afficher les dernières colonnes de la matrice.

Exemple de sortie écran :

 A: p5_mZ(A, S4,P0, C3);
 +29 -73i  -24 +56i  -70 -42i 
 +55 -96i  +74 +14i  -52 -82i 
 -84 -44i   -5  -1i  -10 -12i 

  -6 +96i  +43 +80i  +99 -61i 
 -78 +60i  +30 +75i  +47 -63i 
 +57  +7i   +8 +16i  +15 -25i 

 +27 -45i  -92 +33i 
 +51 -50i  -16 -60i 
 -81  +7i  +54 +65i 

 Press return to continue.