Aller au contenu

La structure de choix

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

SUIVANT <variable> FAIRE
    Instruction 1
    Instruction 2
    Instruction ..
SINON
    Instruction ..
FINSUIVANT

Applications

Énoncé

É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.

Solution

ALGORITHME
VAR note: entier
    appreciation : chaîne de caractères
DEBUT
    AFFICHER(“Saisir la note :”)
    SAISIR(note)

    SUIVANT note FAIRE
        0, 1, 2, 3, 4, 5, 6, 7, 8, 9:
            appreciation <- "PASSABLE"
        0, 1, 2, 3, 4, 5, 6, 7, 8, 9:
            appreciation <- "PASSABLE"
        6, 7:
            appreciation <- "TRES-INSUFFISANT"
        8, 9:
            appreciation <- "INSUFFISANT"
        10, 11:
            appreciation <- "PASSABLE"
        12, 13:
            appreciation <- "ASSEZ-BIEN"
        14, 15:
            appreciation <- "BIEN"
        16, 17:
            appreciation <- "TRES-BIEN"
        18, 19, 20:
            appreciation <- "EXCELLENT"
    FIN TANT QUE

    AFFICHER(Note : ", note, " - Appreciation : ", appreciation)
FIN

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