Mathc complexes/Fichiers c : re m
Apparence
Le code de la fonction :
/* ------------------------------------ */
/* ------------------------------------ */
double **rE_mZ(
double **A,
int n,
double E /* 1E-1 1E-0 1E+1 */
)
{
int r;
int c;
for (r=R1; r<A[R_SIZE][C0]; r++)
for (c=R1; c<A[C_SIZE][C0]; c++)
A[r][c] = r_I(n)*E;
return(A);
}
/* ------------------------------------ */
/* ------------------------------------ */
La fonction re_mZ() nous permet d'obtenir des valeurs aléatoires sous forme de nombres avec des virgules. C'est le paramètre "E" de la fonction qui se charge de ce travail. Le paramètre "n" doit être aussi bien choisi. Si l'on veut trois chiffres après la virgule, il n devra être supérieur ou égal à 999. * 1E-1 permet d'avoir des nombres avec un chiffre après la virgule. * 1E-2 permet d'avoir des nombres avec deux chiffres après la virgule. * 1E-3 permet d'avoir des nombres avec trois chiffres après la virgule. (999 -> 0,123 ... 9999-> 1,123 ... 99999-> 12,123)
Installer et compiler ces fichiers dans votre répertoire de travail.
c00b.c |
|---|
/* ------------------------------------ */
/* Save as : c00b.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
void fun(int r, int c)
{
double **A = rE_mZ(i_mZ(r,c), 999, 1E-0 );
double **B = rE_mZ(i_mZ(r,c), 999, 1E-1 );
double **C = rE_mZ(i_mZ(r,c), 999, 1E-2 );
double **D = rE_mZ(i_mZ(r,c), 999, 1E-3);
clrscrn();
printf("re_mZ() : floating point\n\n");
printf(" A : xxx re_mZ(A,999,11E-0);\n");
p_mZ(A, S12,P0, S8,P0, C3);
printf(" B : xx.x re_mZ(B,999,1E-1 );\n");
p_mZ(B, S12,P1, S8,P1, C3);
stop();
clrscrn();
printf(" C : x.xx re_mZ(C,999,1E-2 );\n" );
p_mZ(C, S12,P2, S8,P2, C3);
printf(" D : x.xxx re_mZ(D,999,1E-3 );\n" );
p_mZ(D, S12,P3, S8,P3, C3);
f_mZ(A);
f_mZ(B);
f_mZ(C);
f_mZ(D);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
fun(R4,C3);
while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Exemple de sortie écran :
re_mZ() : floating point
A : xxx re_mZ(A,999,11E-0);
+196 -407i -551 -309i +556 +328i
+726 +168i -963 +114i -251 -493i
+82 -101i +258 +564i -459 +544i
-363 -449i +784 +484i -203 -493i
B : xx.x re_mZ(B,999,1E-1 );
+66.8 -26.1i +51.0 -89.5i +7.8 +63.4i
+8.0 -99.1i +4.2 -34.9i -30.1 +31.6i
+67.6 -2.7i -48.3 +35.8i +14.0 -45.3i
+85.0 -93.9i -55.3 -82.7i -50.3 +1.2i
Press return to continue.
C : x.xx re_mZ(C,999,1E-2 );
+0.90 -5.85i -1.79 +5.92i -0.69 +1.00i
+8.04 +7.36i -3.61 +3.14i +3.50 +4.38i
-6.67 -4.29i -1.49 +7.08i -7.77 -4.49i
+0.24 +1.72i +1.94 -2.25i +5.30 +0.52i
D : x.xxx re_mZ(D,999,1E-3 );
+0.396 +0.380i -0.991 -0.667i -0.925 -0.213i
-0.397 -0.015i -0.797 -0.575i +0.326 +0.584i
-0.675 +0.130i +0.040 +0.754i +0.162 -0.389i
+0.910 +0.828i -0.537 -0.059i +0.536 -0.033i
Press return to continue
Press X to stop