Aller au contenu

Mathc initiation/Fichiers c : c15i

Un livre de Wikilivres.


Sommaire


Installer et compiler ces fichiers dans votre répertoire de travail.

a07_2_mod.c
/* ------------------------------ */
/*  Save as :   a07_2_mod.c       */
/* ------------------------------ */
#include    "x_hfile.h"
/* ------------------------------ */
int main(void)
{
time_t t;

int i=1,j=1,n=1;

  srand(time(&t));
  
do{clrscrn();
	
  printf("r = (-)a %% b           \n\n"); 	
  
   if((i%j)) printf(" r = %d           (%d)  \n\n",(i%j)+j,(n-1));  
   else      printf(" r = %d           (%d)  \n\n", 0,     (n-1));
  
   i  = -(rp_I (90)+9);
   j  =   rp_I ( 7)+2 ;
   
   printf(" r = %d  %% %d    (%d) ",i,j,n++);

   nlign(6);  

}while(stop_w()); 

   clrscrn();
  
   printf(" r = %d  %% %d    (%d) \n\n",i,j,--n);   
             
   if((i%j)) printf(" r = %d      \n\n",(i%j)+j);  
   else      printf(" r = %d      \n\n",      0);
   
 return 0;
}
/* ------------------------------ */
/* ------------------------------ */


C'est un petit utilitaire pour s'entraîner à calculer le reste d'une division.

i est compris entre -10 et -99. J entre 1 et 9.

Sur l'écran on peut voir apparaître l'opération à effectué plus le résultat de l'opération précédente. Il y a aussi un compteur "n" qui donne le nombre d'opérations effectuées.

Remarque : i mod j = r

Si i est positif, il suffit de trouver le plus grand multiple de j qui se rapproche le plus de i par valeur inférieur ou égal, et de faire la soustraction pour obtenir le résultat.

Si i est négatif, il suffit de trouver le plus petit multiple de j qui se rapproche le plus de i par valeur supérieur ou égal, et de faire l'addition pour obtenir le résultat. Le résultat est un nombre positif.

  • +12 mod 5 = +12 - (5*2) = +12 - (10) = 2
  • -12 mod 5 = -12 + (5*3) = -12 + (15) = 3


Exemple de sortie écran :

r = (-)a % b           

 r = 0           (0)  

 r = -20  % 8    (1) 





 Press return to continue. 


**************************


r = (-)a % b           

 r = 4           (1)  

 r = -18  % 8    (2) 





 Press return to continue. 


**************************


r = (-)a % b           

 r = 6           (2)  

 r = -24  % 9    (3) 





 Press return to continue.