Aller au contenu

Mathc complexes/Fichiers c :dif size

Un livre de Wikilivres.


Application


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

dif_size.c
Vérification d'erreurs
/* ------------------------------------ */
/*  Save as :   dif_size.c              */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
void xdif_sizes_mZ(
double **A,
double **B,
char function[],
char matrices[]
)
{
 if (  A[R_SIZE][C0]!=B[R_SIZE][C0]
                    ||
       A[C_SIZE][C0]!=B[C_SIZE][C0] )
    {
     printf("\n Error : %s\n",function);
     printf("\n matrices different sizes %s \n",matrices);
     printf("\n Press return to continue.\n");
     fflush(stdout);
     getchar();
     exit(EXIT_FAILURE);
    }
}
/* ------------------------------------ */
int main(void)
{  
double **A     = i_mZ(R4,R3);
double **B     = i_mZ(R4,R6);

  clrscrn();
  
  printf(" A[R%d,C%d] : \n",rsize_Z(A),csize_Z(A));
  p_mZ(A, 5,0, 4,0, C6);

  printf(" B[R%d,C%d] : \n",rsize_Z(B),csize_Z(B));
  p_mZ(B, 5,0, 4,0, C6);
   
  xdif_sizes_mZ(A,B,"My function","(A or B)");
  
  f_mZ(A);
  f_mZ(B);
        
  return 0;
}


La fonction dif_sizes_mZ(); existant déjà dans la librairie je l'ai ici renommé xdif_sizes_mZ();


Exemple de sortie écran :

 A[R4,C3] : 

   +0  +0i    +0  +0i    +0  +0i 
   +0  +0i    +0  +0i    +0  +0i 
   +0  +0i    +0  +0i    +0  +0i 
   +0  +0i    +0  +0i    +0  +0i 

 B[R4,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 


 Error : My function

 matrices different sizes (A or B) 

 Press return to continue.


Les matrices n'étant pas de taille identique, la fonction d'erreur arrête le programme.


Vous pouvez essayer un autre exemple en changeant les valeurs ci-dessous :

double **A     = i_mZ(R4,R3);
double **B     = i_mZ(R4,R3);


 A[R4,C3] : 

   +0  +0i    +0  +0i    +0  +0i 
   +0  +0i    +0  +0i    +0  +0i 
   +0  +0i    +0  +0i    +0  +0i 
   +0  +0i    +0  +0i    +0  +0i 

 B[R4,C3] : 

   +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.