Mathc complexes/a13
Apparence
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