/*********************************************** Fichier exemple didapage AAM modulo 3.cpp Le mardi 12 avril 2007 compilable avec C++ de Borland version 4.5 ************************************************/ #include #include #include #include #define modulo 3 #define NB_LIGNE modulo #define NB_COLONNE (modulo * modulo) short int ** tab_coeff_poly; short int entree_t_1,sortie_t_1,entree_t,sortie_t ; int a_boite_externe, b_boite_externe, c_boite_externe; int colonne,colonneplus1; int a_t,b_t,c_t,a_tplus1,b_tplus1, c_tplus1; int compteur_boucle = 0 ; typedef int T_FONC (int x, int colonne); /* les coefficients du polynome de l'AAM sont un vecteur colonne du tableau des coefficients des polynomes */ T_FONC polynome { int resultat; resultat= (tab_coeff_poly[0][colonne]*x*x + tab_coeff_poly[1][colonne]*x + tab_coeff_poly[2][colonne])% modulo; return resultat; } /* le polynome de la boite externe */ int boite_externe (int entree) { int sortie ; sortie = (a_boite_externe * entree * entree + b_boite_externe * entree + c_boite_externe) % modulo; return (sortie); } /* initialisation du tableau des coefficients des polynomes */ void initialise_tab_coeff_poly (short int ** tab){ tab[0][0]=2;tab[0][1]=1;tab[0][2]=2;tab[0][3]=1;tab[0][4]=2;tab[0][5]=0; tab[1][0]=2;tab[1][1]=0;tab[1][2]=0;tab[1][3]=0;tab[1][4]=1;tab[1][5]=0; tab[2][0]=2;tab[2][1]=2;tab[2][2]=0;tab[2][3]=2;tab[2][4]=1;tab[2][5]=1; tab[0][6]=0;tab[0][7]=0;tab[0][8]=0; tab[1][6]=1;tab[1][7]=0;tab[1][8]=2; tab[2][6]=1;tab[2][7]=2;tab[2][8]=1; return; } /* affichage du tableau */ void print_tab_coeff_poly (short int ** tab){ short int i,j; for(i=0;i ",entree_t_1, sortie_t_1 ); printf (" colonne = %d \n ", colonne); /* l'entree de la boite externe est sortie_t_1 la sortie de la boite externe est entree_t */ entree_t = boite_externe (sortie_t_1); /* l'colonne est le numero de colonne du tableau ou l'on va chercher les coefficients du polynome du polynome au temps t */ sortie_t = polynome (entree_t, colonne); /* premier argument entree, deuxieme colonne */ printf ("entree_t = %d, sortie_t = %d -> ",entree_t, sortie_t ); /* coefficients du polynome n */ a_t = tab_coeff_poly [0][colonne]; b_t = tab_coeff_poly [1][colonne]; c_t = tab_coeff_poly [2][colonne]; printf ("coefficients du polynome t \n"); printf (" (colonne %d): %d, %d, %d \n",colonne, a_t, b_t, c_t); /* report des valeurs pour le point suivant de l'AAM */ entree_t_1 = entree_t; sortie_t_1 = sortie_t; c = getch(); } printf ("\n -------------------- fin de la boucle ---------------------------- \n"); return 0; }