Aller au contenu

Mathc matrices/Fichiers c : isquare

Un livre de Wikilivres.
Version datée du 16 avril 2020 à 10:07 par DannyS712 (discussion | contributions) (<source> -> <syntaxhighlight> (phab:T237267))


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

isquare.c
Vérification d'erreurs
/* ------------------------------------ */
/*  Save as :   isquare.c               */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */   
void xisquare_mR(
double **A,
char function[],
char matrices[]
)
{
   if ( A[R_SIZE][C0] != A[C_SIZE][C0] )
    {
     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_mR(R5,R6);

  clrscrn();
  
  printf(" A[R%d,C%d] : \n",rsize_mR(A),csize_mR(A));
  p_mR(A,4,0,C6);

  xisquare_mR(A,"My function","(A)");
  
  f_mR(A);
        
  return 0;
}


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


Exemple de sortie écran :

  A[R5,C6] : 

  +0   +0   +0   +0   +0   +0 
  +0   +0   +0   +0   +0   +0 
  +0   +0   +0   +0   +0   +0 
  +0   +0   +0   +0   +0   +0 
  +0   +0   +0   +0   +0   +0 


 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_mR(R5,R5);


A[R5,C5] : 

  +0   +0   +0   +0   +0 
  +0   +0   +0   +0   +0 
  +0   +0   +0   +0   +0 
  +0   +0   +0   +0   +0 
  +0   +0   +0   +0   +0 



------------------
(program exited with code: 0)
Press return to continue

Cette fois-ci la fonction d'erreur n'arrête plus le programme.