La notion de variable existe dans tous les langages de programmation.
Les variables servent à conserver temporairement des données en mémoire.
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.
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.
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.
Il existe différents types de variables.
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.
Toute variable doit (en principe) être déclarée, avant de pouvoir être utilisée.
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.
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
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
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.
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
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.
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.
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.
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:
Certains de ces noms peuvent ensuite être modifiés par le programmeur pour les rendre plus évocateurs:
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:
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).