Aller au menu - Aller au contenu

Icône Modifications et opérations sur les variables

Avatar
Mise à jour : 13/12/2010
Difficulté : Facile Facile Creative Commons BY-NC-SA
23 410 visites depuis 7 jours, dont 946 sur ce chapitre classé 14/786
Avant d'entamer ce nouveau chapitre, récapitulons et voyons où nous en sommes.

Nous avons installé Visual Basic 2010 Express et appris sommairement à l'utiliser ; nous avons vu comment créer un projet console, afficher du texte dans la console, mettre la console en « pause » et émettre un bip.

Ensuite, dans la partie « Les variables », nous avons appris à déclarer une variable, lui assigner une valeur et l'afficher.

Il est maintenant temps de s'amuser un peu avec nos nouvelles copines, les variables. Démarrons sans plus tarder !
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Opérations sur une variable

Nous allons à présent apprendre comment modifier et effectuer des opérations sur ces variables.

Voici un exemple : vous souhaitez créer un programme qui calcule la somme de deux nombres ; pour ce faire, il vous faudra utiliser des opérations. Je vais vous expliquer la marche à suivre.

Reprenons notre programme, déclarons-y une variable « MaVariable » en integer et assignons-lui la valeur 5 (ce qui, normalement, est déjà fait).
Déclarons maintenant une seconde variable intitulée « MaVariable2 », de nouveau en integer, et assignons-lui cette fois la valeur 0.

Le nom de votre variable est unique : si vous déclarez deux variables par le même nom, une erreur se produira.

Si vous avez correctement suivi la démarche, vous devriez obtenir le résultat suivant :

Code : VB.NET
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
Module Module1
    Sub Main()
        Dim MaVariable As Integer
        Dim MaVariable2 As Integer
        MaVariable = 5
        MaVariable2 = 0
        Console.Write(MaVariable)
        Console.Read()
    End Sub
End Module


Dans le cas où vous avez plusieurs variables du même type, vous pouvez rassembler leur déclaration comme suit :

Code : VB.NET
1
Dim MaVariable, MaVariable2 As Integer

Second point : vous pouvez également initialiser vos variables dès leur déclaration, comme ci-dessous, ce qui est pratique pour les déclarations rapides.

Code : VB.NET
1
Dim MaVariable As Integer = 5

Attention toutefois, vous ne pouvez pas utiliser ces deux techniques ensemble ; une instruction du type Dim MaVariable, MaVariable2 As Integer = 5 vous affichera une erreur ! C'est donc soit l'une, soit l'autre.


À l'attaque


Passons maintenant au concret !

On va additionner un nombre à notre variable « MaVariable ». Pour ce faire, rien de plus simple ! Démonstration.

Code : VB.NET
1
MaVariable + 5

Voilà ! Simple, n'est-ce pas ?
En résumé, vous avez additionné 5 à la variable « MaVariable ». Le programme a effectué cette opération. Seulement, le résultat n'est allé nulle part : nous n'avons pas mis le signe égal (« = ») !

Heu... tu me fais faire n'importe quoi ? :o

Mais non, c'est pour vous montrer ce qu'il faut faire et ce qu'il ne faut pas faire. :D Imaginez un parent mettre ses doigts dans la prise et montrer à bébé l'effet que cela produit ; il comprendra tout de suite mieux ! :-° (Mauvais exemple.)

Pour y remédier, il faut ajouter le signe égal, comme lorsque nous initialisons nos variables.

Code : VB.NET
1
MaVariable2 = MaVariable + 5

Nous allons donc nous retrouver avec... 10, dans la variable « MaVariable2 ».

À noter que nous avons initialisé « MaVariable2 » avec 0. Si nous l'avions fait, par exemple, avec 7, le résultat aurait été identique puisque, souvenez-vous, l'entrée d'une valeur dans une variable écrase l'ancienne.

Il faut savoir que nous n'avons pas forcément besoin de deux variables. En effet, l'instruction MaVariable = MaVariable + 5 aurait également affecté la valeur 10 à la variable « MaVariable ».

Plus en profondeur...

Vous savez à présent comment additionner un nombre à une variable.
Nous allons donc découvrir les autres opérations possibles.

Opération souhaitéeSymbole
Addition +
Soustraction -
Multiplication *
Division /
Division entière \
Puissance ^
Modulo Mod


J'explique ce petit tableau par un exemple : nous avons appris que, pour additionner 3 et 2, la syntaxe est 3+2 . C'est évident, me direz-vous... mais si je vous avais demandé de diviser 10 et 5, comment auriez-vous procédé ?

Eh bien, désormais, vous savez à quel « caractère » correspond chaque opération, la division de 10 et 5 aurait donc été : 10/5 .

Qu'est-ce que le modulo ?

Très bonne question. Le modulo est une opération spécifique en programmation, qui permet de récupérer le reste d'une division.

x = 14
y = 3
x mod y = 2
x \ y = 4
x / y = 4.666666
x ^ y = 2 744


Exemples :

  • 10 mod 5 correspond à 10/5 ; le résultat est 2, le reste est 0, donc 10 mod 5 = 0 .
  • 14 mod 3 correspond à 14/3 ; le résultat est 4, le reste 2, donc 14 mod 3 = 2 .

Nous allons immédiatement mettre en pratique ces informations.
Toutes les instructions que nous allons ajouter se feront dans le main.

Essayez d'attribuer des valeurs à vos variables et d'effectuer des opérations entre elles pour finalement stocker le résultat dans une troisième variable et afficher le tout.

Petite parenthèse : je vais en profiter pour vous expliquer comment écrire sur plusieurs lignes.
Si vous écrivez une fonction Write, puis une autre en dessous de façon à donner ceci :

Code : VB.NET
1
2
Console.Write("test")
Console.Write("test")

... vous allez vous retrouver avec le résultat suivant :

Code : Console
testtest

Afin d'écrire sur deux lignes, on va utiliser le procédé le plus simple pour le moment, qui est la fonction WriteLine(). Elle prend aussi comme argument la variable ou le texte à afficher mais insère un retour à la ligne au bout. Un code du genre...

Code : VB.NET
1
2
Console.WriteLine("test")
Console.WriteLine("test")

... produira le résultat suivant :

Code : Console
test
test

Avec ces nouvelles informations, essayez donc de multiplier 8 par 9 (chaque nombre mis au préalable dans une variable), le tout étant entré dans une troisième variable. En outre, un petit supplément serait d'afficher l'opération que vous faites.

Je vous laisse chercher ! :)

Secret (cliquez pour afficher)
Code : VB.NET
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
Module Module1
    Sub Main()
        Dim MaVariable As Integer
        Dim MaVariable2 As Integer
        Dim MaVariable3 As Integer

        MaVariable = 8
        MaVariable2 = 9
        MaVariable3 = MaVariable * MaVariable2

        Console.Write("9 x 8 = ")
        Console.Write(MaVariable3)

        Console.Read()
    End Sub
End Module

Ce code, que j'ai tenté d'écrire de la façon la plus claire possible, nous affiche donc ceci :

Code : Console
9 x 8 = 72

Essayez de modifier les valeurs des variables, l'opération, etc.

Notre ligne MaVariable3 = MaVariable * MaVariable2 aurait très bien pu être simplifiée sans passer par des variables intermédiaires : MaVariable3 = 9 * 8 est donc également une syntaxe correcte.
Dans cette même logique, un Console.Write(9 * 8) fonctionnera également, car je vous ai expliqué que les arguments d'une fonction étaient séparés par des virgules ; donc, s'il n'y a pas de virgules, c'est le même argument. Mais bon, n'allons pas trop vite.

Différentes syntaxes

Nous avons donc créé un code affichant 9 x 8 = 72.

Ce code, comme vous l'avez certainement constaté, est très long pour le peu qu'il puisse faire ; pourtant, je vous ai donné quelques astuces.

Mon code peut donc être simplifié de plusieurs manières.

  • Tout d'abord, l'initialisation lors de la déclaration :

    Code : VB.NET
    1
    2
    3
    Dim MaVariable As Integer = 8
    Dim MaVariable2 As Integer = 9
    Dim MaVariable3 As Integer = 0
    

  • Puis, un seul Write :

    Code : VB.NET
    1
    Console.Write("9 x 8 = " & MaVariable3)
    

    Wow, du calme ! À quoi sert le signe « & » ?

    Bonne question. C'est ce qu'on appelle la concaténation, elle permet de « rassembler » deux choses en une ; ici, par exemple, j'ai rassemblé la chaîne de caractères "9 x 8 = " et le contenu de la variable, ce qui aura pour effet de m'afficher directement 9 x 8 = 72 (je parle de rassembler deux choses en une car, en faisant cela, on rassemble le tout dans le même argument).

  • Dernière amélioration possible : la suppression d'une variable intermédiaire ; on se retrouve à faire l'opération directement dans le Write.

    Code : VB.NET
    1
    Console.Write("9 x 8 = " & MaVariable * MaVariable2)
    

    Ah, bah, autant effectuer directement le 9 * 8 en utilisant la concaténation !

    Oui, effectivement. Mais dans ce cas, vos variables ne servent plus à rien et cette instruction ne sera valable que pour faire 9 * 8 ...

Grâce à ces modifications, notre code devient plus clair :

Code : VB.NET
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
Module Module1
    Sub Main()
        Dim MaVariable As Integer = 8
        Dim MaVariable2 As Integer = 9

        Console.Write("9 x 8 = " & MaVariable * MaVariable2)

        Console.Read()
    End Sub
End Module

Attention toutefois en utilisant la concaténation : si vous en abusez, vous risquez de vous retrouver avec des lignes trop longues, et n'allez plus repérer ce qui se passe.

Pour cela, la parade arrive (eh oui, il y en a toujours une ; du moins, presque) ! :magicien:

Les commentaires

Les commentaires vont nous servir à éclaircir le code. Ce sont des phrases ou des indications que le programmeur laisse pour lui-même ou pour ceux qui travaillent avec lui sur le même code.

Une ligne est considérée comme commentée si le caractère « ' » (autrement dit, une simple quote) la précède ; une ligne peut aussi n'être commentée qu'à un certain niveau.

Exemples :

Code : VB.NET
1
2
'Commentaire
MaVariable = 9 * 6 ' Multiplie 9 et 6 et entre le résultat dans MaVariable

Par exemple, voici notre programme dûment commenté :

Code : VB.NET
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
Module Module1
    Sub Main()
        'Initialisation des variables
        Dim MaVariable As Integer = 8
        Dim MaVariable2 As Integer = 9

        'Affiche "9 x 8 = " puis le résultat (multiplication de MaVariable par MaVariable2)
        Console.Write("9 x 8 = " & MaVariable * MaVariable2)

        'Crée une pause factice de la console
        Console.Read()
    End Sub
End Module

Autre chose : si vous voulez commenter plusieurs lignes rapidement, ce qui est pratique lorsque vous testez le programme avec d'autres fonctions mais que vous souhaitez garder les anciennes si cela ne fonctionne pas, Visual Basic Express vous permet de le faire avec son interface. Sélectionnez pour cela les lignes souhaitées puis cliquez sur le bouton que j'ai décrit dans la barre d'outils, portant le nom « Commenter les lignes sélectionnées ».

Vous allez sûrement trouver cela long, fastidieux et inutile au début, mais plus tard, cela deviendra une habitude, et vous les insérerez sans que je vous le dise.

Il existe d'autres astuces pour expliquer et trier son code, que j'aborderai lorsque nous créerons nos propres fonctions.

Lire une valeur en console

Je vais immédiatement aborder ce passage, mais assez sommairement puisqu'il ne sera valable qu'en mode console.

Pour lire en mode console, par exemple si vous souhaitez que l'utilisateur saisisse deux nombres que vous additionnerez, il vous faut utiliser la fonction ReadLine(). Nous avions utilisé Read, mais cette fonction lit uniquement un caractère, elle est donc inutile pour les nombres supérieurs à 9.

Notre nouvelle fonction s'utilise de la manière suivante :

Code : VB.NET
1
MaVariable = Console.ReadLine()

Vous avez donc certainement déjà dû écrire ce code, qui multiplie les deux nombres entrés :

Secret (cliquez pour afficher)
Code : VB.NET
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
Module Module1
    Sub Main()
        'Initialisation des variables
        Dim MaVariable As Integer = 0
        Dim MaVariable2 As Integer = 0

        Console.WriteLine("- Multiplication de deux nombres -")

        'Demande du premier nombre stocké dans MaVariable
        Console.WriteLine("Veuillez entrer le premier nombre")
        MaVariable = Console.ReadLine()
        'Demande du second nombre stocké dans MaVariable2
        Console.WriteLine("Veuillez entrer le second nombre")
        MaVariable2 = Console.ReadLine()

        'Affiche "X x Y = " puis le résultat (multiplication de MaVariable par MaVariable2)
        Console.WriteLine(MaVariable & " x " & MaVariable2 & " = " & MaVariable * MaVariable2)

        'Crée une pause factice de la console
        Console.ReadLine()
    End Sub
End Module

Ce programme demande donc les deux nombres, l'un puis l'autre, et les multiplie.

Cette fonction ne formate et ne vérifie pas la réponse ; autrement dit, si votre utilisateur écrit « salut » et « coucou » au lieu d'un nombre, le programme plantera car il essaiera de saisir des caractères dans un type réservé aux nombres.

Ce qui nous amène à notre prochain chapitre : les boucles conditionnelles.

Q.C.M.

Que se passe-t-il si j'écris

Code : VB.NET
1
Dim MaVariable, MaVariable2 As Integer = 5, 5
A quoi correspond le Modulo ?
Quelles sont les erreurs ?

Code : VB.NET
1
Write("9 " & "x" & " 8 = "& MaVariable / MaVariable2)
Si j'écris :

Code : VB.NET
1
'Console.Writeline("salut")

Pourquoi rien ne se passe ?

Statistiques de réponses au QCM

Chapitre précédent Sommaire Chapitre suivant

Partager

20 commentaires pour "Modifications et opérations sur les variables"
Note moyenne : 3.60 / 4 (543 votes)
Pseudo Commentaire
Hors ligne convicts # Posté le 03/08/2011 à 16:15:21

j'ai vu une petite erreur sur ton qcm des variables elle affiche 10 et non je ne vois rien
Hors ligne donald54470 # Posté le 01/09/2011 à 15:16:17
Avatar

Avis : Très bon

Bonjour,
Je débute seulement et j'ai déjà un problème.

Code : VB.NET
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
Module Module1

    Sub Main()
        Console.Write("Bienvenue sur Virtual Basic 2010")
        Console.Beep()
        Console.Read()
        Console.Write("Passons aux variable.")
        Dim MaVariable As Integer = 5
        Dim MaVariable2 As Integer = 0
        MaVariable2 = MaVariable + 5
        Console.Write(MaVariable2)
        Console.Read()
        Console.Read()







    End Sub
End Module


Enfaîte plusieurs question;

1. Pourquoi a Console.Beep() c'est censé faire un bip mais aucun sons.

2. Et pourquoi a la fin de ce code, je doit mettre 2 fois Code : VB.NET
1
Console.Read()
pour que cela fonctionne ?

Merci d'avance de vos réponse.
Hors ligne Tyranostorm # Posté le 05/03/2012 à 19:21:49
Avatar

Avis : Très bon Groupe : Bannis

Salut,
Je vais expliquer ton problème :

Citation : donadl54470
1. Pourquoi a Console.Beep() c'est censé faire un bip mais aucun sons.


Si tu augmentes le son, ce serai peut-être mieux. ;)

Citation : donald54470
2. Et pourquoi a la fin de ce code, je doit mettre 2 fois Code :

Code : VB.NET
1
Console.Read()


pour que cela fonctionne ?


C'est simple : Le premier Console.Read() va servir à lire le Console.Write() au dessus. Le second Console.Read() va lire le programme en entier. Si tu en enlèves un des deux, la Console va se fermer aussitôt juste après l'affichage de la variable sans avoir le temps de pouvoir lire le résultat.
 
Hors ligne Tyranostorm # Posté le 05/03/2012 à 19:25:11
Avatar

Avis : Très bon Groupe : Bannis

Citation : convicts
j'ai vu une petite erreur sur ton qcm des variables elle affiche 10 et non je ne vois rien


C'est normal que tu ne vois rien si tu n'as pas placé de Console.Read() juste après.
 
Hors ligne Papy GéGé # Posté le 22/03/2012 à 09:29:36

Bonjour
tres bien le cours dans son ensemble
juste une petite remarque
dans l'affichage des variables tu ecris
Console.Write("9 x 8 = " & MaVariable * MaVariable2)
ensuite tu parles de la lecture des variables
MaVariable = Console.ReadLine()
avec le cumel des deux on pourrait avoir
une variable MaVariable = 12 et MaVariable2 = 14
et l'affichage 9 x 7 = 168

c'est un peu plus compliqué mais on peut concatener les valeurs de variables dans la chaine d'affichage
Console.Write( MaVariable & " x " & MaVariable2 & " = " & MaVariable * MaVariable2)
Bon courage

Voir tous les commentaires