Mathc initiation/Fichiers c : c15g
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.