Aller au contenu

Les boucles

Voici le problème à résoudre, vous devez écrire un algorithme qui demande à l’utilisateur de saisir une série de nombres et qui calcule et affiche la somme des nombres saisis.

Premier problème, vous ne savez pas combien de nombres est-ce que l’utilisateur va saisir.

1. Structure itérative Tant que

Très souvent, on est amené à répéter des instructions tant qu’une condition est vraie. Par exemple, verser de l’eau dans le vers

TANT QUE <condition> FAIRE
    Instruction 1
    Instruction 2
    Instruction ..
FINTANTQUE

Application
Écrire un algorithme qui demande à l’utilisateur de saisir un nombre et qui lui fait reprendre la saisie tant que le nombre saisi n’est pas supérieur à 0.

ALGORITHME
VAR nombre: entier
DEBUT
    AFFICHER(“Saisir un nombre positif :”)
    SAISIR(nombre)
    TANT QUE nombre <= 0 FAIRE
        AFFICHER(“Entrée invalide, saisir un nombre positif :”)
        SAISIR(nombre)
    FIN TANT QUE
FIN

2. Structure répétitive Répéter

REPETER
    Instruction 1
    Instruction 2
    Instruction ..
JQA <condition>

Les instructions dans le bloc REPETER seront exécutées au moins une fois contrairement au TANT QUE. En effet dans le TANT QUE on vérifie la condition avant d’exécuter les instructions tandis que dans le REPETER la condition est vérifiée après l’exécution des instructions.

ALGORITHME
VAR nombre: entier
DEBUT
    REPETER
        AFFICHER(“Saisir un nombre positif :”)
        SAISIR(nombre)
    JQA nombre <= 0
FIN

3. Pour

Lorsque l’on sait exactement combien de fois, les actions doivent être répétées.

POUR i <- 1 JQA n FAIRE
    Instruction 1
    Instruction 2
    Instruction ..
FINPOUR

Applications

Exercice 1

Énoncé
Écrire un algorithme qui demande à l’utilisateur de saisir un nombre entier et qui lui affiche la table de multiplication correspondante.

Exercice 2

Énoncé
Écrire un algorithme qui demande à l’utilisateur de saisir un nombre entier n et qui lui affiche la somme des n premiers nombres entiers.

Exercice 3

Énoncé
Écrire un algorithme qui demande à l’utilisateur de saisir un nombre entier n compris entre 10 et 20 et qui affiche “Le nombre 11 est impair” pour tous les n nombres premiers entiers.

Exercice 4

Énoncé
Écrire un algorithme qui demande à l’utilisateur de saisir un nombre entier n >=2 et qui vérifie si le nombre est premier.

Solution

ALGORITHME NombrePremiers
VAR n, i : entiers
    trouve : booléen

DEBUT
    AFFICHER("saisissez un nombre:")
    SAISIR(n)

    SI n<=1 FAIRE
        AFFICHER("n'est pas un nombre premier")
    SINON
        trouve <- FAUX /* INITIALISATION */
        POUR i de 2 à n/2 FAIRE
            SI n mod i = 0 FAIRE
                trouve = VRAI
            FINSI

        SI trouve = VRAI FAIRE
            AFFICHER("ce n'est pas un nombre premier")
        SINON
            AFFICHER("c'est un nombre premier")
    FINSI
FIN