DAIGL:Algorithme

Cours 1ère année par dudsweet57


Sommaire

Introduction

Un algorithme c'est la création d'un programme mais en "français". Cela a la même architecture mais on n'emploie pas directement le langage informatique. On y définit des variables, et le corps avec un début et une fin. ?Entrez le texte non formatté ici

Algorithme de base

aaAlgo Mon_1er_Algo   <-on dit qu'on fait de l'algorithme et on lui donne un nom (de préférence : pas d'espace dans le nom)
Variables <-ou VAR
   i:entier         <-zone de déclaration des variables
Début               <-Début du programme
   Afficher("Bonjour")
Fin                 <-Fin du programme

La zone de déclaration des variables est un emplacement mémoire où l'on spécifie le type de variable:

  • entier
  • réel
  • chaine
  • booléen

Une variable est une zone mémoire que l'on réserve au début du programme. Déclarer une variable consiste à réserver un espace mémoire et à lui attribuer un nom ainsi qu'un type. Une variable doit commencer par un caractère alphabétique et peut contenir un "underscore" et des chiffres.


Exemple: On va créer un programme et lui faire apparaitre la table de multiplication de 42

Algorithme Table de 42
Variables
   unmessage:Bonjour, vous aldlez voir la table de multiplication de 42
   i:42
Début
   i<-42               <-on initialise la variable on lui donne la valeur qu'on veut ici 42
   Afficher(unmessage) <-On demande au prog d'afficher la variable unmessage(bjr..)
   Afficher(i*0)       <-Et la tout bêtement on fait sa table
   Afficher(i*1)
   Afficher(i*2)
   Afficher(i*3)
   ...
Fin

Les conditionnelles

La conditionnelle permet de choisir l'exécution d'un traitement ou d'un autre traitement en fonction du résultat d'une opération (ou d'une évaluation)

Exemple :

Si a < b
   Alors  <-ici je décale le texte pour que cela soit plus lisible c'est une indentation
      Faire ca
   Sinon
      Faire ca
Fin Si

Les conditions d'évaluation peuvent être: =,<,> etc... Le bloc d'instruction "Sinon" est optionnel.
Chaque bloc ouvert se doit d'être fermé :

  • Si, Fin Si
  • Début, Fin ...

Exemple :
Créer un programme qui demande à l'utilisateur de taper son nom et son QI.
Si son QI est supérieur à 120, afficher son nom et "tu es fort" sinon afficher son nom et "n'est pas un génie" avec son QI(redonner aussi son QI).

On a donc besoin de 2 variables(nom + QI) et de la commande saisir permettant à l'utilisateur de saisir ses infos.

Algo Qi
Variables
   qi:entier
   nom:chaine
Début
   Saisir(nom)     <-on demande à l'utilisateur de saisir la variable nom
   Saisir(qi)      <-même chose mais pour son QI
   Si (qi > 120)   <-on a donc besoin d'une conditionnelle
      Alors
         Afficher(nom, " est fort") 
      Sinon
         Afficher(nom, "n'est pas un génie avec son QI de",qi)
   Fin Si

Fin


Un autre type de structure de contrôle conditionnelle est le "selon", qui permet, de façon plus lisible qu'une imbrication complexe de "si", d'envisager différents traitements en fonction de la valeur d'une variable.

Exemple :

Selon a
   Cas 1:  <-ici je décale le texte pour que cela soit plus lisible c'est une indentation
      Faire ceci
   Fin de cas
   Cas 2:
   Cas 3:
      Faire cela
   Fin de cas
   Cas sinon:
      Faire autre chose
   Fin de cas
Fin Selon

Cet exemple fait la même chose que le suivant, mais plus simplement :

Si a=1
   Alors
      Faire ceci
   Sinon
       Si a=2 ou a=3
           Alors
               Faire cela
           Sinon
               Faire autre chose
       Fin Si
Fin Si

On utilisera de préférence le "selon" dans les cas où une variable ou le résultat d'une expression (dans l'exemple, "a") peut prendre plus de deux valeurs impliquant des traitements distincts. Le "si", en revanche, conviendra mieux lorsque la variable ou l'expression ne peut prendre que deux valeurs différentes (ex : VRAI/FAUX, 1/O, un cas précis/autres cas, ...). Le bloc d'instruction "Cas sinon:" est optionnel, mais recommandé.
Chaque bloc ouvert se doit d'être fermé :

  • Selon, Fin Selon
  • Cas, Fin Cas ...

Quelques remarques sur cette structure très pratique :

   - cela permet une meilleure lisibilité que les imbrications de "si" car l'indentation est la même entre les différents cas.
   - cette structure permet d'effectuer un même traitement dans plusieurs cas (cf. dans l'exemple ci-dessus les cas 2 et 3)
   - cette structure de contrôle propose un cas par défaut qui sera pris en compte si aucun des autres cas n'est rempli, c'est le "cas sinon"

Les itérations(boucles)

Une itération permet d'executer un ensemble d'instruction, un certain nombre de fois. Le nombre d'exécution est déterminé en fonction de la condition de poursuite(ou d'arrêt)

Syntaxe

Tant que (condition) faire
(Bloc de traitement)
Fin Tant que

Exemple:
Ecrire un programme qui écrit 8 milliards de fois "Bonjour Maître"

Algo Maître
Variable
   i:entier
Début
   i<-0     <-on initialise la variable à 0
   Tant que(i<8000000000)faire     <-on introduit la condition ATTENTION:ne pas oublier le faire!
         Afficher("Bonjour Maître")      <-on donne l'instruction à réaliser(ATTENTION à ne pas oublier "" c'est une chaîne de caractère)
         i<-i+1       <-on fait ce qu'on appele une incrémentation, à chaque fois que l'on passe dans la boucle i vaut i+1 et cela jusqu'à ce que la
condition soit remplie
Fin Tant que Fin
Récupérée de « http://www.web-ig.com/cours/DAIGL:Algorithme.html »