Mathc complexes/Fichiers c : isquare
Installer et compiler ce fichier dans votre répertoire de travail.
isquare.c Vérification d'erreurs |
---|
/* ------------------------------------ */
/* Save as : isquare.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
void xisquare_mZ(
double **A,
char function[],
char matrices[]
)
{
if ( ((A[R_SIZE][C0]-C1)*C2) != (A[C_SIZE][C0]-C1) )
{
printf("\n Error : %s\n",function);
printf("\n Matrix must be square %s \n",matrices);
printf("\n Press return to continue");
fflush(stdout);
getchar();
exit(EXIT_FAILURE);
}
}
/* ------------------------------------ */
int main(void)
{
double **A = i_mZ(R5,R6);
clrscrn();
printf(" A[R%d,C%d] : \n",rsize_Z(A),csize_Z(A));
p_mZ(A, 5,0, 4,0, C6);
xisquare_mZ(A,"My function","(A)");
f_mZ(A);
return 0;
}
La fonction isquare_mZ(); existant déjà dans la librairie je l'ai ici renommé xisquare_mZ();
Exemple de sortie écran :
A[R5,C6] :
+0 +0i +0 +0i +0 +0i +0 +0i +0 +0i +0 +0i
+0 +0i +0 +0i +0 +0i +0 +0i +0 +0i +0 +0i
+0 +0i +0 +0i +0 +0i +0 +0i +0 +0i +0 +0i
+0 +0i +0 +0i +0 +0i +0 +0i +0 +0i +0 +0i
+0 +0i +0 +0i +0 +0i +0 +0i +0 +0i +0 +0i
Error : My function
Matrix must be square (A)
Press return to continue
La matrice n'étant pas carré la fonction d'erreur arrête le programme.
Vous pouvez essayer un autre exemple en changeant les valeurs ci-dessous :
double **A = i_mZ(R5,R5);
A[R5,C5] :
+0 +0i +0 +0i +0 +0i +0 +0i +0 +0i
+0 +0i +0 +0i +0 +0i +0 +0i +0 +0i
+0 +0i +0 +0i +0 +0i +0 +0i +0 +0i
+0 +0i +0 +0i +0 +0i +0 +0i +0 +0i
+0 +0i +0 +0i +0 +0i +0 +0i +0 +0i
------------------
(program exited with code: 0)
Press return to continue
Cette fois-ci la fonction d'erreur n'arrête plus le programme.