Mathc complexes/Fichiers c : i dup
Étudions la fonction :
/* ------------------------------------ */
double **i_RC_mZ(
int R, // A[R_SIZE][C0]
int C // A[C_SIZE][C0]
)
{
R = (R-R1);
C = ((C-C1)/C2);
return( i_mZ(R,C) );
}
/* ------------------------------------ */
T = i_RC_mZ(A[R_SIZE][C0],A[C_SIZE][C0]);
En fait on initialise la taille de la matrice directement en lisant en mémoire celle-ci, au lieu d'utiliser rsize_mZ(); et csize_mZ(); car cela est plus rapide.
On se rappel qu'avant de mémoriser la taille de la matrice dans la fonction i_mZ(); on ajoute la ligne zéro et la colonne zéro.
Il faut donc les retrancher avant l'appel de la fonction i_mZ(); qui va naturellement les rajouter un peu plus tard.
- (r-R1)
- (c-C1)
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
int main(void)
{
double **A = i_mZ( R3, C5 );
double **B = i_mZ( rsize_Z(A), csize_Z(A) );
double **C = i_RC_mZ( A[R_SIZE][C0],A[C_SIZE][C0] );
clrscrn();
printf(" A :");
r_mZ(A,9);
p_mZ(A, S4,P0, S2,P0, C5);
printf(" B :");
c_mZ(A,B);
p_mZ(B, S4,P0, S2,P0, C5);
printf(" C :");
c_mZ(A,C);
p_mZ(C, S4,P0, S2,P0, C5);
stop();
f_mZ(A);
f_mZ(B);
f_mZ(C);
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
A :
+2-1i -6+2i -7-6i -6+6i +7+8i
+9-7i +9-9i -2+6i +1-6i +2+5i
-7-1i -6+6i +3+3i +2-9i +6-5i
B :
+2-1i -6+2i -7-6i -6+6i +7+8i
+9-7i +9-9i -2+6i +1-6i +2+5i
-7-1i -6+6i +3+3i +2-9i +6-5i
C :
+2-1i -6+2i -7-6i -6+6i +7+8i
+9-7i +9-9i -2+6i +1-6i +2+5i
-7-1i -6+6i +3+3i +2-9i +6-5i
Press return to continue.