|
~ 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
FIN
Les 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
FIN
Les 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
FIN
2) "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 ~
|