Mathc initiation/Fichiers c : c15g


Sommaire


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

a07_mod.c
/* ------------------------------ */
/*  Save as :   a07_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 = i %% j   \n\n");             
   printf(" r = %d          (%d) \n\n",(i%j),(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-1));              
   printf(" r = %d                \n\n",(i%j));

 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 (Des exercices quand i est négatif sont proposés dans la page suivante).

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


Exemple de sortie écran :

r = i % j   

 r = 0          (0) 

 r = 94  % 5    (1) 





 Press return to continue. 



r = i % j   

 r = 4          (1) 

 r = 18  % 4    (2) 





 Press return to continue. 




r = i % j   

 r = 2          (2) 

 r = 78  % 7    (3) 





 Press return to continue. 




r = i % j   

 r = 1          (3) 

 r = 94  % 7    (4) 





 Press return to continue.