Portée des Variables

Header :

La portée des variables fait référence à la visibilité des variables dans différentes parties d'un programme. Comprendre la portée des variables est essentiel pour éviter les erreurs et les conflits de noms dans un programme. Dans ce chapitre, nous explorerons les concepts fondamentaux de la portée des variables en pseudo-code.


Body

1. Variables Locales

Les variables locales sont déclarées à l'intérieur d'une fonction ou d'un bloc de code spécifique (condition, switch, boucle,...), et leur portée est limitée à ce contexte. Les variables locales ne sont pas accessibles depuis l'extérieur de la fonction ou du bloc où elles sont définies.

Exemple de variable locale :

FONCTION exempleLocale()
    ENTIER x
    x <- 10
FIN FONCTION

Dans cet exemple, la variable x est locale à la fonction exempleLocale et ne peut pas être utilisée en dehors de cette fonction.

2. Variables Globales

Les variables globales sont déclarées en dehors de toutes les fonctions ou blocs, ce qui les rend accessibles de manière globale dans tout le programme. Les variables globales peuvent être utilisées dans n'importe quelle fonction ou bloc de code.

Exemple de variable globale :

ENTIER compteurGlobal
FONCTION incrementerCompteur()
    compteurGlobal <- compteurGlobal + 1
FIN FONCTION

Dans cet exemple, la variable compteurGlobal est déclarée en dehors de toutes les fonctions et peut être utilisée dans la fonction incrementerCompteur.

3. Portée des Variables

La portée des variables détermine où une variable peut être utilisée. Une variable locale est visible uniquement à l'intérieur de la fonction ou du bloc où elle est définie, tandis qu'une variable globale est visible dans tout le programme.

Exemple de portée des variables :

ENTIER variableGlobale

FONCTION fonctionLocale()
    ENTIER variableLocale
    variableLocale <- 5
    AFFICHER variableLocale  // OK
    AFFICHER variableGlobale  // OK
FIN FONCTION

AFFICHER variableGlobale  // OK, variableGlobale est globale
AFFICHER variableLocale  // Erreur : variableLocale n'est pas visible ici

Dans cet exemple, variableGlobale est globale et peut être utilisée partout, tandis que variableLocale est locale à la fonction fonctionLocale et ne peut être utilisée en dehors de cette fonction. Attention que ce fonctionnement peut varier d'un langage de programmation à l'autre, et il y a aussi moyen de manipuler cette notion, mais pour coder proprement, de toute façon, on aime partir de ce principe, et l'outrepasser uniquement si vraiment on a pas le choix.

4. Précautions avec les Variables Globales

Bien que les variables globales offrent une portée étendue, elles nécessitent des précautions. Les variables globales peuvent entraîner des conflits de noms et compliquer la compréhension du code. Il est préférable de limiter l'utilisation de variables globales aux cas où elles sont réellement nécessaires et d'adopter des noms de variables significatifs pour éviter les conflits.

La compréhension de la portée des variables est essentielle pour écrire un code clair et éviter les erreurs. Les variables locales sont utiles pour isoler des données spécifiques à une fonction, tandis que les variables globales permettent de partager des données entre différentes parties du programme. Il est important de choisir la portée appropriée pour chaque variable en fonction de ses besoins spécifiques dans le programme.

5. A ton avis

CHAINE message1
FONCTION fonctionA()
	CHAINE message2
	//Code FonctionA
	SI 
	CHAINE message3
		//Code SI
		FONCTION fonctionB()
			//Code FonctionB
			CHAINE message4
		FIN FONCTION
	SINON 
		//Code SINON
		FONCTION fonctionC()
			CHAINE message5
			//Code FonctionC
			POUR i DE 1 A 5 PAS 1 
				CHAINE message6
				//Code BOUCLEPOUR
			FIN POUR
		FIN FONCTION
	FIN SI
	//Code Global
FIN FONCTION
  • Est-ce que je peux AFFICHER message1 dans Code Fonction B ?
  • Est-ce que je peux AFFICHER message2 dans Code Fonction A ?
  • Est-ce que je peux AFFICHER message2 dans Code BOUCLEPOUR ?
  • Est-ce que je peux AFFICHER message2 dans Code Global ?
  • Est-ce que je peux AFFICHER message3 dans Code SINON ?
  • Est-ce que je peux AFFICHER message3 dans Code FonctionB ?
  • Est-ce que je peux AFFICHER message4 dans Code SI ?
  • Est-ce que je peux AFFICHER message5 dans Code Global ?
  • Est-ce que je peux AFFICHER message5 dans Code Sinon ?
  • Est-ce que je peux AFFICHER message5 dans Code BOUCLEPOUR ?
  • Est-ce que je peux AFFICHER message6 dans Code BOUCLEPOUR ?
  • Est-ce que je peux AFFICHER message6 dans Code Global ?