Mathc initiation/Fichiers c : c15m

Un livre de Wikilivres.


Sommaire


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

a02_add.c
/* ---------------------------------- */
/*  Save as :   a02_add.c             */
/* ---------------------------------- */
#include    "x_hfile.h"
/* ------------------------------------ */
/* ------------------------------------ */
struct_ij X_rand_j_pls_i(
int Cn)
{
struct_ij value = {0,0}; 

int       c = 0;
int       m = 1;

int      tj = 0;


 for(c = C1; c <= Cn; c++)
  {
  tj = rp_I(9);
  
       if(tj==9) { value.j +=      9  * m;
	               value.i +=      0  * m; }
  else if(tj==8) { value.j +=      8  * m;
	               value.i +=      1  * m; }
  else if(tj==7) { value.j +=      7  * m;
	               value.i += rp_I(2) * m; }
  else if(tj==6) { value.j +=      6  * m;
	               value.i += rp_I(3) * m; }	          	          
  else if(tj==5) { value.j +=      5  * m;
	               value.i += rp_I(4) * m; }	          
  else if(tj==4) { value.j +=      4  * m;
	               value.i += rp_I(5) * m; }
  else if(tj==3) { value.j +=      3  * m;
	               value.i += rp_I(6) * m; }	
  else if(tj==2) { value.j +=      2  * m;
	               value.i += rp_I(7) * m; }		               	                              	          
  else           { value.j +=      1  * m;
	               value.i += rp_I(8) * m; } 
	
  m *= 10;	             
  }           
         
return (value);
}
/* ------------------------------------ */
/* ------------------------------------ */
int main(void)
{
time_t   t;

struct_ij value = {0,0};

int n = 1;

  srand(time(&t));

do{clrscrn();
	
   printf("addition\n\n\n\n");   
   printf(" j+i: %10d      \n\n",value.j+value.i);
   
   value = X_rand_j_pls_i(C4);
      
   printf("   j: %10d         \n",value.j    );
   printf("  +i: %10d       (%d)",value.i,n++);
   
   nlign(6);

}while(stop_w());  

   clrscrn();
   
   printf("Addition\n\n\n\n");   
   printf(" j+i: %10d      \n\n",value.j+value.i);
   
 return 0;
}
/* ---------------------------------- */
/* ---------------------------------- */

Cette fonction permet de s'entraîner sans les retenues.

L'argument dans la fonction X_rand_j_pls_i(); permet de choisir la taille des additions.

Je n'ais pas introduit cette fonction dans la bibliothèque qui est déjà trop chargée.


Exemple de sortie écran :

********
addition



 j+i:          0      

   j:       5043         
  -i:       4141       (1)






 Press return to continue
 Press X      to stop    

********
addition



 j+i:       9184      

   j:       3427         
  -i:       2321       (2)






 Press return to continue
 Press X      to stop    x
 

********
Addition



 j+i:       5748