~ 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
. Procédures et fonctions . Notions de base . Paramètre . Procédure . Fonction . Exercices . Corrigés Lorsque l'on progresse dans la conception d'algorithmes, ces derniers peuvent prendre une taille et une
compléxité croissante. On peut alors être tenté de vouloir les découper en "sous-algorithme". C'est la
qu'interviennent les procédures et les fonctions. Un paramètre est un élément qui fourni à une action une information dont elle a besoin pour son traitement et qui détermine le résultat retourné. Une action peut n'avoir aucun paramètre tout comme elle peut en nécéssiter plusieurs. Les paramètres fonctionnent dans trois sens: Une procédure est simplement la mise en application les notions vues dans les deux parties précédentes.
Elle est définie par son en-tête et par son corps. L'en-tête va contenir le nom de la procédure et
ses paramètres : PROCECURE Perimetre (ENTREE Largeur, Longueur ; SORTIE Resultat)Le corps de la procédure regroupe tous les éléments utiles pour son fonctionnement : DEBUT Resultat = Largeur x Longueur FINLes paramètres 'Largeur' et 'Longueur' sont des données qui ne seront pas modifiées par la procédure, ils sont donc signalés en 'ENTREE'. Le paramètre 'Resultat' quant à lui contiendra le résultat du calcul il est donc indiqué en 'SORTIE'. A l'intérieur d'un algorithme plus important, l'appel sera vu de la manière suivante : ... LIRE Largeur LIRE Longueur Perimetre(Largeur, Longueur, Resultat) ECRIRE Resultat ...Attention, le nombre de paramètres d'une procédure doit être absolument respecté lors de l'appel. Les paramètres en ENTREE peuvent être indifférement des valeurs ou des variables, alors que les paramètres de SORTIE doivent obligatoirement être des variables. Une fonction à la particularité de directement retourner une valeur et ne peut donc s'utiliser qu'à
l'intérieur d'une expression (affectation de variable, test conditionnel, ...). FONCTION Maximum (ENTREE nombre_1, nombre_2)Comme pour une procédure le corps de la fonction contient les éléments utiles pour son fonctionnement : DEBUT SI (nombre_1 > nombre_2) ALORS Maximum = nombre_1 SINON Maximum = nombre_2 FINSI FINLes paramètres 'nombre_1' et 'nombre_2' ne seront pas modifiées par la fonction, ils sont donc mis en 'ENTREE'. La valeur de retour de la fonction est affectée en utilisant son nom (Maximum = ...). Exemple d'utilisation : ... LIRE nombre_1 LIRE nombre_2 ECRIRE Maximum(nombre_1, nombre_2) ...Lorsqu'on travaille avec des fonctions, on peut faire de la récursivité. Ainsi, une fonction, peut s'appeler elle-même pour obtenir le résultat final. L'exemple classique est celui du calcul de factoriel: FONCTION Facto(ENTREE nombre) DEBUT SI (nombre = 0) ALORS Facto = 1 SINON Facto = nombre x Facto(nombre - 1) FINSI FIN Avec les éléments vus dans cette première partie, voici quelques exercices à réaliser. Le but est,
bien entendu, de mettre en pratique l'utilisation des procédures et des fonctions : Il n'y a pas de correction unique, celles qui sont proposées ici représentent juste une manière de faire. PROCEDURE Factoriel(ENTREE nombre) DEBUT REPETER LIRE nombre JUSQU'A (nombre >= 0) Fact = 1 POUR i DE 2 A n FAIRE Fact = Fact x i FIN POUR ECRIRE Fact FIN2) "Calculer le miroir d'une nombre donné (par ex. 456 -> 654, 3210 -> 123) L'opérateur MOD retourne le reste d'une division entière. PROCEDURE Miroir(ENTREE nombre) DEBUT TANT QUE (nombre <> 0) POUR i DE 0 A 9 FAIRE SI (((nombre - i) MOD 10) = 0) ALORS ECRIRE i SINON nombre = ((nombre - i) \ 10) FIN POUR FIN TANT QUE FIN 3) "Calculer le plus grand commund diviseur de deux nombres" On découpe cette fois-ci au maximum et on utilise trois fonctions pour obtenir le résultat, la fonction principale étant 'Pgcd', qui fait appel aux deux premières. FONCTION Min(ENTREE nombre_1, nombre_2) DEBUT SI (nombre_1 < nombre_2) ALORS Min = nombre_1 SINON Min = nombre_2 FINSI FIN FONCTION MaxMoinsMin(ENTREE nombre_1, nombre_2) DEBUT SI ( nombre_1 < nombre_2) ALORS MaxMoinsMin = nombre_2 - nombre_1 SINON MaxMoinsMin = nombre_1 - nombre_2 FINSI FIN FONCTION Pgcd(ENTREE nombre_1, nombre_2) DEBUT SI (nombre_1 = nombre_2) ALORS Pgcd = nombre_1 SINON Pgcd = Pgcd(Min(nombre_1, nombre_2), MaxMoinsMin(nombre_1, nombre_2) FINSI FIN |
~ En stock ~
. 20 livres sur Visual Basic
. 1474 icônes ~ Affichage ~
~ Recommander ~
|