Aller au contenu

Mathc complexes/a206

Un livre de Wikilivres.


Application

Le code de la fonction :

/* ------------------------------------ */
/* ------------------------------------ */
double **c_z_mZ(
nb_Z     z,
double **A,
int r,
int c
)
{
    if(c!=C1) c= (c-C1)*C2+C1;
    
         A[r][c]    = z.r;
         A[r][c+C1] = z.i;

return(A);     
}
/* ------------------------------------ */
/* ------------------------------------ */
La fonction copie un nombre complexe dans une matrice A. 

* Si c égal C1, alors il suffit de rajouter à c (c+C1) pour la partie imaginaire du nombre.

* Si c est différent de C1, il faut tenir compte que chaque nombre est constitué de deux chiffres. 

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

** c= (c-C1)*C2+C1 -> c= (C3-C1)*C2+C1 -> c= (C2)*C2+C1 -> c= C4+C1 -> c= C5

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

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

c00a.c
/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
int main(void)
{
nb_Z     z1 =    {11.,11.};   /* 1 */	
nb_Z     z2 = i_Z(22.,22.);   /* 2 */ 
nb_Z     z3;   

double **A  = c_z_mZ(z1, i_mZ(R3,C4), R1,C1);

  z3 = i_Z(33.,33.);          /* 3 */
  
  clrscrn();
  printf(" z1: ");p_Z(z1, S5,P0, S4,P0);printf("  \n");
  printf(" z2: ");p_Z(z2, S5,P0, S4,P0);printf("  \n");
  printf(" z3: ");p_Z(z3, S5,P0, S4,P0);printf("\n\n");

  printf(" A : c_s_mZ(z1,A,R1,C1);    z1->A[R1,C1]\n");        
  p_mZ(A, S5,P0, S4,P0,C6);
  
  c_z_mZ(z2,A, R2,C2);                        /* 2 */
  printf(" A : c_s_mZ(z2,A,R2,C2);    z2->A[R2,C2]\n");        
  p_mZ(A, S5,P0, S4,P0,C6);
                     
  printf(" A : c_s_mZ(z3,A,R3,C1);    z3->A[R3,C1]\n");              
  p_mZ(c_z_mZ(z3,A, R3,C1), S5,P0, S4,P0,C6); /* 3 */
  stop();
   
  f_mZ(A);
  
  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */

Exemple de sortie écran :

 z1:   +11 +11i   
 z2:   +22 +22i   
 z3:   +33 +33i 

 A : c_s_mZ(z1,A,R1,C1);    z1->A[R1,C1]

  +11 +11i    +0  +0i    +0  +0i    +0  +0i 
   +0  +0i    +0  +0i    +0  +0i    +0  +0i 
   +0  +0i    +0  +0i    +0  +0i    +0  +0i 

 A : c_s_mZ(z2,A,R2,C2);    z2->A[R2,C2]

  +11 +11i    +0  +0i    +0  +0i    +0  +0i 
   +0  +0i   +22 +22i    +0  +0i    +0  +0i 
   +0  +0i    +0  +0i    +0  +0i    +0  +0i 

 A : c_s_mZ(z3,A,R3,C1);    z3->A[R3,C1]

  +11 +11i    +0  +0i    +0  +0i    +0  +0i 
   +0  +0i   +22 +22i    +0  +0i    +0  +0i 
  +33 +33i    +0  +0i    +0  +0i    +0  +0i 

 Press return to continue.

Remarque :

Vous pouvez aussi utiliser cette version.

Le code de la fonction :

/* ------------------------------------ */
/* ------------------------------------ */
double **c_z_mZ(
nb_Z     z,
double **A,
int r,
int c
)
{
         c= (c-C1)*C2+C1;
    
         A[r][c]    = z.r;
         A[r][c+C1] = z.i;

return(A);    
}
/* ------------------------------------ */
/* ------------------------------------ */
La fonction copie un nombre complexe dans une matrice A. 

* Si c égal C1, il faut tenir compte que chaque nombre est constitué de deux chiffres. 

* Si on veut introduire un nombre complexe dans la première colonne de la matrice.

** c= (c-C1)*C2+C1 -> c= (C1-C1)*C2+C1 -> c= (C0)*C2+C1 -> c= C0+C1 -> c= C1

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