next up previous contents index
suivant: Les triangles monter: Récursivité ayant un seul précédent: Récursivité ayant un seul   Table des matières   Index

Les carrés

On trace un carré puis le carré qui joint les milieux des cotés etc... on s'arrête quand les segments à dessiner deviennent trop petits ou quand on a un dessin de profondeur n (n est le nombre d'étapes necessaires pour réaliser le dessin).
On tape dans un éditeur de programme (que l'on ouvre avec Alt+p), puis on valide avec OK :
 
carres(A,B):={
DispG();
carre(A,B);
if (longueur2(A,B)>0.01) {
  carres(A+(B-A)/2,B+(B-A)*i/2);
}
};
On tape :
carres(-1.0,1.0)
On obtient le dessin des carrés du plus grand au plus petit : le dessin du carré (-1,1,1+2*i,-1+2*i) puis du carré (0,1+i,i,-1+i)....
bf Remarque si on tape
 
carres2(A,B):={
DispG();
if (longueur2(A,B)>0.01) {
  carres2(A+(B-A)/2,B+(B-A)*i/2);
}
carre(A,B);
};
puis :
carres2(-1.0,1.0)
le dessin des carrés ne se fera pas dans le même ordre et se fera du plus petit au plus grand.

Autre test d'arrêt On peut avoir besion de connaitre le nombre de n de fois que l'on fait le ou les appels récursifs pour avoir un dessin de "profondeur" n. On rajoute pour cela un paramètre qui sera la profondeur.
Dans l'exemple ci-dessus, on tape dans un éditeur de programme (que l'on ouvre avec Alt+p), puis on valide avec OK le programme :

 
carrep(A,B,n):={
DispG();
carre(A,B);
 if (n==0) return 0;
 carrep(A+(B-A)/2,B+(B-A)*i/2,n-1);
};
On tape :
carres(-1.0,1.0,5)
On obtient le dessin des carrés du plus grand au plus petit :le dessin du carré (-1,1,1+2*i,-1+2*i) puis du carré (0,1+i,i,-1+i)...

Généralisation
On trace un carré ABCD, puis le carré MNPQ avec :
$ \overrightarrow{AM}$ = a*$ \overrightarrow {AB}$,
$ \overrightarrow{BN}$ = a*$ \overrightarrow {BC}$,
$ \overrightarrow{CO}$ = a*$ \overrightarrow {CD}$,
$ \overrightarrow{DP}$ = a*$ \overrightarrow{DA}$,
a est un nombre réel entre 0 et 1.

 
carresp(A,B,a):={
DispG();
carre(A,B);
if (longueur2(A,B)>0.01) {
carresp(A+(B-A)*a,B+(B-A)*i*a,a);
}
};
On tape par exemple :
carresp(-1.0,1.0,0.2)
next up previous contents index
suivant: Les triangles monter: Récursivité ayant un seul précédent: Récursivité ayant un seul   Table des matières   Index
Documentation de giac écrite par Renée De Graeve