Page MenuHomePhabricator

La boucle tant que
Updated 929 Days AgoPublic

La boucle WHILE

Une boucle TANT QUE, aussi appelé la boucle while, permet de répéter un bloc d’instructions un nombre de fois qui n'est pas déterminé à l’avance, dans de tel cas de figure, le dernier élément est particulier. Dans de telle boucle, on effectue généralement le traitement puis le passage au suivant. Lorsque la condition n'est plus remplie, la boucle se brise et le programme reprend à la suite des instructions de la boucle.

200px-Cf-while-fr.svg.png (172×200 px, 8 KB)

Par exemple dans la figure ci-dessus, si la condition "test" est vraie, on exécute Instruction 1, puis arrivé à la fin du bloc on évalue à nouveau la condition et on recommence. Quand le test renvoie un résultat faux, on quitte la boucle en sautant à instruction 2.

DÉBUT
VARIABLE somme, v: ENTIER
somme<-0

LIRE "Entrez une valeur:", v
TANT QUE v != 0:
    somme <- somme + v

    LIRE "Entrez une valeur:", v
FIN TANT QUE

ÉCRIRE "La somme vaut: ", somme
FIN
Il est à noter que si la condition d'entrée est fausse dés le départ, avant la même d'entrer dans la boucle, aucune instruction de la boucle ne sera appelée. Celle-ci est ignorée, et les instructions suivantes sont alors exécutées.

Exercices

  • Écrivez un algorithme qui calcule la moyenne des nombres positifs non nuls donnés par l'utilisateur
moyenne
DÉBUT
VARIABLE n: ENTIER
VARIABLE somme, valeur: RÉEL
somme<-0
n=0

LIRE "Une valeur", v
TANT QUE v > 0:
    somme<-somme+v
    n<-n+1

    LIRE "Une valeur", v
FIN TANT QUE

ÉCRIRE "La moyenne vaut: ", somme/n
FIN
  • Écrivez un algorithme qui calcule le minimum et le maximum d'une série de valeurs terminée par 0.
minimum et maximum
DÉBUT
VARIABLE min, max, valeur: RÉEL
max<- -
min<- +

LIRE "Une valeur", v
TANT QUE v != 0:
    SI v > max:
        max <- v
    FIN SI
    SI v < min:
        min <- v
    FIN SI

    LIRE "Une valeur", v
FIN TANT QUE

ÉCRIRE "Le minimum vaut: ", min, " et le maximum vaut: ", max
FIN
  • Écrivez un algorithme qui calcule le nombre de mots d'une phrase, séparé par un espace, terminée par un ".".
nombre de mots dans une phrase
DÉBUT
VARIABLE cpt: ENTIER
VARIABLE c, p: CARACTÈRE

cpt<-0
p  NUL
LIRE c
TANT QUE c != '.':
    SI (c = ' ' OU c='.') ET p != ' ':
        cpt<-cpt+1
    FIN SI

    p <- c
    LIRE c
FIN TANT QUE

ÉCRIRE "La phrase contient: ", cpt, "mots."
FIN
  • Écrivez un algorithme qui calcule par soustraction successive le quotient et le reste de la division entière de deux entiers donnés par l'utilisateur.
division entière
DÉBUT
VARIABLE d, q, r: ENTIER

LIRE "Quel est le nombre que vous souhaitez diviser? ", r
LIRE "Quel est le diviseur? ", d
q<-0

TANT QUE r >= d:
     r <- r - d
    q <- q + 1
FIN TANT QUE

ÉCRIRE "Le quotient vaut", q, " et le reste vaut", r
FIN
  • Écrivez un algorithme qui demande un entier à l'utilisateur et qui construit son palindrome. Astuce: Calculer la division entière par 10.
nombre palindrome
DÉBUT
VARIABLE n, p: ENTIER

LIRE "Quel nombre? ", n

TANT QUE n != 0:
    r <- n % 10
    ECRIRE -n r
    n  (n-r) / 10    
FIN TANT QUE

FIN
  • Écrivez un algorithme qui lit un nombre et détermine s'il est premier.
Vérifier si un nombre est premier en testant tous les nombres.
DÉBUT
VARIABLE n, i: ENTIER

LIRE "Quel nombre? ", n
i2
TANT QUE n % i != 0:
    i <- i +1
FIN TANT QUE

SI i == n:
    ÉCRIRE "Le nombre est premier"
SINON:
    ÉCRIRE "Le nombre n'est pas premier".
FIN SI
FIN
Vérifier si un nombre est premier en testant uniquement les diviseurs potentiels.
DÉBUT
VARIABLE n, i: ENTIER

LIRE "Quel nombre? ", n
i<-2
TANT QUE n % i != 0 ET i < n:
    i  i +1
FIN TANT QUE

SI i > n:
    ÉCRIRE "Le nombre est premier"
SINON:
    ÉCRIRE "Le nombre n'est pas premier".
FIN SI
FIN
  • Écrivez un algorithme qui calcule le PGCD de deux nombres entrés par l'utilisateur. Astuce: Il peut être trouvé facilement à l'aide de soustraction successive du plus petit par le plus grand.
Algorithme dEuclide par soustraction
DÉBUT
VARIABLE a, b: ENTIER

LIRE "Quelle est la valeur de a? ", a
LIRE "Quelle est la valeur de b? ", b

TANT QUE a != b:
    SI a > b:
        a <- a  b
    SINON:
        b <- b  a
    FIN SI
FIN TANT QUE

ÉCRIRE a
Algorithme dEuclide par modulo
DÉBUT
VARIABLE a, b, t: ENTIER

LIRE "Quelle est la valeur de a? ", a
LIRE "Quelle est la valeur de b? ", b

TANT QUE b != 0:
    t <- b
    b <- a % b
    a <- t
FIN TANT QUE

ÉCRIRE a
Last Author
kossolax
Last Edited
Nov 12 2020, 1:15 PM

Event Timeline

kossolax edited the content of this document. (Show Details)
kossolax edited the content of this document. (Show Details)
kossolax edited the content of this document. (Show Details)
kossolax edited the content of this document. (Show Details)
kossolax edited the content of this document. (Show Details)