q Elle n’est déclarée qu’une seule fois pour l’intégralité du programme. Elle ne doit donc jamais être redéclarée
tant dans le programme principal que dans un sousprogramme.
q Elle permet indirectement de "passer" des valeurs aux sousprogrammes qui l’utilisent. C’est un "dommage
collatéral", et les variables globales ne devraient être réservées que lorsque cellesci sont vraiment
communes à la plus grande partie du code.
q Il serait ridicule de déclarer toutes les variables en globales. La plupart des programmes et sousprogrammes
ne les utiliseraient pas toutes, et en plus vous risqueriez par accident, pensant à une variable locale, d’en
modifier certaines sans y prendre garde, et ainsi de mettre en péril l’exécution du programme.
q Comme corollaire, ne donnez jamais le même nom à une variable locale et globale. C’est interdit en
algorithmique et dans la plupart des langages qui ne manqueront pas de vous le faire remarquer à la
compilation ou à l’exécution.
c. Variables globales et Java
En Java les variables globales se déclarent hors des blocs de programmes comme la méthode main() (programme
principal) et les méthodes. Elles sont déclarées tout en haut, en dessous du motclé class. Toutes ces variables
seront visibles depuis n’importe quelle méthode ou programme principale au sein de cette "classe", voire même audelà car il est possible de préciser des niveaux de visibilité des variables. Tout ceci vous sera brièvement expliqué
dans le dernier chapitre. En attendant ce chapitre et un surcroît d’explications, outre le type de la variable vous
rajouterez le motclé "static » devant les variables.
class chap6_globale {
static char c;
static int nbcar;
static void RepeteCar() {
int i ;
for(i=1 ;i<=nbcar ;i++) System.out.print(c);
System.out.println();
}
public static void main(String[] args) {
c=’*’;
for(nbcar=1;nbcar<=10;nbcar++) RepeteCar();
}
}
6. Les paramètres
Maintenant que vous réservez les variables globales à des cas bien précis, il vous faut trouver un autre moyen de
passer des valeurs aux procédures et aux fonctions. Quand en mathématiques vous calculez la valeur d’une fonction f
(x), vous lui demandez en fait de calculer la valeur de la fonction selon la valeur de x. Vous passez donc la valeur de x à
la fonction.
Le principe est le même avec vos algorithmes : vous pouvez transmettre des valeurs à vos procédures et fonctions,
tout comme vous pouvez en recevoir. La syntaxe diffère légèrement entre les fonctions et les procédures pour cette
raison. Dans les deux cas cependant, les paramètres se placent entre les parenthèses situées après leur nom.
Les paramètres passés à un sousprogramme sont généralement des variables locales au programme ou sousprogramme l’appelant, mais ils ne portent pas forcément le même nom. Ils sont "récupérés" au sein du sousprogramme comme des variables locales au sousprogramme. Il est cependant possible de passer comme paramètre
toute expression retournant une valeur, que ce soit un scalaire, une variable, un tableau, un enregistrement, une
table, ou encore une fonction (qui sera substituée par son résultat).
a. Procédures
La syntaxe de passage des paramètres est la suivante :
- 7 -
© ENI Editions - All rigths reserved - Jonifar lina
130
tant dans le programme principal que dans un sousprogramme.
q Elle permet indirectement de "passer" des valeurs aux sousprogrammes qui l’utilisent. C’est un "dommage
collatéral", et les variables globales ne devraient être réservées que lorsque cellesci sont vraiment
communes à la plus grande partie du code.
q Il serait ridicule de déclarer toutes les variables en globales. La plupart des programmes et sousprogrammes
ne les utiliseraient pas toutes, et en plus vous risqueriez par accident, pensant à une variable locale, d’en
modifier certaines sans y prendre garde, et ainsi de mettre en péril l’exécution du programme.
q Comme corollaire, ne donnez jamais le même nom à une variable locale et globale. C’est interdit en
algorithmique et dans la plupart des langages qui ne manqueront pas de vous le faire remarquer à la
compilation ou à l’exécution.
c. Variables globales et Java
En Java les variables globales se déclarent hors des blocs de programmes comme la méthode main() (programme
principal) et les méthodes. Elles sont déclarées tout en haut, en dessous du motclé class. Toutes ces variables
seront visibles depuis n’importe quelle méthode ou programme principale au sein de cette "classe", voire même audelà car il est possible de préciser des niveaux de visibilité des variables. Tout ceci vous sera brièvement expliqué
dans le dernier chapitre. En attendant ce chapitre et un surcroît d’explications, outre le type de la variable vous
rajouterez le motclé "static » devant les variables.
class chap6_globale {
static char c;
static int nbcar;
static void RepeteCar() {
int i ;
for(i=1 ;i<=nbcar ;i++) System.out.print(c);
System.out.println();
}
public static void main(String[] args) {
c=’*’;
for(nbcar=1;nbcar<=10;nbcar++) RepeteCar();
}
}
6. Les paramètres
Maintenant que vous réservez les variables globales à des cas bien précis, il vous faut trouver un autre moyen de
passer des valeurs aux procédures et aux fonctions. Quand en mathématiques vous calculez la valeur d’une fonction f
(x), vous lui demandez en fait de calculer la valeur de la fonction selon la valeur de x. Vous passez donc la valeur de x à
la fonction.
Le principe est le même avec vos algorithmes : vous pouvez transmettre des valeurs à vos procédures et fonctions,
tout comme vous pouvez en recevoir. La syntaxe diffère légèrement entre les fonctions et les procédures pour cette
raison. Dans les deux cas cependant, les paramètres se placent entre les parenthèses situées après leur nom.
Les paramètres passés à un sousprogramme sont généralement des variables locales au programme ou sousprogramme l’appelant, mais ils ne portent pas forcément le même nom. Ils sont "récupérés" au sein du sousprogramme comme des variables locales au sousprogramme. Il est cependant possible de passer comme paramètre
toute expression retournant une valeur, que ce soit un scalaire, une variable, un tableau, un enregistrement, une
table, ou encore une fonction (qui sera substituée par son résultat).
a. Procédures
La syntaxe de passage des paramètres est la suivante :
- 7 -
© ENI Editions - All rigths reserved - Jonifar lina
130
