next up previous contents index
suivant: Les triangles monter: Les dessins récursifs précédent: Les segments   Table des matières   Index

Les carrés

On veut réaliser le dessin récursif dont on a mis ci-dessous les premières étapes (profondeur 0,1 et 2):

Image carr

On peut décider d'avoir le dessin récursif seulement dans l'écran DispG : le programme est plus simple car toutes les instructions graphiques sont exécutées dans cet écran.
On appelle cette procédure carresg(a,d,f)a est l'affixe du sommet en bas à gauche du grand carré, d est la longueur de son côté et f donne la longueur du côté du plus petit carré. carresg(a,d,f) renvoie 1 pour que l'on puisse vérifier que la procédure s'est bien exécutée.
On tape :

carresg(a,d,f):={
  si d>=f alors 
    carre(a,a+d);
    carresg(a-d/2,d/2,f);
    carresg(a+i*d,d/2,f);
    carresg(a+d/2-i*d/2,d/2,f);
    carresg(a+d+i*d/2,d/2,f);
  fsi;
  retourne 1;
}:;
On tape : carresg(0,40,2)
L'écran DispG s'ouvre et l'on voit le dessin se faire....

On met les différentes instructions graphiques à réaliser dans une liste L. On appelle cette procédure carres(a,d,f)a est l'affixe du sommet en bas à gauche du grand carré, d est la longueur de son côté et f donne la longueur du côté du plus petit carré. carresg(a,d,f) renvoie la liste L.
On tape :

carres(a,d,f):={
  local L;
  si d<f alors retourne NULL fsi;
  L:=carre(a,a+d),carres(a-d/2,d/2,f),carres(a+i*d,d/2,f),
   carres(a+d/2-i*d/2,d/2,f),carres(a+d+i*d/2,d/2,f);
  retourne L;
}
:;
On tape : carres(0,40,2)

On peut aussi choisir comme paramètre la profondeur n du dessin récursif au lieu de f. On tape :

carren(a,d,n):={
local L;
si n=<0 alors retourne NULL fsi;
L:=carre(a,a+d),carren(a-d/2,d/2,n-1),carren(a+i*d,d/2,n-1),
   carren(a+d/2-i*d/2,d/2,n-1),carren(a+d+i*d/2,d/2,n-1);
retourne L;
}
:;
On tape : carren(0,40,4)


next up previous contents index
suivant: Les triangles monter: Les dessins récursifs précédent: Les segments   Table des matières   Index
Documentation de giac écrite par Renée De Graeve