1.3 - Boucles loops

Attention ! L'instruction impérative 'Loop' n'est disponible qu'à partir de la version 0.4.0 d'Algoid.

Nous avons vu comment écrire une séquence d'instructions pour faire un programme.
Mais avez vous remarqué comme il est difficile et pénible d'écrire plusieurs fois la même séquence d'instructions ?
Loop vas nous aider à réduire la quantité de code en faisant répéter l'exécution du programme.
C'est la première instruction qui va nous permettre de jouer sur l'ordre dans lequel le programme est exécuté.

synopsis

  1. prérequis
  2. notions de base
  3. bloc
  4. loop
  5. Ă  vous de jouer
  6. sommaire

  7. << retour aux tu(r)toriaux

prérequis

Avant de lire ce tutoriel, il est important d'avoir lu : 1.1 - Qu'est ce qu'un programme ?

notions de base

Qu'est ce qu'une boucle ?
Une boucle va répéter un nombre de fois une portion du code.
Cette portion est contenue dans un block.

bloc

Un bloc regroupe une portion de code comme si c'Ă©tait une seule instruction.
Ce code est groupé avec des accolades {}.
En AL, Ă  chaque fois que vous verrez {} cela voudra dire que c'est un nouveau groupe d'instructions.

 
bloc : 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
// bloc
{
  // Dans le bloc, instruction 1
  // Dans le bloc, instruction 2
}
 

loop

L'instruction de boucle 'Loop' est une instruction simple, mais très utile.
Elle permet, nous l'avons vu, de répéter une instruction ou un bloc.
Une limite est nécessaire pour savoir combien de fois le bloc va-t-être répété.

 
encore un carrĂ© 1: 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
// encore un carré
loop (4) {
  algo.go (100);
  algo.turnRight (90);
}
// fin de la boucle
algo.hide ();

Ă  vous de jouer

Un triangle maintenant

Dessine un triangle grâce à la boucle.
indice : Un triangle équilatéral (qui a 3 côtés identiques) a également 3 angles identiques de 120° <=> (360 / 3) chacun.

 
Solution: 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
// boucle 3 fois
loop (3) {
  algo.go (200);
  algo.turnRight (360 / 3);
  // une rotation complète (360) divisĂ© par le nombre de cĂ´tĂ©s
}
 

Un pentagone maintenant

Dessine un pentagone : il est composé de 5 côtés.

 
Solution: 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
// boucle 5 fois
loop (5) {
  algo.go (100);
  algo.turnRight (360 / 5);
  // une rotation complète (360) divisĂ© par le nombre de cĂ´tĂ©s
}
 

Etoile avec des lignes

Dessine une étoile où chaque branche est représentée par des lignes.
Les instructions pour dessiner une ligne et revenir au point de départ sont :

 
une ligne: 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
// dessine une ligne
algo.go (100);
algo.turnLeft (180); // demi-tour
// retour Ă  la position initiale
algo.jump (100);
// retourne à l'angle de départ
algo.turnLeft (180); // demi-tour
 
 
Solution: 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
// loop for each branches
loop (20) {
  // draw branch
  algo.go (100);
  algo.turnLeft (180); // u turn
  algo.jump (100);
  // return to original orientation
  algo.turnLeft (180); // u turn
 
  // turn for other
  algo.turnLeft (360 / 20);
  // une rotation complète (360) divisĂ© par le nombre de branche

}

Une étoile est née

Dessine une vraie Ă©toile cette fois.
Les instructions pour dessiner une branche sont :

 
une branche : 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
// dessine une branche
algo.turnLeft (60);
algo.go (70);
algo.turnRight (120);
algo.go (70);
algo.turnLeft (60);
 
 
Solution: 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
// cache algo
algo.hide ();

loop (7) {
  algo.turnLeft (60);
  algo.go (70);
  algo.turnRight (120);
  algo.go (70);
  algo.turnLeft (60);

  algo.turnRight (360 / 7);
  // une rotation complète (360) divisĂ© par le nombre de branche
}
 


sommaire

connaissances

Dans ce tutoriel, vous avez appris :

  • qu'est ce qu'une boucle ?
  • qu'est ce qu'un bloc d'instruction ?
  • comment rĂ©pĂ©ter ce bloc d'instructions
  • comment utiliser les boucles pour crĂ©er des dessins plus jolis ?

fonctions utilisées :

FonctionDĂ©scription