Variables, constantes et autres joyeusetés.


Superman

Ancien staff
2 Déc. 2009
2,493
0
596
Déclarer une variable

Alors une variable, c'est quoi ?


Eh bien c'est une petite information temporaire qu'on stocke dans la mémoire de l'ordinateur. Tout simplement.
On dit qu'elle est "variable", car c'est une valeur qui peut changer pendant le déroulement du programme.

Nos programmes, vous allez le voir, sont remplis de variables. Vous allez en voir partout, à toutes les sauces
.

Et une constante, alors ? C'est quoi ?


Eh bien, c'est une variable qui ne varie pas.
En fait, on déclare une constante en début de programme, on lui attribue une valeur, qu'elle gardera tout au long du programme. Si maintenant vous voulez qu'elle change, il va falloir utiliser des variables.

A quoi sa sert, des variables qui ne varient pas ?


Il faut vous rappeler que les informaticiens sont fainéants, ils ne veulent pas écrire plusieurs fois la même chose. C'est pour ça qu'ils ont créé les constantes, pour pouvoir dire plusieurs fois la même chose.

Types de variables



On sait ce que sont les variables, mais on ne sait pas encore ce qu'elles peuvent contenir...

Si, moi, je sais ! C'est des choses, non ?


Oui, mais il y a plusieurs sortes de choses.


Il y a les chaînes de caractères, les booléens et les nombres (entiers et réels).

C'est quoi ?


Les chaînes de caractères, c'est tout simplement ce que je suis en train d'écrire, un ensemble de lettres, de chiffres, de caractères spéciaux, de mots, de phrases, etc.

Les nombres entiers sont des nombres sans virgules, l'ensemble Z en gros.
..., -546, 0, 1, 2, 3, ..., 99, 100, 101, ..., 564, 565, ...

Les nombres réels décimaux (des nombres avec virgules - que Pascal écrit avec un point d'ailleurs).
..., -656, ..., -655, ..., -654, ..., -653.654895, ..., 0, ..., 356, ..., 356,021560024, ...

Les booléens, ce sont des variables qui sont justes (true) ou fausses (false).

Sachez qu'il y en a davantage, ceux-ci sont les principaux.


Et en plus, ça dépend du nombre jusqu'auquel vous désirez aller.

Déclarer une variable ou une constante



Avant de répondre à la question « Comment ? », je répondrai à la question « Où ? ».

On va déclarer variables et constantes au même endroit : après avoir donné le nom du programme, mais avant son commencement, c'est-à-dire avant le « begin ».

Code : Pascal1
2
3
4
5
6program nom_du_programme(output) ;
{ on déclare variables et constantes ici }
begin


end.




Maintenant qu'on sait « Où ? », on va savoir « Comment ? ».

On va d'abord dire si c'est une variable ou une constante.
Si c'est une variable, on devra marquer var, si c'est une constante, on marquera const.

Ensuite, on marque un espace, puis on marque le nom de la variable ou constante SANS ESPACES ; pour la suite, ça change en fonction de variables ou constantes.

Variables : on marque 2 points, puis on marque le type de variable en abrégé :
Chaîne de caractère : string
Nombre entier :

  • Entre -32768 et 32767 : integer (c'est le seul type d'entier qui existe sur tous les ordinateurs)
  • Entre -2147483648 et 2147483647 : longint
  • Entre -128 et 127 : shortint
  • Entre 0 et 65535 : word
  • Entre 0 et 255 : byte
  • Entre (-2)^31 et (2^31)-1 : long

Nombre réel :

  • Entre 2.9E-039 et 1.7E+038 : real
  • Entre 1.5E-045 et 3.4E+038 : single
  • Entre 5.0E-324 et 1.7E+308 : double
  • Entre 1.9E-4951 et 1.1E+4932 : Extended
  • Entre -2E+063 +1 et 2E+063 +1 : comp

Booléen : boolean

Constantes : on marque le signe égal, puis la valeur qu'on veut donner à cette constante entre apostrophes.

Et pour finir, dans les 2 cas, on doit mettre un point-virgule.

Pour les entiers, j'utiliserai le type « integer » et pour les réels, « real ».

Saviez-vous qu'on pouvait déclarer plusieurs variables / constantes ?


Eh oui ! Voici comment faire :

Pour une variable :
si elles sont de mêmes type, les séparer par une virgule AVANT de donner le type :
Code : Pascal1var variable1, variable2 : integer ;



Sinon, séparer les variables ET leur type par un point-virgule :
Code : Pascal1
2var variable1, variable2 : integer ;
variable3, variable4 : real ;




Pour une constante, il suffit de les séparer par un point-virgule :
Code : Pascal1const const1 = valeur1 ; const2 = valeur2,




Voici un exemple que vous testerez de suite :
Code : Pascal1
2
3
4
5
6
7program test(output)
var age : integer ; { on crée la variable « age » et on lui donne un type integer (un age est un nombre entier) }

begin

readln ;
end.




Pourquoi il ne se passe rien ?


En fait, il se passe des choses, mais vous ne les voyez pas. Lorsque le programme arrive à la ligne de la déclaration de variable, il demande bien gentiment à l'ordinateur s'il peut utiliser un peu d'espace dans la mémoire vive.
Si tout va bien, l'ordinateur répond "Oui, bien sûr, fais comme chez toi". Généralement, cela se passe sans problème.

Et maintenant ?
Maintenant qu'on a créé notre variable, on va pouvoir lui donner une valeur.

Affecter une valeur à une variable



Comme toujours, commençons à se poser la question « Où ? »
Et je vous répondrai :
Code : Pascal1
2
3
4
5
6
7program test(output) ;
var age : integer ;

begin
{ ICI }
readln ;
end.





Eh bien maintenant, je vais pouvoir vous expliquer comment.

C'est tout simple :
Code : Pascal1age := 86 ; { pas tout jeune, dis donc }




Rien de plus à faire. Vous indiquez le nom de la variable, 2 points, un signe égal, puis la valeur que vous voulez lui attribuer, sans oublier le point-virgule final.

On vient de donner la valeur 86 à la variable age.

Le code complet donne :

Code : Pascal1
2
3
4
5
6
7program test(output) ;
var age : integer ;

begin
age := 86 ;
readln ;
end.




On peut s'amuser à changer la valeur par la suite :
Code : Pascal1
2age := 1 ; { agarabeuuh }
age := 86 ; { il a pris un coup de vieux, le pauvre }




Dans cet exemple, la variable va prendre d'abord la valeur 1, puis 86. Comme votre ordinateur est très rapide, tout cela se passe extrêmement vite. Vous n'avez pas le temps de cligner des yeux que votre variable vient de prendre les valeurs 1 puis 86 ... et ça y est, votre programme est fini.


Afficher le contenu d'une variable ou d'une constante



On sait afficher du texte à l'écran avec la fonction write.
Maintenant, on va voir comment afficher la valeur d'une variable avec cette même fonction.

Pour ce faire, on va devoir séparer les variables du reste par une virgule.

Il ne faut pas mettre des guillemets autour d'une variable.


Exemple :
Code : Pascal1
2
3
4
5
6
7
8program age(output) ;
var age : integer ;

begin
age := 86 ;
writeln("Vous avez ', age, ' ans") ;
readln ;
end.



Récupérer une saisie

Les variables vont en fait commencer à devenir intéressantes maintenant. On va apprendre à demander à l'utilisateur de taper quelque chose dans la console : on va le récupérer et stocker dans une variable.
Une fois que ça sera fait, on pourra faire tout un tas de choses avec, vous verrez.


Pour demander à l'utilisateur de rentrer quelque chose dans la console, on va utiliser une autre fonction toute prête, qui ressemble beaucoup à write et writeln : ...read ou readln.

Euh, tu dois confondre, ça c'est pour faire une « pause » comme tu disais, non ?


Non, je ne confonds pas, c'est la même commande, mais il y a quand même quelque chose qui change.

Pour faire une pause, on ne marquait que readln;.
Alors que pour écrire, on doit rentrer un paramètre. Ce paramètre, c'est le nom de la variable où ira se stocker la saisie de l'utilisateur. Comme pour tout paramètre, il va falloir le mettre entre parenthèses après avoir marqué la fonction.

Notez que c'est un peu normal d'utiliser la même fonction pour les deux cas : pour le cas de readln, l'ordinateur attend que l'utilisateur rentre une saisie pour la stocker dans une variable, et ensuite qu'il appuie sur 'entrer' pour continuer, mais comme on ne lui donne pas de nom de variable, il stocke la saisie nulle part, mais attend quand même le 'entrer'.


Ce qui donne :

Code : Pascal1readln(nom_de_la_variable) ;




Voici un petit programme simple qui demande l'âge de l'utilisateur, et le lui affiche ensuite :

Code : Pascal1
2
3
4
5
6
7
8
9program age(output) ;
var age : integer; { on vient de créer une variable 'age' }

begin
write('Quel age avez-vous ? ') ;
readln(age) ;
writeln('Ah, vous avez donc ', age, ' ans !') ;
readln ;
end.




Code : Console
Quel age avez-vous ? 20

Ah, vous avez donc 20 ans !

_



Le programme se met donc en pause après avoir affiché la question "Quel age avez-vous ?". Le curseur apparaît à l'écran, vous devez taper un nombre entier (votre âge). Tapez ensuite sur "Entrée" pour valider, et le programme continuera à s'exécuter.
Ici, tout ce qu'il fait après, c'est afficher la valeur de la variable "age" à l'écran ("Ah, vous avez donc 20 ans !").

Voilà, vous avez compris le principe.
Grâce à la fonction read(ln), on peut donc commencer à interagir avec l'utilisateur, histoire de lui demander 2-3 informations privées, comme son prénom, son nom, ...
Je vous invite à le faire, ça fera un bon exercice !


Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!