Hit-Parade .VB Research Center . Compteur
Accueil ~  Code ~  Programmes ~  Api ~  Forum ~  Cours ~  Livres ~  Quiz ~  Annuaire
~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période.
Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.

~ Rechercher ~

  

~ Annuaire VB ~
 Rechercher un site :
  

~ Partenaires ~

~ Bases de la programmation ~
. Retour au sommaire

. Structures répétitives
    . TANT QUE
    . REPETER JUSQU'A
    . POUR
    . Exercices
    . Corrigés

~ Structures répétitives ~

Dans certains, on peut se retrouver à avoir besoin de faire plusieurs fois la même opération. Si elles ne sont pas nombreuses, on pourrait à la rigueur, dupliquer autant de fois que nécessaire le morceau de l'algorithme qui nous interresse. Cependant, on se rend compte que cette solution n'est pas idéale. L'algorithme peut prendre rapidement une taille assez importante et si le traitement dupliqué est complexe et qu'une correction doit être effectuée, il faut alors la reporter sur chaque copie (sans compter que dans certains cas, on ne connaît pas à l'avance le nombre d'itérations que l'on aura à faire). Tout cela amène la notion de structure répétitive (ou boucle). On en compte trois, mais comme pour les structures conditionnelles, on pourrait aussi bien en utiliser qu'une seule.

~ TANT QUE ~

Cette instruction évalue une condition et tant que celle si est vérifiée, les actions placées à l'interieur sont alors effectuée. Pour sortir de la boucle, il faut que la condition ne soit plus remplie (c'est la seule possibilité admise en algorithmie).

TANT QUE (condition) FAIRE
    action
FIN TANT QUE
Il est possible que la condition ne soit pas remplie lors de la première évaluation, dans ce cas on passe à l'action qui se trouve après le FIN TANT QUE.
A chaque fois que l'on arrive au FIN TANT QUE, on revient au début de la boucle pour évaluer la condition. La condition doit utiliser une variable qui sera alors modifiée par l'action effectuée, sinon il y a peu de chance (voir aucune) pour que la boucle se termine.
L'exemple ci-dessous illustre parfaitement la notion de "boucle infinie". Comme la valeur de la variable 'total' ne change pas à l'intérieur de la boucle celle-ci ne pourra pas donc jamais se terminer, car la condition ne sera jamais remplie.

total = 0
TANT QUE (total < 5) FAIRE
    tour = tour + 1
FIN TANT QUE

~ REPETER JUSQU'A ~

Cette instruction répète une action jusqu'à ce que la condition soit remplie.

REPETER
    action
JUSQU'A (condition)
La condition est évaluée après l'action. Donc, dans cette structure, l'action est effectuée au moins une fois.
Un petit exemple pour montrer l'application de l'instruction, "Faire saisir un nombre positif" :
REPETER
    LIRE nombre
JUSQU'A (nombre > 0)
~ POUR ~

Cette dernière instruction de répétition est peut être la plus utilisée.

POUR valeur DE debut A fin PAS pas FAIRE
    action
FIN POUR
Elle affecte une valeur de départ à une variable, exécute les actions contenues dans la boucle, et l'incrémente jusqu'à la valeur de fin. L'incrémentation est par défaut de 1, mais il est possible de la régler avec l'instruction PAS.

Un exemple d'utilisation avec un algorithme qui affiche une table de multiplication:
LIRE nombre_positif
POUR multiplication DE 0 A 10 FAIRE
    ECRIRE nombre_positif x multiplication
FIN POUR
~ Exercices ~

Ces exercices servent principalement à mettre en application les points vus dans cette partie.

1) "Faire un algorithme qui effectue une multiplication en utilisant des additions successives"

2) "Calculer la somme des N premiers entiers positifs"

3) "Calculer le maximum de 10 nombres saisis par un utilisateur"

4) "Calculer tous les nombres de 3 chiffres sont égaux à la somme des cubes de leurs chiffres"

~ Corrigés ~

Il n'y a pas de correction unique, celles qui sont proposées ici représentent juste une manière de faire.

1) "Faire un algorithme qui effectue une multiplication en utilisant des additions successives"

LIRE nombre_1
LIRE nombre_2
resultat = 0
TANT QUE (nombre_2 > 0) FAIRE
    resultat = resultat + nombre_1
    nombre_2 = nombre_2 - 1
FIN TANT QUE
ECRIRE resultat
Dans cet exemple, il ne faut pas oublier d'initialiser la variable 'resultat'. On ne peut pas directement la placer dans la boucle sans avoir fixé sa valeur.

2) "Calculer la somme des N premiers entiers positifs"
LIRE n
somme = 0
POUR entier DE 1 A n FAIRE
    somme = somme + entier
FIN POUR
ECRIRE somme

3) "Calculer le maximum de 10 nombres saisis par un utilisateur"
Puisque l'on ne connait pas les nombres qui seront saisis, on ne peut pas se permettre de positionner arbitrairement le maximum à 0, puis le modifier en fonction des saisies. On fixe alors le maximum lors de la première lecture, la suite ne pose pas de problème.
LIRE maximum
POUR lecture DE 2 A 10 FAIRE
    LIRE nombre
    SI (maximum < nombre)
        ALORS
            maximum = nombre
    FIN SI
ECRIRE maximum

4) "Calculer tous les nombres de 3 chiffres sont égaux à la somme des cubes de leurs chiffres"
La première difficulté est la compréhension de la question. Si on représente cela sous forme mathématique, on recherche donc les nombres de ce type : ABC = (A^3) + (B^3) + (C^3).
POUR a DE 1 A 9 FAIRE
    POUR b DE 1 A 9 FAIRE
        POUR c DE 1 A 9 FAIRE
            nombre_1 = (a x 100) + (b x 10) + c
            nombre_2 = (a x a x a) + (b x b x b) + (c x c x c)
            SI (nombre_1 = nombre_2)
                ALORS
                    ECRIRE nombre_1
            FIN SI
        FIN POUR
    FIN POUR
FIN POUR
~ En stock ~
. 20 livres sur Visual Basic
. 1474 icônes

~ Affichage ~

~ Recommander ~





Géré par LBB.ORG
Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr