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