Numérique et Sciences Informatiques > Algorithmique : Concepts de Base > Fonctions et Procédures > Portée des variables
Exemples pratiques de portée des variables en algorithmique
Illustrations concrètes de l'utilisation des variables locales et globales dans divers scénarios algorithmiques. Ces exemples vous aideront à mieux comprendre comment gérer la portée des variables pour écrire des programmes plus clairs et efficaces.
Exemple 1 : Calcul de la factorielle
Considérons le calcul de la factorielle d'un nombre. On peut utiliser une fonction pour effectuer ce calcul. Dans cette fonction, on utilisera une variable locale pour stocker le résultat partiel.
Dans cet exemple, la variable *resultat* est locale à la fonction *factorielle()*. Elle est utilisée pour stocker le résultat du calcul. La variable *nombre* et *fact* sont globales.fonction factorielle(n) {
variable locale resultat = 1
pour i de 1 à n faire
resultat = resultat * i
fin pour
retourner resultat
}
variable globale nombre = 5
variable globale fact = factorielle(nombre)
afficher("La factorielle de ", nombre, " est ", fact)
Exemple 2 : Compteur dans une boucle
Illustrons l'utilisation d'une variable locale dans une boucle *for*. Cette variable est utilisée comme compteur.
Dans cet exemple, la variable *i* est souvent implicitement locale à la boucle *pour* (cela peut dépendre du langage ou de l'implémentation). La variable *carre* est locale à chaque itération de la boucle. Après la fin de la boucle, ces variables ne sont plus accessibles.pour i de 1 à 10 faire
variable locale carre = i * i
afficher("Le carré de ", i, " est ", carre)
fin pour
// i et carre ne sont plus accessibles ici
Exemple 3 : Modification d'une variable globale depuis une fonction
Montrons comment une fonction peut modifier une variable globale, et les conséquences que cela peut avoir. Il est important de maîtriser ce comportement pour éviter des bugs.
Dans cet exemple, la variable *compteur* est globale. La fonction *incrementer()* modifie sa valeur. Chaque appel à la fonction incrémente la variable globale, et cela se reflète dans l'affichage final.variable globale compteur = 0
fonction incrementer() {
compteur = compteur + 1
afficher("Compteur incrémenté à ", compteur)
}
incrementer()
incrementer()
afficher("Compteur final : ", compteur)
Exemple 4 : Erreur courante : variable non déclarée
Voici un exemple d'erreur courante liée à la portée des variables : tenter d'accéder à une variable qui n'est pas définie dans la portée actuelle.
Dans cet exemple, la variable *message* est locale à la fonction *exempleErreur()*. La tentative d'afficher *message* en dehors de la fonction génère une erreur, car *message* n'est pas accessible dans cette portée.fonction exempleErreur() {
variable locale message = "Bonjour"
}
exempleErreur()
afficher(message) // Erreur : message n'est pas définie dans cette portée
Ce qu'il faut retenir
FAQ
-
Dans l'exemple du calcul de la factorielle, pourquoi la variable 'resultat' est-elle locale ?
La variable 'resultat' est locale car elle n'est utilisée que pour stocker le résultat du calcul à l'intérieur de la fonction 'factorielle()'. Elle n'a pas besoin d'être accessible depuis l'extérieur de la fonction. -
Si je modifie une variable globale à l'intérieur d'une fonction, cette modification est-elle visible en dehors de la fonction ?
Oui, si une fonction modifie une variable globale, cette modification est visible depuis n'importe quelle autre partie du programme qui accède à cette variable globale. -
Comment éviter les erreurs liées à la portée des variables ?
Pour éviter les erreurs liées à la portée des variables, il est important de bien comprendre la portée de chaque variable et de s'assurer que vous n'essayez pas d'accéder à une variable en dehors de sa portée. Il est également conseillé d'utiliser des noms de variables clairs et descriptifs pour éviter les confusions.