~ 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 ~
~ Partenaires ~
|
~ Bases de la programmation ~
. Retour au sommaire
. Structures répétitives . TANT QUE . REPETER JUSQU'A . POUR . Exercices . Corrigés 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. 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 QUEIl 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 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) 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 POURElle 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 Ces exercices servent principalement à mettre en application les points vus dans cette partie. Il n'y a pas de correction unique, celles qui sont proposées ici représentent juste une manière de faire. 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 resultatDans 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 ~
|