Mathématiques.club

Accueil > Terminale ES et L spécialité > Algorithmes > Faire "tourner" un algorithme

Faire "tourner" un algorithme

dimanche 25 décembre 2016, par Neige

Méthode

Un algorithme est une liste d’instruction basiques qui se succèdent.
En général, on conçoit un algorithme pour le faire fonctionner sur une machine (calculatrice, ordinateur, ...).
Faire "tourner" un algorithme, consiste à se mettre à la place de la machine et effectuer les instructions, ligne après ligne.

On passe ainsi d’une ligne à une autre dans le sens de la lecture à trois exceptions près :

1. La structure SI... ALORS... SINON... FIN SI
Elle s’utilise souvent ainsi :

ligne 1 :    SI conditions ALORS
ligne 2 :        instructions A
ligne 3 :    SINON
ligne 4 :        instructions B
ligne 5 :    FIN SI
ligne 6 :    (suite de l'algorithme)

On commence à la ligne 1.

  • Si les conditions sont VRAIES alors on passe à la ligne 2 et on effectue les instructions A.
    On passe ensuite à la ligne 6 pour poursuivre l’exécution de l’algorithme.
  • Si les conditions sont FAUSSES alors on passe à la ligne 4 et on effectue les instructions B.
    On passe ensuite à la ligne 6 pour poursuivre l’exécution de l’algorithme.

2. La structure POUR i entre a et b FAIRE... FIN POUR
Elle s’utilise souvent ainsi (avec a et b des nombres entiers) :

ligne 1 :    POUR i entre a et b FAIRE
ligne 2 :        instructions A
ligne 3 :    FIN POUR
ligne 4 :    (suite de l'algorithme)

On commence à la ligne 1.

  • i prend la valeur a.
    On passe à la ligne 2 et on effectue les instructions A.
    On remonte à la ligne 1 en ajoutant 1 à la valeur de i.
  • i prend la valeur a+1.
    On passe à la ligne 2 et on effectue les instructions A.
    On remonte à la ligne 1 en ajoutant 1 à la valeur de i.
  • i prend la valeur a+2.
    On passe à la ligne 2 et on effectue les instructions A.
    etc...
  • i prend la valeur b, c’est le dernier "passage".
    On passe à la ligne 2 et on effectue les instructions A.
    Cette fois, on passe à la ligne 4 et on poursuit l’exécution de l’algorithme.

3. La structure TANT QUE conditions FAIRE... FIN TANT QUE
Elle s’utilise souvent ainsi :

ligne 1 :    TANT QUE conditions FAIRE
ligne 2 :        instructions A
ligne 3 :    FIN TANT QUE
ligne 4 :    (suite de l'algorithme)

On commence à la ligne 1.

  • Si les conditions sont FAUSSES, on saute directement à la ligne 4 (sans effectuer les instructions A) et on poursuit l’exécution de l’algorithme.
  • Si les conditions sont VRAIES alors on passe à la ligne 2 et on effectue les instructions A.
    On remonte à la ligne 1 et on teste à nouveau les conditions.
  • Si les conditions sont FAUSSES, on saute directement à la ligne 4 et on poursuit l’exécution de l’algorithme.
  • Si les conditions sont VRAIES alors on passe à la ligne 2 et on effectue les instructions A.
    On remonte à la ligne 1 et on teste à nouveau les conditions.
  • etc...

Si les conditions sont toujours VRAIES, l’algorithme ne termine jamais, il réalise une boucle infinie, c’est un bug.
Normalement, au bout d’un certain nombre de "passages", les conditions deviennent FAUSSES et on peut poursuivre l’algorithme.

Un exemple en vidéo

D’autres exemples pour comprendre

  • Niveau facile
    Faire "tourner" l’algorithme suivant :
ligne 1 :    a prend la valeur 2
ligne 2 :    b prend la valeur -3
ligne 3 :    SI a+b>0 ALORS
ligne 4 :        c prend la valeur 10
ligne 5 :    SINON
ligne 6 :        c prend la valeur 20
ligne 7 :    FIN SI
ligne 8 :    Afficher c
Voir la réponse

Dans ce qui suit, on a indiqué les numéros des lignes mais ce n’est pas nécessaire.

a=2 (ligne 1)
b=-3 (ligne 2)
a+b=-1<0 (ligne 3)
c=20 (ligne 6)
On affiche 20 (ligne 8)
  • Niveau moyen
    Faire "tourner" l’algorithme suivant :
ligne 1 :    u prend la valeur -1
ligne 2 :    n prend la valeur 0
ligne 3 :    TANT QUE n<5
ligne 4 :        n prend la valeur n+1
ligne 5 :        u prend la valeur 2u-3
ligne 6 :    FIN TANT QUE
ligne 7 :    Afficher n
ligne 8 :    Afficher u
Voir la réponse

Dans ce qui suit, on a indiqué les numéros des lignes mais ce n’est pas nécessaire.

u=-1 (ligne 1)
n=0 (ligne 2)
n=0<5 (ligne 3)
n=0+1=1 (ligne 4)
u=2×(-1)-3=-5 (ligne 5)
n=1<5 (ligne 3)
n=1+1=2 (ligne 4)
u=2×(-5)-3=-13 (ligne 5)
n=2<5 (ligne 3)
n=2+1=3 (ligne 4)
u=2×(-13)-3=-29 (ligne 5)
n=3<5 (ligne 3)
n=3+1=4 (ligne 4)
u=2×(-29)-3=-61 (ligne 5)
n=4<5 (ligne 3)
n=4+1=5 (ligne 4)
u=2×(-61)-3=-125 (ligne 5)
n=5, cela rend la condition de la ligne 3 FAUSSE
On affiche n=5 (ligne 7)
On affiche u=-125 (ligne 8)

Remarque : cet algorithme pourrait servir à calculer $u_{5}$ pour la suite définie par $u_{0}=-1$ et pour tout entier naturel $n, u_{n+1}=2\times u_{n}-3$.

  • Niveau difficile
    Faire "tourner" l’algorithme suivant :
ligne 1 :    a prend la valeur 3
ligne 2 :    b prend la valeur 1
ligne 3 :    POUR i entre 1 et 2 FAIRE
ligne 4 :        b prend la valeur b+i
ligne 5 :        POUR j entre 5 et 7 FAIRE
ligne 6 :            a prend la valeur a+i+j
ligne 7 :            Afficher a×b
ligne 8 :        FIN POUR
ligne 9 :    FIN POUR
Voir la réponse

Dans ce qui suit, on a indiqué les numéros des lignes mais ce n’est pas nécessaire.

a=3 (ligne 1)
b=1 (ligne 2)
i=1 (ligne 3)
b=1+1=2 (ligne 4)
j=5 (ligne 5)
a=3+1+5=9 (ligne 6)
On affiche 9×2=18 (ligne 7)
j=6 (ligne 5)
a=9+1+6=16 (ligne 6)
On affiche 16×2=32 (ligne 7)
j=7 (ligne 5)
a=16+1+7=24 (ligne 6)
On affiche 24×2=48 (ligne 7)
i=2 (ligne 3)
b=2+2=4 (ligne 4)
j=5 (ligne 5)
a=24+2+5=31
On affiche 31×4=124 (ligne 7)
j=6 (ligne 5)
a=31+2+6=39 (ligne 6)
On affiche 39×4=156 (ligne 7)
j=7 (ligne 5)
a=39+2+7=48 (ligne 6)
On affiche 48×4=192 (ligne 7)

Au Bac

On peut utilser cette méthode pour résoudre :

Messages

Un message, un commentaire ?

modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par les responsables.

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Ce site vous a été utile ? Vous pouvez encourager son développement en le diffusant sur les réseaux sociaux.

Facebook :

Youtube (abonnement à la chaîne) :