suivant: Les triangles
monter: Récursivité ayant un seul
précédent: Récursivité ayant un seul
Table des matières
Index
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 :
= a*
,
= a*
,
= a*
,
= a*
,
où 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)
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