/*************************************************************************************************************************************/
/* */
/* S U R J E C T I O N F R A C T A L E D E [ 0 , 1 ] D A N S [ 0 , 1 ] x [ 0 , 1 ] D E P E A N O : */
/* */
/* */
/* Author of '$xtc/Peano_SurjectionFractale.01$vv$c' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 20220319114042). */
/* */
/*************************************************************************************************************************************/
#include "INCLUDES.01.I"
#define BASE \
3
int Parametre_t[]={0,1,2,0,1,2,0,1};
#define INDEX_0 \
1
#define INDEXATION(vecteur,index) \
(vecteur[MAX2(index,INDEX_0)-INDEX_0])
#define N \
(sizeof(Parametre_t)/sizeof(int))
void Surjection(parametre)
int parametre[];
{
int Coordonnee_x[N];
int Coordonnee_y[N];
int n=0;
int p=0;
printf("\n");
if ((N%2) != 0)
{
printf("ERREUR : la liste 't' a un nombre impair d'elements.\n\n");
}
else
{
}
for (n=INDEX_0 ; n <= (N) ; n++)
{
printf("a(%d)=%d\n",n,INDEXATION(parametre,n));
if ((INDEXATION(parametre,n) >= 0) && (INDEXATION(parametre,n) <BASE))
{
}
else
{
printf("Le chiffre %d de rang %d n'est pas dans [0,%d].\n",INDEXATION(parametre,n),n-INDEX_0,BASE-1);
}
}
printf("\n");
for (n=INDEX_0 ; n <= (N/2) ; n++)
{
int somme_x=0;
int somme_y=0;
char *parite;
printf("n=%d ",n);
if (n > INDEX_0)
{
for (p=INDEX_0 ; p <= (n-1) ; p++)
{
printf("a(%d)%s",(2*p)-0,COND(p<(n-0),"+",""));
somme_x = somme_x + INDEXATION(parametre,(2*p)-0);
}
if ((somme_x % (BASE-1)) == 0)
{
INDEXATION(Coordonnee_x,n) = INDEXATION(parametre,(2*n)-1);
parite="__Pair";
}
else
{
INDEXATION(Coordonnee_x,n) = (BASE-1)-INDEXATION(parametre,(2*n)-1);
parite="ImPair";
}
}
else
{
INDEXATION(Coordonnee_x,n) = INDEXATION(parametre,INDEX_0);
parite="__Pair";
}
printf(" --> b(%d)=%s(a(%d))=%d\n",n,parite,(2*n)-1,INDEXATION(Coordonnee_x,n));
printf("n=%d ",n);
for (p=INDEX_0 ; p <= n ; p++)
{
printf("a(%d)%s",(2*p)-1,COND(p<(n-0),"+",""));
somme_y = somme_y + INDEXATION(parametre,(2*p)-1);
}
if ((somme_y % (BASE-1)) == 0)
{
INDEXATION(Coordonnee_y,n) = INDEXATION(parametre,(2*n)+0);
parite="__Pair";
}
else
{
INDEXATION(Coordonnee_y,n) = (BASE-1)-INDEXATION(parametre,(2*n)+0);
parite="ImPair";
}
printf(" --> c(%d)=%s(a(%d))=%d\n",n,parite,(2*n)+0,INDEXATION(Coordonnee_y,n));
printf("\n");
}
printf("\n");
printf("t = 0.");
for (n=INDEX_0 ; n <= N ; n++)
{
printf("%d",INDEXATION(parametre,n));
}
printf("\n");
printf("x(t) = 0.");
for (n=INDEX_0 ; n <= (N/2) ; n++)
{
printf("%d",INDEXATION(Coordonnee_x,n));
}
printf("\n");
printf("y(t) = 0.");
for (n=INDEX_0 ; n <= (N/2) ; n++)
{
printf("%d",INDEXATION(Coordonnee_y,n));
}
printf("\n");
return;
}
void main()
{
Surjection(Parametre_t);
}