Aller au menu - Aller au contenu

Icône Les variables

Avatar
Mise à jour : 13/12/2010
Difficulté : Facile Facile Creative Commons BY-NC-SA
23 410 visites depuis 7 jours, dont 914 sur ce chapitre classé 14/786
Ce mot vous donne des boutons ? Il vous rappelle votre prof de maths du collège ? :pirate:

N'ayez crainte ! Il s'agit d'un concept assez simple, qui ne requiert pas nécessairement des connaissances poussées en mathématiques (encore heureux !). Sur ce, je vais vous expliquer le concept de variable.
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Qu'est-ce qu'une variable

Eh bien, comme son nom l'indique, c'est quelque chose qui varie. On peut y stocker pratiquement tout ce qu'on veut, comme par exemple des nombres, des phrases, des tableaux, etc.

Image utilisateur
Mais c'est géant, ce truc ! :waw:

N'est-ce pas ? Et c'est pour cette raison que les variables sont omniprésentes dans les programmes. Prenons comme exemple votre navigateur web favori : il stocke plein d'informations dans des variables, telles que l'adresse de la page, le mot de passe qu'il vous affiche automatiquement lorsque vous surfez sur votre site favori, etc.

Vous devez donc bien comprendre que ces variables vous serviront partout et dans tous vos programmes : pour garder en mémoire le choix que l'utilisateur a fait dans un menu, le texte qu'il a tapé il y a trente secondes... Les possibilités sont infinies.

Les types

Bien entendu, il y a tout de même des contraintes !
Les variables se déclinent sous différents types : il y a par exemple un type spécifique pour stocker des nombres, un autre pour stocker du texte, etc.
D'ailleurs, si vous tentez d'enregistrer du texte dans une variable créée pour contenir un nombre, l'ordinateur va vous afficher une petite erreur. ;)

Image utilisateur


Tableau récapitulatif des types que nous allons utiliser


NomExplication
Boolean Ce type n'accepte que deux valeurs : vrai ou faux. Il ne sert à rien, me direz-vous ; détrompez-vous. :)
Integer Type de variable spécifique au stockage de nombres (existe sous trois déclinaisons ayant chacune une quantité de « place » différente des autres).
Double Stocke des nombres à virgule.
String Conçu pour stocker des textes ou des mots. Peut aussi contenir des nombres.
Date Stocke une date et son heure sous la forme « 12/06/2009 11:10:20 ».


Il existe de nombreux autres types, mais ils ne vous seront pas utiles pour le moment.

J'ai précisé que le type integer (abrégé int) existait sous trois déclinaisons : int16, int32 et int64 (le nombre après le mot int désigne la place qu'il prendra en mémoire). Plus le nombre est grand, plus votre variable prendra de la place, mais plus le nombre que vous pourrez y stocker sera grand. Pour ne pas nous compliquer la vie, nous utiliserons le integer (int) tout simple.
Si vous voulez en savoir plus sur l'espace mémoire utilisé par les variables, vous pouvez vous renseigner sur les « bits ». ;)

Pour ce qui est du texte, on a de la place : il n'y a pas de limite apparente. Vous pouvez donc y stocker sans souci un discours entier. Si le booléen, ce petit dernier, ne vous inspire pas et ne vous semble pas utile, vous allez apprendre à le découvrir. :p

Les utiliser - la théorie

Comment allons-nous utiliser des variables ?

Telle est la question que nous allons éclaircir.

Que vous reste-t-il de vos cours de maths de 3e (sujet sensible :-° ) ?

Bon... si j'écris ceci : x^3 + 5x^2 - 3x + 1 = 0, qu'est-ce qu'il se produit ? :pirate:

  1. Mon doigt se précipite pour éteindre l'écran.
  2. Je ferme immédiatement le navigateur web.
  3. Je prends une feuille de papier et résous cette équation. :waw:

Excusez-moi de vous avoir attaqués par derrière comme je l'ai fait, mais c'était dans le but de vous faire observer que l'attribution des variables est en de nombreux points similaire à notre vieil ami x en maths. :zorro:
Comme le fait que pour attribuer une valeur à une variable, on place un « = » entre ces deux éléments.

Le sens


Image utilisateur
Ce n'est pas difficile : en VB, et même dans tous les langages de programmation, ce qui se situe à droite du « = » correspond à ce qui se trouve à gauche. C'est ainsi, cela ne changera pas ! :p

Et donc, si vous regardez mes petits schémas :
  • on entre le chiffre 3 dans la variable appelée X, pas de problème ;
  • ensuite, on souhaite mettre X dans 3 ! Aïe, cela ne va pas fonctionner ! Si vous écrivez quelque chose du genre, une erreur va se produire : comme si vous disiez « 3 = 2 », le compilateur va vous regarder avec des yeux grands comme ça et se demandera ce qu'il doit faire ; :colere:
  • ensuite, on met la variable Y dans la variable X ;
  • et enfin, X dans Y.

Pas de problème pour le reste.
Je ne sais pas si vous l'avez remarqué, mais j'ai mis une variable dans une autre : c'est tout à fait possible, aucun problème à ce niveau-là. Par contre, l'affectation d'une valeur à une variable écrase l'ancienne valeur.

Image utilisateur


Revoilà donc mes boîtes. J'explique le schéma : vous ordonnez à votre programme « mets 3 dans X », ce qu'il va faire. Ensuite, vous lui dites « mets 5 dans X », mais il va oublier le 3 et écrire 5. :honte:

Attention, donc !

Mais en contrepartie, les variables offrent un stockage « nettoyable » à volonté. :p Je m'explique : vous pouvez les lire et y écrire autant de fois que vous le souhaitez. Lorsque vous lisez la valeur d'une variable, son contenu reste à l'intérieur (évident, me diront certains, mais sachez qu'il y a quelques dizaines d'années, les valeurs stockées dans la mémoire RAM s'effaçaient lors de leur lecture ; à l'époque, c'était des « tores » qui stockaient les bits et, lors de leur lecture, l'énergie se dissipait et faisait disparaître l'information).

Si vous avez bien compris, je pourrais écrire ceci (j'en profite pour vous montrer comment on initialise une variable, mais j'y reviendrai juste après) :

Code : VB.NET
1
2
3
4
5
6
7
Dim MaVariable As Integer
MaVariable = 5
MaVariable = 8
MaVariable = 15
MaVariable = 2
MaVariable = 88
MaVariable = 23

Que vaudra MaVariable à la fin de ces instructions ?

Secret (cliquez pour afficher)
23 ! :magicien:

Les utiliser - la pratique

Cette petite partie de lecture vous a ennuyé ? On va remédier à ce malaise. :p

Nous allons mettre en œuvre tout ce que je vous ai expliqué.

Tout d'abord, en VB, il faut déclarer une variable avant de l'utiliser. Autrement, l'ordinateur ne saura pas de quel type est la variable et ne saura donc pas comment réagir.

Nouvelle variable


Voici l'instruction servant à déclarer une variable, par exemple de type integer :

Code : VB.NET
1
Dim MaVariable As Integer

Pourquoi y a-t-il un terme appelé « MaVariable » ? Je pensais que le Visual Basic était conçu en anglais.

Effectivement, les mots que vous allez utiliser et qui serviront d'instructions dans vos programmes, comme par exemple « Write », « If, Then », etc., sont en anglais ; mais si l'on décortique la ligne que je viens de vous montrer, on obtient ceci :

Code VB Dim MaVariable As Integer
Français Crée une variable de nom « MaVariable » en tant que entier


En somme, le mot « MaVariable » est le nom attribué à la variable. C'est vous qui le choisissez !

Le nom d'une variable ne peut contenir d'espaces ; privilégiez plutôt un « _ » (underscore) ou une majuscule à chaque « nouveau mot », mais en liant le tout (comme dans mon exemple).

Autre chose à propos des noms : il y a des exceptions. En effet, une variable ne peut pas avoir comme nom un type ou le nom d'une boucle. Par exemple, si vous appelez votre variable « date », une erreur se produira car le type date existe déjà.

Bon, excusez-moi... j'avais dit qu'on allait pratiquer. Eh bien, on y va ! :pirate:
Retournez sur votre projet, qui doit encore être ouvert (du moins, je l'espère...). Si vous ne l'avez pas conservé, recréez-le (désolé :-° ).

Nous revoici donc avec nos lignes :

Code : VB.NET
1
2
3
4
5
6
Module Module1
    Sub Main()
        Console.Write("Salut")
        Console.Read()
    End Sub
End Module

J'ai retiré notre essai sur la fonction BEEP, car je pense que vous ne souhaitez pas entendre votre ordinateur bipper à chaque test. :)

MaVariable doit être égale à 5 !


Nous allons donc déclarer une variable et lui assigner une valeur. Je vous ai expliqué comment déclarer une variable.
Je vous ai aussi rapidement expliqué comment attribuer une valeur à une variable. Essayez donc de créer une variable de type integer appelée « MaVariable » et d'y entrer la valeur « 5 ».

Secret (cliquez pour afficher)
Code : VB.NET
1
2
Dim MaVariable As Integer
MaVariable = 5

Maintenant, où placer ces instructions ?

C'est la question fatidique ! Si vous vous rappelez le schéma sur l'ordre d'exécution des lignes dans un programme, vous devriez vous rappeler qu'une fois entrés dans un sub ou une fonction, sauf indications contraires (que nous étudierons dans un prochain chapitre), nous allons de haut en bas.

De ce fait, si vous avez besoin de votre variable à la ligne 4 de votre programme, il vous faut l'initialiser avant.
Même chose pour lui assigner une valeur : si vous l'affectez seulement à la ligne 6, la ligne 4 ne pourra pas lire ce résultat.

Dernière chose : je parie que vous souhaitez faire quelque chose de cette variable, ne serait-ce que l'afficher ?
J'ai expliqué comment afficher un texte avec le Console.Write. Pensez-vous être capables de faire en sorte d'afficher la valeur de la variable dans la console ?

Secret (cliquez pour afficher)
Code : VB.NET
1
2
3
4
5
6
7
8
Module Module1
    Sub Main()
        Dim MaVariable As Integer
        MaVariable = 5
        Console.Write(MaVariable)
        Console.Read()
    End Sub
End Module

Voici le résultat :

Code : Console
5

Voilà, vous pouvez tester : ce code affiche « 5 » dans la console.

Hop, hop, hop ! Pourquoi as-tu enlevé les doubles quotes" ») qui se trouvaient dans le Write ?

C'était le piège (sauf si vous avez bien lu précédemment) ! ^^

Si vous conservez les doubles quotes, la fonction Write affichera en dur le mot « MaVariable », et non sa valeur. Il faut donc enlever les doubles quotes pour que la fonction utilise le contenu de la variable MaVariable.

Si vous avez fait l'erreur, c'est normal : on va dire que je suis passé dessus trop rapidement. Mais après tout, c'est ainsi que vous apprendrez !

Vous êtes désormais capables de déclarer des variables et de leur affecter des valeurs. Vous en apprendrez plus durant l'exploration d'autres sujets. Rien de tel que de pratiquer pour s'améliorer. ^^

Dernière chose : il faut toujours essayer d'assigner une valeur à une variable dès le début ! Sinon, la variable n'est égale à rien, et des erreurs peuvent survenir dans certains cas. Donc, systématiquement : une déclaration, une assignation. :magicien:

Q.C.M.

Si je place ce code dans le main : que se passera-t-il ?
Code : VB.NET
1
2
3
Dim MaVariable As Integer
MaVariable = 10
Console.Write(MaVariable)
Quel est le type pour stocker un nombre à virgules ?

Statistiques de réponses au QCM

Eh bien, je pense que vous savez désormais dans les grandes lignes à quoi servent les variables et comment les utiliser. Cela tombe bien car à partir de maintenant, elles seront partout !
Chapitre précédent Sommaire Chapitre suivant

Partager

8 commentaires pour "Les variables"
Note moyenne : 3.60 / 4 (543 votes)
Pseudo Commentaire
Hors ligne Sehnsucht # Posté le 17/08/2010 à 17:23:48
Ainsi parlait Zarathoustra !
Avatar

Avis : Décevant

Arf bon je vais pas réécrire le commentaire de la partie précédente, pour dire que selon comment est lancée l'application on peut très bien voir s'afficher le résultat (ce qui m'a valu une erreur au Q.C.M. :( )
Sinon comme l'a dit himynameismatt tu passes une peut vite sur le concept de variable, et l'aspect mémoire qui y est lié (surtout quand on sait que l'instruction Dim a été choisie pour signifier "dimension" et qu'à l'origine n'était utilisé que pour savoir quel espace mémoire réserver(dimensionner) pour les tableaux).

Nous sommes tous plus ou moins geek : ce qui est inutile nous est parfaitement indispensable ;)
 
Hors ligne allyssea # Posté le 25/10/2010 à 21:03:50
Avatar

Un petit commentaire par rapport au langage :
Je trouve l'utilisation des variables (à première vue) bien compliquée par rapport au autres langages que j'ai ""étudier"" (C et php)
Dim maVariable as integer --> int maVariable;

En fait je vois vraiment pas à quoi servent "dim" et "as"
Hors ligne sirwael # Posté le 31/07/2011 à 00:22:52

Ton tuto est plutôt mal expliqué tu dis des trucs sans en donner sa définition par exemple si j'était un débutant et c'est la première fois que je lis un cours sur la programmation je serais entièrement perdu car t'utilise plusieurs mots pour les mêmes termes et tu dis des trucs trop compliqué pour eux essayé d'utiliser des schémas plus pour des débutants et par exemple dans le chapitre des variables tu dis des trucs de maths pour 3eme année et plus et nous ici on est supposés mettre des cours pour tout le monde tu sais il y a ici des enfants de 10 passionnés pour l'informatique et serais perdus dans tes propos.
Hors ligne Haled-Do # Posté le 03/11/2011 à 23:57:47
Avatar

Avis : Bon

Français Crée une variable de nom « MaVariable » en tant que integer

Serais plus juste comme ça :
Français Crée une variable de nom « MaVariable » en tant qu' entier

Dans le monde il y a 10 types de personnes,
ceux qui comprennent le binaire, et les autres.
:lol:
 
Hors ligne plasmachauvire # Posté le 23/11/2011 à 12:21:15
Image perso, by me XD
Avatar

Bien que quelques mots soit compliqués et que, si je n'avais pas suivis des cours de c et de c++ je n'aurais su les comprendre, se cours est très bien fait et expliqué ! Continue comme sa et bon courage !

PS : En effet sirwael, je n'ai pas dix ans, j'en ai treize, je ne suis par en 3e mais en 4e. J'ai parfois un peu de mal avec ce qui est dit mais je comprend quand même, c'est le plus important.

Mon blog

Sujets / Articles présents sur mon blog. Amusez-vous bien !

Divers trucs drôles
Le blog
Liens One Piece
Statistiques Grépolis
Quelques musiques
BD "Trolls de Troy"
Quelques citations humouristiques
Vidéos de gags
[PSP] Jeux gratuits sans cracker sa PSP !
 

Voir tous les commentaires