Exemples: Boucles While2011-2-10
Exemple 3.1 Écrire un  programme qui demande  à l’utilisateur de saisir deux nombres positifs et affiche le résultat du premier à la puissance le deuxième.Si l’utilisateur saisit au moins un nombre négatif, le programme lui redonne la main pour saisir à nouveau deux nombres.2
DonnéesEntrées: deux nombres x, ySorties: x à la puissance yTant que: porte sur le signe de x et yDemander à l’utilisateur de saisir des chiffres tant qu’il est en train de saisir au moins un chiffre négatif.3
4Diagramme d’activité
Exemple 3.2Saisir un entier, calculer n! (Factorielle de n)Utiliser une boucle While puis une boucle for.Exemples: factorielle de 3 =1*2*3 = 6factorielle de 4 =1*2*3*4 = 24factorielle de 10= 1*2*3*4*5*6*7*8*9*10= 3 628 8005
DonnéesEntrées: un nombre nSorties: la factorielle de n       [n*(n-1)*(n-2)*..*(1)] Tant que: porte sur le signe de x et yContinuer à effectuer des multiplications tant qu’on a pas multiplié les nombre n fois6
Algorithme7AlgorithmeInitialisationDébut |	     Produit=1|  	     Lire(n)|       compteur=1|       |       | Tant que compteur <= n    (<n+1)|       |	produit=produit*compteur|       |	compteur=compteur+1|       | Fin Tant que||	     Afficher(Produit)|Fin
Exemple 3.3Écrivez un programme qui utilise une boucle while  pour demander à l’utilisateur des nombres jusqu'à ce que leur somme dépasse 100.8
DonnéesEntrées: nombres saisis par l’utilisateurSorties: message indiquant le dépassement de 100Tant que: porte sur la somme obtenue au fur et à mesure (<=100)Additionner la somme avec la saisie de l’utilisateur à l’itération actuelle.9
Algorithme10AlgorithmeInitialisationDébut |	     Somme=0	|       |       | Tant que Somme <= 100 (<101)|       |	Lire(x)|       |	Somme=Somme+x|       | Fin Tant que|| 	     Afficher(Somme)|	     Afficher(" Fin")|Fin
Exemple 3.4Pour s'inscrire dans un site, on demande en général de choisir un mot de passe et de le saisir une autre fois. Modifier le programme de sorte qu’on interdit à l’utilisateur d’effectuer une saisie vide.11
Données:Entrées: mot de passe 1, mot de passe 2Sorties: message sur l’état de l’opérationTant que l’utilisateur effectue une saisie vide, lui demander de saisir à nouveauEnsuite :Test: mot de passe 1, mot de passe 2Si correspondent  afficher(« Inscrit avec succès»)Si non  afficher («Saisie invalide»)12
Algorithme13AlgorithmeDébut |	     	|  	     Lire(mdp1)|  	     Lire(mdp2)|       |       | Tant que (mdp1 est vide) ou (mdp2 est vide)|       |	 Lire(mdp1)|       |	 Lire(mdp2)|       | Fin Tant que||       | Si(mdp1 = mdp2) Alors|       |	 Afficher("Inscription effectuée")|       |Sinon|       |	 Afficher("Les deux mots de passe ne sont pas équivalents")|       | Fin si|Fin

Exemples while2

  • 1.
  • 2.
    Exemple 3.1 Écrireun programme qui demande à l’utilisateur de saisir deux nombres positifs et affiche le résultat du premier à la puissance le deuxième.Si l’utilisateur saisit au moins un nombre négatif, le programme lui redonne la main pour saisir à nouveau deux nombres.2
  • 3.
    DonnéesEntrées: deux nombresx, ySorties: x à la puissance yTant que: porte sur le signe de x et yDemander à l’utilisateur de saisir des chiffres tant qu’il est en train de saisir au moins un chiffre négatif.3
  • 4.
  • 5.
    Exemple 3.2Saisir unentier, calculer n! (Factorielle de n)Utiliser une boucle While puis une boucle for.Exemples: factorielle de 3 =1*2*3 = 6factorielle de 4 =1*2*3*4 = 24factorielle de 10= 1*2*3*4*5*6*7*8*9*10= 3 628 8005
  • 6.
    DonnéesEntrées: un nombrenSorties: la factorielle de n  [n*(n-1)*(n-2)*..*(1)] Tant que: porte sur le signe de x et yContinuer à effectuer des multiplications tant qu’on a pas multiplié les nombre n fois6
  • 7.
    Algorithme7AlgorithmeInitialisationDébut | Produit=1| Lire(n)| compteur=1| | | Tant que compteur <= n (<n+1)| | produit=produit*compteur| | compteur=compteur+1| | Fin Tant que|| Afficher(Produit)|Fin
  • 8.
    Exemple 3.3Écrivez unprogramme qui utilise une boucle while pour demander à l’utilisateur des nombres jusqu'à ce que leur somme dépasse 100.8
  • 9.
    DonnéesEntrées: nombres saisispar l’utilisateurSorties: message indiquant le dépassement de 100Tant que: porte sur la somme obtenue au fur et à mesure (<=100)Additionner la somme avec la saisie de l’utilisateur à l’itération actuelle.9
  • 10.
    Algorithme10AlgorithmeInitialisationDébut | Somme=0 | | | Tant que Somme <= 100 (<101)| | Lire(x)| | Somme=Somme+x| | Fin Tant que|| Afficher(Somme)| Afficher(" Fin")|Fin
  • 11.
    Exemple 3.4Pour s'inscriredans un site, on demande en général de choisir un mot de passe et de le saisir une autre fois. Modifier le programme de sorte qu’on interdit à l’utilisateur d’effectuer une saisie vide.11
  • 12.
    Données:Entrées: mot depasse 1, mot de passe 2Sorties: message sur l’état de l’opérationTant que l’utilisateur effectue une saisie vide, lui demander de saisir à nouveauEnsuite :Test: mot de passe 1, mot de passe 2Si correspondent  afficher(« Inscrit avec succès»)Si non  afficher («Saisie invalide»)12
  • 13.
    Algorithme13AlgorithmeDébut | | Lire(mdp1)| Lire(mdp2)| | | Tant que (mdp1 est vide) ou (mdp2 est vide)| | Lire(mdp1)| | Lire(mdp2)| | Fin Tant que|| | Si(mdp1 = mdp2) Alors| | Afficher("Inscription effectuée")| |Sinon| | Afficher("Les deux mots de passe ne sont pas équivalents")| | Fin si|Fin