Formation JAVA exécution des programmes, tutoriel & guide de travaux pratiques en pdf.
Consulter la valeur d’une variable
Quel est le sens a donner a une variable si elle apparaıt da ns une action ou sa valeur est nécessaire ? Par exemple, quel est le sens de x dans x+2 ? La valeur d’une variable depend de l´etat courant de la memoire.
– System.out.println(x) affiche non pas la lettre x, mais le contenu de la variable
x en memoire, au moment ou` cet instruction est executee.
– L’expression x + 2 s’evalue dans la valeur courante de x augmentee de 2.
Exercices : Considerez le code suivant :
y = x + 3;
Terminal.ecrireInt(z);
Terminal.lireDouble(w);
m = 5;
n = n + 2;
1. Dans ces actions, quelles sont les variables ayant besoin d’intitialisation pr´ealable, et quelles sont celles qu’on peut ne pas initialiser ?
2. Donnez les d´eclarations et initialisations n´ecessair es a` la compilation de ces actions.
Comportement des declarations de variables
Le sens d’une declaration de variable est de changer l’etat de la memoire par :
– Creation´ de l’Environnement du programme (voir notion introduite plus haut).
– Allocation d’un emplacement libre en memoire, de taille suffisante pou r stocker une valeur du type d´eclar´. Les valeurs successivement acquises par la variable seront stockées dans cet emplacement. Attention : Un mot de la m´emoire est une suite de bits, chacun est n´nécessairement 0 ou 1. Il est donc impossible qu’un emplacement, et a fortiori une variable, ne contienne “rien”. Par exemple, une fois la place pour une variable entière réservée, il y a dans cet emplacement un entier (qu’on ne connaˆıt pas forc´ement). Par ailleurs, chaque emplacement ne permet de stocker qu’une valeur a` la fois. Ainsi, une nouvelle valeur sera r´e´ecrite sur la valeur pr´ec´edente, a` la place de celle- ci.
– Liaison (ou association) de la valeur initiale lorsqu’elle est donn´ee. L’association entre une variable et sa valeur est app´el´ liaison. Ainsi, si un moment donn´e, la valeur 5 est stock´ee dans la variable x, on dira que x est liee´ a` la valeur 5. Si une variable est d´eclar´ee sans valeur initiale, on dira que sa valeur est inconnue au moment de la d´eclaration (mais ce n’est pas rien !). La valeur inconnue est not´ee ?
Exemple : Consid´erons les d´eclarations :
int x,y;
int a = 0;
int b = 0;
int z = 0;
L’´etat de la m´emoire ou environnement du programme, apr`e s d´eclarations, est donn´e par :
x ?
y ?
a 0
b 0
z 0
roleˆ du type de la variable : Le fait de donner un type a` une variable lors de sa d´eclarat ion permet de pr´evoir combien d’espace m´emoire il faut r´eserver pou r la variable. Par exemple, un double est plus gros a stocker qu’un int.
Exercices : Quel est l’environnement cr´e´ (m´emoire) apr`es les d´e clarations suivantes ?
char b = ‘c’;
char c = b;
boolean d;
int x,y = 3;
double m = 3.5;
Comportement d’une affectation
C’est une instruction qui modifie la valeur d’une variable en memoire 1.
La syntaxe d’une affectation a la forme :
nom variable = expression ;
– Comportement : Modifie en memoire le contenu de la variable a` gauche, avec la valeu r qui resulte du calcul de l’expression a` droite du symbole =
– Execution : suit les pas suivants. Prenons l’exemple de l’execution de x = x+2 dans un etat memoire ou x vaut 5 .
1. evaluation de l’expression a` droite dans l’environnement courant evaluons x+2 avec x vaut 5 ⇒ 5+2 ⇒ 7,
2. Modification de la variable en memoire : x vaut 7,
Trace d’une execution
Nous allons maintenant suivre pas a` pas l’execution d’un programme comportant des declarations et des affectations. Pour y parvenir, nous allons faire la trace de l’execution de ce programme. Nous donnons l’´etat de la machine apr`es execution de chacune des instructions du programme, autrement dit, l’´etat des entr´ees, l’´etat de s sorties, et de la memoire (les valeurs des variables du programme). Comme notre programme ne fait pas de sd’entr´ees ni de sorties, la derni`ere case sera vide.