~ 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 ~
On entend par structure conditionnelle, la possibilité d'orienter un algorithme en fonction de choix
particuliers. Les structures conditionnelles nous ouvrent de nouveaux horizons pour l'élaboration d'algorithmes.
Cela représente une notion très importante qu'il faut pouvoir assimiler si l'on cherche à aller plus loin.
Il en existe deux. Elle permet d'exprimer une condition simple (binaire). L'évaluation de la condition va déterminer la suite du déroulement de l'algorithme. SI (condition) ALORS action_1 SINON action_2 FIN SI action_3Une seule des deux actions peut être exécutée (action_1 ou action_2), l'algorithme continue ensuite son déroulement normal (action_3). Si la condition évaluée est vraie, c'est l'action 1 qui est effectuée, sinon (si l'évaluation est fausse), l'action 2 est exécutée. On indique en général la fin de l'instruction conditionnelle pour bien délimiter son champ d'action. Les conditions peuvent prendre des formes plus ou moins complexes : SI (total = 0) ... SI ((mois > 2) ET (mois < 5)) ... SI (((reponse = "OUI") ET (total > 5)) OU (total > 10)) ...Si elle n'est pas nécessaire, la partie SINON peut être omise. On peut parfaitement enchaîner plusieurs instructions conditionnelles, d'ou l'intérêt de bien en délimiter la fin et d'indenter correctement l'algorithme. Voici un petit exemple simple qui permet de comprendre concrètement le fonctionnement de cette instruction: "Ecrire un algorithme qui calcule le maximum entre 2 nombres" LIRE nombre_1 LIRE nombre_2 SI (nombre_1 > nombre_2) ALORS ECRIRE nombre_1 SINON SI (nombre_1 < nombre_2) ALORS ECRIRE nombre_2 SINON ECRIRE "Les nombres sont identiques" FIN SI FIN SIOn assume que si le premier nombre n'est pas supérieur au second et inversement, c'est qu'ils doivent être identiques. Cette forme conditionnelle permet de mettre en place des choix multiples. SELON QUE (condition_1): action_1 (condition_2): action_2 ... (condition_n): action_n SINON: action FIN SELONLes conditions sont évaluées dans l'ordre, les unes après les autres, et dès qu'une de celle-ci est vérifiée l'action associée est exécutée. Après quoi on passe au FIN SELON pour continuer avec la suite de l'algorithme. On peut utiliser une instruction SINON (facultative), dont l'action sera exécutée si aucune des conditions évaluées n'a été remplie. Remarque : L'instruction SELON QUE peut être ramené à un enchaînement de SI imbriqués. Si on reprend l'exemple précédent, il s'écrira alors de la manière suivante: LIRE nombre_1 LIRE nombre_2 SELON QUE (nombre_1 > nombre_2): ECRIRE nombre_1 (nombre_1 < nombre_2): ECRIRE nombre_2 (nombre_1 = nombre_2): ECRIRE "Les nombres sont identiques" FIN SELON Dans les exercices ci-dessous, pensez à choisir la structure conditionnelle la plus appropriée pour
l'écriture de l'algorithme. 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 permet de résoudre une équation du premier degré de la forme 'Ax + B = 0'"LIRE a LIRE b SI (a = 0) ALORS ECRIRE "Impossible, division par zéro!" SINON ECRIRE (-b/a) FIN SI 2) "Calculer la durée d'un trajet connaissant l'heure de départ et d'arrivée" On se contente des heures et des minutes, la durée totale ne dépassera jamais 24 heures. LIRE heure_depart LIRE minute_depart LIRE heure_arrivee LIRE minute_arrivee SI (minute_depart > minute_arrivee) ALORS heure_arrivee = heure_arrivee - 1 minute_duree = (60 - minute_depart) + minute_arrivee SINON minute_duree = minute_arrivee - minute_depart FIN SI SI (heure_depart > heure_arrivee) ALORS heure_duree = (24 - heure_depart) + heure_arrivee SINON heure_duree = heure_arrivee - heure_depart FIN SI ECRIRE heure_duree, minute_duree 3) "Calculer le lendemain d'une journée donnée (jour, mois, année)" Il faut tenir compte ici du nombre de jour que l'on a dans chaque mois. La solution proposée ci-dessous n'est pas unique, j'ai décidé de mélanger les deux instructions conditionnelles, mais aura aussi bien pu le faire uniquement avec des SI ou un SELON QUE. LIRE jour LIRE mois LIRE annee SELON QUE (mois = 4) OU (mois = 6) OU (mois = 9) OU (mois = 11): SI (jour = 30) nouveau_jour = 1 nouveau_mois = nouveau_mois + 1 SINON nouveau_jour = jour + 1 FIN SI (mois = 1) OU (mois = 3) OU (mois = 5) OU (mois = 7) OU (mois = 8) OU (mois = 10): SI (jour = 31) nouveau_jour = 1 nouveau_mois = nouveau_mois + 1 SINON nouveau_jour = jour + 1 FIN SI (mois = 2): SI (jour = 28) nouveau_jour = 1 nouveau_mois = nouveau_mois + 1 SINON nouveau_jour = jour + 1 FIN SI (mois = 12): SI (jour = 31) nouveau_jour = 1 nouveau_mois = 1 nouvelle_annee = nouvelle_annee + 1 SINON nouveau_jour = jour + 1 FIN SI FIN SELON ECRIRE jour, mois, annee |
~ En stock ~
. 214 fonctions API
. 12 applications . 130 fonctions . 39 liens dans l'annuaire . 3 questionnaires . 20 livres sur Visual Basic . 1474 icônes ~ Affichage ~
~ Recommander ~
|