Aller au contenu

Mathc complexes/a13

Un livre de Wikilivres.


Application

Le code de la fonction :

/* ------------------------------------ */
/* ------------------------------------ */
double **c_c_mZ(
double **A,
int cA,
double **B,
int cB
)
{
int r;

    for(r=R1; r<A[R_SIZE][C0]; r++)
       {
        B[r][((cB-C1)*C2+C1)]    = A[r][((cA-C1)*C2+C1)];
        B[r][((cB-C1)*C2+C1)+C1] = A[r][((cA-C1)*C2+C1)+C1];
       }

return(B);
}
/* ------------------------------------ */
/* ------------------------------------ */
Copier une colonne de la matrice A dans une matrice B. Je ne vérifie pas la taille des colonnes. A et B peuvent être de tailles différentes. Il suffit que les tailles de A soient inférieures ou égales à celles de B.
La fonction copie des nombres complexes dans une matrice B. 

* Il faut tenir compte que chaque nombre est constitué de deux chiffres. 

* Si on veut introduire un nombre complexe dans la deuxième colonne de la matrice.

** c= ((cB-C1)*C2+C1) -> c= (C2-C1)*C2+C1 -> c= (C1)*C2+C1 -> c= C2+C1 -> c= C3

** Ce nombre complexe devra être copier dans la troisième colonne pour la partie réelle, et (C3+C1) pour la partie imaginaire.

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

c00b.c
/* ------------------------------------ */
/*  Save as :   c00b.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
void fun(int r,int c)
{
double **A = r_mZ(        i_mZ(r,c),99);
double **B = c_c_mZ(A,C1, i_mZ(r,c),C2);       /* 1 */

  clrscrn();
  printf(" A : \n");        
  p_mZ(A, S5,P0, S4,P0,C6);

  c_c_mZ(A,C1, B,C2);                          /* 2 */
  printf(" B : \n");        
  p_mZ(B, S5,P0, S4,P0,C6);  
  
  printf(" B : \n");        
  p_mZ(c_c_mZ(A,C1, B,C2), S5,P0, S4,P0,C6);   /* 3 */ 
  
  f_mZ(B);
  f_mZ(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
  
  do
        fun(rp_I(R3),rp_I(C3)+C1);

  while(stop_w());       

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */

Exemple de sortie écran :

 A : 

  +35 -40i   -63  -4i 
  -30 -64i   +54 -88i 
  +86 -56i   +88 +93i 

 B : 

   +0  +0i   +35 -40i 
   +0  +0i   -30 -64i 
   +0  +0i   +86 -56i 

 B : 

   +0  +0i   +35 -40i 
   +0  +0i   -30 -64i 
   +0  +0i   +86 -56i 


 Press   return to continue
 Press X return to stop