Algorithme -6-

Schéma d’algorithme – Structures itératives

On appelle Itération le fait d’exécuter une séquence d’instructions destinée à être exécutée plusieurs fois. Pour réaliser un itération dans notre langage algorithmique on dispose de 3 formes de Structures itératives:

  • Structure itérative TANTQUE permet de répéter un ensemble d’instructions tant qu’une condition reste vraie.
  • Structure itérative REPETER JUSQUA permet de répéter un ensemble d’instructions jusqu’à ce qu’une condition devienne fausse.
  • Structure itérative POUR permet de répéter de façon inconditionnelle un nombre de fois connu à priori un ensemble d’actions (ou instructions).
Structure itérative « TantQue »

La boucle TantQue permet de répéter un ensemble d’instructions tant qu’une condition reste vraie. Le test de la condition est évalué au début de chaque itération ce qui permet d’exécuter cette boucle un nombre quelconque de fois y compris zéro fois si le test est faux dès la première exécution. La boucle continue tant que la condition est Vraie , elle s’arrête lorsque la condition devient Faux. La syntaxe générale d’une boucle TanQue est la suivante :

Syntaxe
-- Initialiser la condition
TantQue (condition)
   Faire
      Instructions
      ...
      Instructions
      Mettre à jour la condition
   FinFaire
Fonction
  • Répéter une suite d’instructions tant qu’une condition est vérifiée
  • Instruction de modification de la condition à l’intérieur de la boucle
Exemple

L’exemple suivant montre une boucle TantQue qui effectue la somme des n premiers nombres entier

Schéma Algorithme Somme-N-Premier-Nombre    
    Description 
        Objectif: Calcul de la somme des N premiers nombres 
        Donnée:   n
        Résultat: Calculer et Afficher la somme de n premiers nombres 
        Remarque: Utilisation d'une structure répétitive TantQue

    Action 
        Données: somme, index
        Afficher("Calcul de la somme des n premiers nombres")
        Prendre("Entrez un nombre",n)
        Assigner (1,index)
        Assigner (0,somme)
        TantQue InférieurOuEgal(index,n) 
        Faire 
            Ajouter(index,somme)
            Ajouter(1,index)
        Fin-Faire
        Afficher("Le résultat est",somme)
    Fin-Action
Fin-Schéma 

Structure « Répéter Jusqu’à »

Cette boucle est une variante de la précédente. Le test de la condition est évaluée à la fin de chaque itération ce qui permet d’exécuter cette boucle au moins une fois. La syntaxe générale d’une boucle « Répéter jusqu’à » est la suivante :

Syntaxe
Répéter
   Instructions
   ...
   Instructions
   Mettre à jour la condition
jusqu'à (condition)

Fonction
  • Répéter une suite d’actions jusqu’à ce que la condition soit vérifiée
  • L’évaluation de la condition est effectuée à la fin de la boucle
Exemple

L’exemple suivant montre une boucle Répéter Jusqu’à qui effectue la somme des n premiers nombres entier

Schéma Algorithme  Somme-N-Premier-Nombre   
    Description
        Objectif:  Calcul de la somme des N premiers nombres 
        Données:   n 
        Résultat:  Calculer et Afficher la somme de n premiers nombres 
        Remarque:  Utilisation d'une structure répétitive Répéter jusqu'à

    Action 
        Données    somme,index
        Afficher("Calcul de la somme des n premiers nombres"
        Prendre("Entrez un nombre,n)
        Assigner(1,index)
        Assigner(0,somme)
        Répéter  
            Ajouter(index,somme)
            Ajouter(1,index)
        Jusqu’à Egal(index,n )     
        Afficher("Le résultat est",somme) 
    Fin-Action
Fin-Schéma 
Structure « Pour »

Cette boucle est une variante de la précédente. Le test de la condition est évaluée à la fin de chaque itération ce qui permet d’exécuter cette boucle au moins une fois. La syntaxe générale d’une boucle « Pour » est la suivante :

Syntaxe
Pour compteur allant de ... à ... AuPasDe ...
Faire
   instructions
   ...   
   instructions
Fin-Faire

Par exemple: Un compteur allant de 1 à 4 avec un « pas » de 1, prendra successivement les valeurs 1, 2, 3, 4 et l’on aura 4 itérations.

Fonction
  • Répéter une suite d’instructions un certain nombre de fois
  • Nombre d’itérations fixé
Exemple

L’exemple suivant montre une boucle POUR qui effectue la somme des n premiers nombre entier

Schéma Algorithme Somme-N-Premier-Nombre   
    Description 
        Objectif:   Calcul de la somme des N premiers nombres 
        Donnée:     n 
        Résultat:   Calculer et Afficher la somme de n premiers nombres 
        Remarque:   Utilisation d'une structure répétitive Pour
    Action
        Données:    somme,index
        Afficher("Calcul de la somme des n premiers nombres")
        Prendre("Entrez un nombre",n)
        Assigner(1,index)
        Assigner(0,somme)
        Pour index allant de 1 à n auPasDe 1
        Faire 
            Ajouter(index,somme)
        Fin-Faire
        Afficher("Le résultat est",somme) 
    Fin-Action
Fin-Schéma 

Une autre variante de la boucle pour:

Syntaxe
Pour element dans  collection-finie-de-données
Faire
   instructions
   ...   
   instructions
Fin-Faire

Ce schéma s’applique au parcours dans une collection finie de données. Par exemple: comptage du nombre d’éléments dans une suite finie de valeurs.

Fonction
  • Répéter une suite d’instructions un certain nombre de fois
  • Le nombre d’itérations est fixé par la détection implicite de la fin de la collection
  • A chaque tour de boucle la valeur de l’élément courant est placé dans la variable « element »
Exemple

L’exemple suivant montre une boucle POUR qui effectue la somme des 5 premiers nombre entier

Schéma Algorithme Somme-5-Premier-Nombre   
    Description 
        Objectif:   Calcul de la somme des 5 premiers nombres 
        Résultat:   Afficher la somme de 5 premiers nombres 
    Action
        Données:    somme,collection
        Afficher("Calcul de la somme des 5 premiers nombres")
        Assigner((1,2,3,4,5),collection)
        Assigner(0,somme)
        Pour element dans collection
        Faire 
           -- Ajouter element à somme
           Ajouter(element,somme) 
        Fin-Faire 
        Afficher("Le résultat est",somme) 
    Fin-Action 
Fin-Schéma 
Comment réaliser une boucle
Quelle boucle utiliser?
  • Le nombre d’itérations est connu à l’avance, il faut utiliser la boucle Pour
  • Le nombre d’itérations dépend de la condition et l’on doit exécuter zéro ou plusieurs fois, il faut utiliser la boucle TantQue
  • Le nombre d’itérations dépend de la condition et l’on doit exécuter au moins une fois, il faut utiliser la boucle Répéter Jusqu’à
Élaboration d’un boucle

Elle se fera en 3 phases:

  • La constitution du corps de la boucle
  • La définition des valeurs initiales
  • L’écriture du test d’arrêt