Sommaire


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

a07_mod.c
'
/* ------------------------------ */
/*  Save as :   a07_mod.c        */
/* ------------------------------ */
#include    "x_ahfile.h"
/* ------------------------------ */
#define      LOOP         5
/* ------------------------------ */
int main(void)
{
time_t t;

int i=1,j=1,n=1,loop=LOOP+1;

  srand(time(&t));
  

do{clrscrn();
	
   printf("r = i %% j   \n\n");             
   printf(" r = %d          (%d) \n\n",(i%j),(n-1));  
   
   i  =   rndp_I (90)+9;
   j  =   rndp_I ( 7)+2;  
    
   if(n<loop) printf(" r = %d  %% %d    (%d) ",i,j,n++);
   else       n++;

   nlign(6);  
   stop();

}while(n<=loop);

 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 multiple de j qui se rapproche le plus de i par valeur inférieur, et de faire la soustraction pour obtenir le résultat.

Si i est négatif, il suffit de trouver le multiple de j qui se rapproche le plus de i par valeur supérieur, 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 = 82  % 8    (1) 





 Press return to continue.
Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.