Les variables

(Version projecteur)


La notion de variable

La notion de variable existe dans tous les langages de programmation.

Les variables servent à conserver temporairement des données en mémoire.

Une variable peut être vu comme une zone de la mémoire vive (ou RAM), ou plus précisément une partie d'une zone de données d'un programme, qui porte un nom et possède à un instant donné une valeur.

On peut donc parler de l'adresse d'une variable: c'est l'adresse de la zone mémoire qui lui est réservée.

Voici par exemple quatre variables nommées Age, Nom, NombreEnfant et Prenom.

DefVariable.jpg, 41kB

La valeur d'une variable varie lors de l'exécution d'un programme (d'où le nom de variable justement !). La variable NombreEnfant pourra par exemple valoir successivement 2, 0, 3, 1, 0, 4,...

Par contre le nom d'une variable ne change pas : il est le même du début à la fin de l'exécution d'un programme.

Les noms de variables en Visual Basic

En Visual Basic, les noms de variables doivent respecter les règles suivantes:

Règle1: Le premier caractère est obligatoirement une lettre.

Règle2: Les seuls caractères autorisé sont les lettres (avec ou sans accents), les chiffres et "_".

Règle3: les mots réservés ne peuvent pas être utilisés.

Voici quelques exemples et contre-exemples de nom de variables:

Nom Validité Règles non respectées
Prenom Oui
Nom101 Oui
Nom_Elève Oui
_Age Non 1
Age-Elève Non 2
Dim Non 3


Attention: la casse n'a pas d'importance, c'est à dire que Visual Basic ne distingue pas les minuscules des majuscules. Age-Elève, age-Elève, age-elève désignent donc la même variable.

La notion de type

Il existe différents types de variables.

Le type d'une variable définit la manière dont elle est représentée en mémoire et les opérations que l'on peut faire dessus.

Il existe par exemple des variables de type chaine de caractères qui vont servir à stocker du texte en mémoire. La variable Prenom pourrait par exemple être de ce type. A un instant donné, sa valeur pourrait être "Astérix", à un autre moment "Obélix" ou encore à un autre moment "Abraracourcix".

Il existe aussi des variables de type entier. Ce pourrait par exemple être les variable Age, ou NombreEnfant.

La représentation en mémoire de deux variables de types différents n'est pas la même. En particulier, deux variables de types distincts n'occupent pas en général la même place mémoire (schéma).

D'autre part, les opérations que l'on peut faire sur deux variables de types différents ne sont pas les mêmes. Par exemple on ne pourra pas multiplier deux chaines de caractères, alors que l'on peut très bien multiplier deux entiers.

Déclaration d'une variable

Toute variable doit (en principe) être déclarée, avant de pouvoir être utilisée.

La déclaration d'une variable sert à définir son type et par conséquent la manière dont elle sera représentée en mémoire. Elle a pour effet de réserver une zone de la mémoire pour stocker la valeur de cette variable. Le type de la variable définit la taille de cette zone et la manière de coder ses valeurs.

La manière de déclarer une variable dépend évidemment du langage de programmation, mais on y trouve toujours les mêmes ingrédients : le nom de la variable et son type.

Déclaration d'une variable en Visual Basic

Syntaxe générale

Une déclaration de variable en Visual Basic utilise le mot clé Dim suivi du nom de la variable, du mot clé As, puis du nom du type.

Dim Nom de la variable As nom du type
Déclaration d'un entier

Prenons par exemple la variable Age.

En Visual Basic, le type entier s'appelle Integer. La déclaration de la variable Age se ferait donc comme ceci:

Dim Age As Integer
Autres types numériques

Les nombres entiers ne sont pas les seuls nombres avec lesquels un ordinateur peut calculer. Il y a également les nombres décimaux (comme 0.5 ou 3.14 par exemple). Ces nombres sont représentés par les types Single et Double en Visual Basic. Les variables de type Double sont codées sur 8 octets au lieu de 4 pour le type Single. Le type Double permet donc de calculer avec une plus grande précision et d'atteindre des nombres plus grands.

D'autre part pour pouvoir calculer avec des entiers plus grand que 32000, on peut utiliser le type Long. En effet, les entiers de type Long sont codé sur 4 octets et peuvent donc avoir des valeurs entre -2 milliards et +2 milliards.

Déclaration d'une chaine de caractères

Prenons par exemple la variable Prenom de type chaine de caractères.

En Visual Basic, le type chaine de caractères s'appelle String. La déclaration de la variable Prenom s'écrira donc :

Dim Prenom As String
Ou faut-il déclarer les variables ?

A quel endroit du programme faut-il déclarer les variables ?

Il y a deux possibilités:

En un premier temps nous n'utiliserons que la déclaration en début de fichier. Les variables déclarées de cette manière sont appelée variables globales. Cela signifie qu'elles peuvent être utilisées dans tout le code du fichier.

Nous ne feront pas pour l'instant de déclarations de variables à l'intérieur des procédures. Retenez simplement, que des variables déclarées de cette manière sont appelé variable locales.

Voici, par exemple la déclaration des variables dans le programme d'addition:

'Declaration des variables

Dim x As Integer
Dim y As Integer
Dim somme As Integer

Private Sub BoutonAdditionner_Click()
'Lecture des données
Lire x, ZoneTexteX
Lire y, ZoneTexteY
'Traitement
somme = x + y
'Affichage du résultat
Afficher somme, ZoneTexteSomme
End Sub

Nous avons déclaré ici trois variables de type entier: x, y et somme. Comme ces déclarations sont placées au début du fichier Addition.frm, les trois variables x, y et somme sont globales.

Valeur initiale par défaut

La déclaration d'une variable a également pour effet de lui donner une valeur initiale. Les variables de type entier par exemple, auront toujours la valeur 0 au départ.

Déclaration implicite

Les variables peuvent ne pas être déclarées et prennent dans ce cas un type par défaut (le type Variant). Cette manière de programmer n'est pas recommandée pour les débutants, car elle augmente les risques d'erreurs de programmation. Heureusement, on peut forcer le programmeur à déclarer ses variables avec l'instruction Option Explicit. Cette instruction figurera donc toujours dans nos programmes.

Variables générées par Visual Basic

Lors de la conception d'une interface graphique avec Visual Basic, chaque contrôle est automatiquement associé à une variable dont le nom est généré de manière automatique.

Voici par exemple les noms des variables associés aux contrôles du programme Addition:

NomsGenerees.jpg, 48kB

Certains de ces noms peuvent ensuite être modifiés par le programmeur pour les rendre plus évocateurs:

NomGenereeModifie.jpg, 60kB

Chacune de ces variable est en fait un objet, notion qui ne sera abordé que beaucoup tard. Pour l'instant, nous ne verrons pas comment manipuler ces variables par programmation car il faudrait pour cela avoir des notions de programmation objet.

Retenez simplement qu'un objet peut contenir simultanément plusieurs informations, que l'on appelle propriétés. Leurs valeurs peuvent être visualisées dans la fenêtre de propriété de Visual Basic.

Voilà par exemple un extrait des propriétés de l'objet ZoneTexteX:

ZoneTexteX.jpg, 66kB

La propriété Font contient le nom de la police de caractère de la zone de texte. Les propriétés Height et Width donnent respectivement sa hauteur et sa largeur (en pixels) ... etc

La propriété Text est particulièrement importante, car contient à tout moment les caractères saisi par l'utilisateur dans la zone de texte. Nous en reparlerons dans la suite de ce cours (partie Lecture et Affichage).