Version en ligne

Tutoriel : Apprenez à programmer en VB .NET

Table des matières

Apprenez à programmer en VB .NET
Historique et Visual Basic Express 2010
Historique, naissance du Visual Basic
Le framework .NET
Notre outil : Visual Basic 2010 Express
Installation de Visual Basic 2010 Express
Découverte de l'interface
Premiers pas
Hello World !
Objets, fonctions…
Fonctions, arguments
Les variables
Les types
Les utiliser - la théorie
Les utiliser - la pratique
Modifications des variables et opérations sur les variables
Opérations sur une variable
Plus en profondeur…
Différentes syntaxes
Les commentaires
Lire une valeur en console
Conditions et boucles conditionnelles
Les boucles conditionnelles
Select
While
For
Mieux comprendre et utiliser les boucles
TP : La calculatrice
Addition
Minicalculatrice
Jouer avec les mots, les dates
Les chaînes de caractères
Les dates, le temps
TP sur les heures
Les tableaux
Les dimensions
Autres manipulations avec les tableaux
Mini-TP : comptage dans un tableau.
Exercice : tri
Les énumérations
Les fonctions
Créons notre première fonction !
Ajout d'arguments et de valeur de retour
Petits plus sur les fonctions
Petit exercice
Les inclassables
Les constantes
Les structures
Boucles supplémentaires
Les casts
Le type Object
Les MsgBox et InputBox
Découverte de l'interface graphique
Les nouveautés
Avantages par rapport à la console
Manipulation des premiers objets
Les paramètres de notre projet
Les propriétés
À quoi ça sert ?
Les utiliser
Les assigner et les récupérer côté VB
With
Les événements
Pourquoi ça encore !
Créer nos événements
Les mains dans le cambouis !
Mini-TP : calcul voyage
Les contrôles spécifiques
Checkbox, boutons radio
La pratique
Les combobox
MicroTP
Les timers
Créer son premier timer
TP : la banderole lumineuse
Les menus
Présentation des menus
La barre de menus
Les différents contrôles des menus
La barre de statut
Le menu contextuel
TP : navigateur web
Le cahier des charges
Les ébauches
Bien exploiter les événements
Le design
Fenêtres supplémentaires
Ajouter des fenêtres
Ouverture et fermeture
Notions de parent et d'enfant
Communication entre fenêtres
Les fichiers - partie 1/2
Introduction sur les fichiers
Le namespace IO
Notre premier fichier
Nos premières manipulations
Les fichiers - partie 2/2
Plus loin avec nos fichiers
Les répertoires
Mini-TP : lister notre arborescence
Un fichier bien formaté
TP : ZBackup
Le cahier des charges
Correction
Récapitulatif du fichier ini
Pour aller plus loin
Les concepts de la POO
Pourquoi changer ?
Les accessibilités
Les fichiers de classe
Notre première classe
Notre première classe
Des méthodes et des attributs
Les propriétés
Notre petit Mario
Concepts avancés
L'héritage
Les classes abstraites
Les événements
La surcharge
La surcharge d'opérateurs et les propriétés par défaut
Les collections
Les bibliothèques de classes
La sauvegarde d'objets
La sérialisation, c'est quoi ?
La sérialisation binaire
La sérialisation XML
La sérialisation multiple
TP : ZBiblio, la bibliothèque de films
Le cahier des charges
La correction
Améliorations possibles
Introduction sur les bases de données
Qu'est-ce qu'une base de données ?
Les bases de données
Lexique
SQL Server 2008 R2
Installation de SQL Server 2008 R2
Découverte de l'interface
Introduction au langage SQL
Rechercher des informations
Ajouter des informations
La mise à jour d'informations
Supprimer des informations
Création et remplissage de la BDD
Création de notre base de données (BDD)
La création de la table
Le remplissage de données
La communication VB .NET - BDD
ADO.NET
Connexion à la BDD
Insertion ou modification
Lecture de données
Le DataSet à la loupe
Qu'est-ce ?
La lecture de données
L'ajout de données
L'utilisation graphique : le DataGrid
La découverte du DataGrid
Liaison avec le code VB .NET
Liaison via l'assistant
TP : ZBiblio V2
Cahier des charges
Correction : partie BDD
Correction : partie VB
Conclusion
Introduction à la communication
La communication, pourquoi ?
Les sockets
.NET remoting
WCF, Windows Communication Fundation
Communication via sockets
Client/serveur
La connexion
Le transfert de données
Mini-TP : demande d'heure
TCPListener/TCPClient
TCPListener
TCPClient
La communication par flux
Les threads
Introduction
Notre premier thread
La synchronisation
Les Windows Forms et les threads
TP : ZChat
Cahier des charges
La correction
Conclusion
Gérer les erreurs
Découvrons le Try
Finally
Catch, throw
Les ressources
Qu'est-ce qu'une ressource ?
Ajoutons nos ressources
Récupérons-les maintenant
Le registre
Diffuser mon application
Définition de l'assembly
Debug et Release
La publication

Apprenez à programmer en VB .NET

Vous trouvez le C et le C++ trop compliqués mais aimeriez concevoir des programmes fonctionnels, ergonomiques et facilement accessibles ? Le Visual Basic est fait pour vous ! Il s'agit d'un langage extrêmement simple permettant de :

Ce cours va vous initier aux bases du Visual Basic, ce qui est tout de même normal quand on s'adresse à des Zéros.
Aucun prérequis n'est demandé : il n'est pas nécessaire de connaître le moindre langage, tout vous sera expliqué.

Voici quelques exemples de programmes réalisables en VB .NET et qui seront abordés dans le cours :

Exemple de logiciel utilisant VB .NETTP de calcul de voyage sous VB .NETTP Zbackup sous VB .NET

Tout en essayant de rester le plus clair et concis possible, je vais vous expliquer, dans les grandes lignes, les principales fonctionnalités de base du langage, ainsi que la façon de vous servir des outils que vous utiliserez par la suite pour réaliser des programmes. Ensuite, ce sera à vous de voler de vos propres ailes. ;)

Historique et Visual Basic Express 2010

Historique, naissance du Visual Basic

Pour commencer, je vais vous présenter l'historique du Visual Basic. Ensuite, nous verrons ensemble comment télécharger et installer les outils nécessaires pour poursuivre la lecture de ce tutoriel sans embûches.

Historique, naissance du Visual Basic

Historique et Visual Basic Express 2010 Le framework .NET

D'où vient le Visual Basic ?

Nous allons donc commencer par un petit morceau d'histoire, car il est toujours intéressant de connaître le pourquoi de l'invention d'un langage (il doit bien y avoir une raison ; sinon, nous serions encore tous à l'assembleur :p ).

J'ai récupéré l'essentiel des articles de Wikipédia sur notre sujet et vous l'ai résumé.

Le BASIC

BASIC est un acronyme pour Beginner's All-purpose Symbolic Instruction Code. Le BASIC a été conçu en 1963 par John George Kemeny et Thomas Eugene Kurtz au Dartmouth College pour permettre aux étudiants qui ne travaillaient pas dans des filières scientifiques d'utiliser les ordinateurs. En effet, à l'époque, l'utilisation des ordinateurs nécessitait l'emploi d'un langage de programmation assembleur dédié, ce dont seuls les spécialistes étaient capables.

Les huit principes de conception du BASIC étaient :

Tout ce qu'il nous faut, donc. :)

Le Visual Basic

De ce langage — le BASIC — est né le Visual Basic. Le VB est directement dérivé du BASIC et permet le développement rapide d'applications, la création d'interfaces utilisateur graphiques, l'accès aux bases de données, ainsi que la création de contrôles ou d'objets ActiveX.
Je pense qu'avec ces possibilités on va déjà pouvoir créer de petites choses. :p
Le traditionnel « Hello World ! » en Visual Basic :

Sub Main()
    MsgBox("Hello World !")
End Sub

Ce code ouvre une MsgBox (comme un message d'erreur Windows) dans laquelle est contenu le message « Hello World ! ».

Il faut savoir que le BASIC, ancêtre du Visual Basic, est un langage de haut niveau. En programmation, les langages peuvent se trier par niveau : plus le niveau du langage est bas, plus celui-ci est proche du matériel informatique (le C est considéré comme un langage de bas niveau). Un développeur utilisant un langage de bas niveau devra, entre autres, gérer la mémoire qu'il utilise. Il peut même aller jusqu'à spécifier les registres matériels dans lesquels écrire pour faire fonctionner son programme.
Un langage de haut niveau fait abstraction de tout cela ; il le fait en interne, c'est-à-dire que le développeur ne voit pas toutes ces opérations. Après, tout dépend de votre envie et de votre cahier des charges : si vous devez développer une application interagissant directement avec les composants, un langage de bas niveau est requis. En revanche, si vous ne souhaitez faire que du graphisme, des calculs, du fonctionnel, etc., un langage de haut niveau vous permettra de vous soustraire à beaucoup de manipulations fastidieuses.

Le Visual Basic est donc un langage de haut niveau. Il a d'emblée intégré les concepts graphiques et visuels des programmes que l'on concevait avec. Il faut savoir que les premières versions de VB, sorties au début des années 1990, tournaient sous DOS et utilisaient des caractères pour simuler une fenêtre.

|---------------------------|
|    Ma fenêtre en VB 1.0   |
|---------------------------|
|                           |
|                           |
|                           |
|                           |
|                           |
|                           |
|---------------------------|

Ce n'était pas la joie, certes, mais déjà une révolution !

Aujourd'hui, le VB a laissé place au VB .NET. Le suffixe .NET spécifie en fait qu'il nécessite le framework.NET de Microsoft afin de pouvoir être exécuté. À savoir qu'il est également possible d'exécuter un programme créé en VB sous d'autres plates-formes que Windows grâce à Mono.

M'sieur… c'est quoi un framework ?

Très bonne question. Un framework (dans notre cas, le framework .NET de Microsoft) est une sorte d'immense bibliothèque informatique contenant des outils qui vont faciliter la vie du développeur. Le framework .NET est compatible avec le Visual Basic et d'autres langages tels que le C#, le F#, le J#, etc.


Historique et Visual Basic Express 2010 Le framework .NET

Le framework .NET

Historique, naissance du Visual Basic Notre outil : Visual Basic 2010 Express

La plate-forme .NET fournit un ensemble de fonctionnalités qui facilitent le développement de tous types d'applications :

En Visual Basic, toutes ces applications sont réalisables grâce au framework .NET.

Du développement de l'application jusqu'à son exécution, le framework .NET prend en charge l'intégralité de la vie de cette application.

Ce framework doit être hébergé sur le système d'exploitation avec lequel il doit interagir. Pas d'inquiétude, nous allons nous en charger.

Le framework .NET (voir figure suivante) a été créé par Microsoft : le premier système d'exploitation permettant de le posséder est bien sûr Windows, mais d'autres versions sont disponibles, permettant l'adaptation de la plate-forme .NET à des systèmes d'exploitation tel que Linux ou Unix.

Vue d'ensemble du framework .NET
Vue d'ensemble du framework .NET

Cela doit vous sembler bien compliqué, mais retenez bien son utilité première : nous mâcher le travail. Par exemple, si vous souhaitez lire et écrire dans un fichier (ce que nous verrons plus tard), le développement depuis zéro d'un programme capable d'effectuer cette tâche est longue et fastidieuse. Il va falloir envisager toutes les possibilités d'erreurs, trouver un moyen d'interagir avec votre disque dur, etc. Cela s'appelle de la programmation bas niveau (proche du matériel informatique en lui-même).

Cependant, des personnes ont déjà codé les éléments permettant d'effectuer ces actions. Tout cela a été intégré au framwork .NET et installé sur vos machines. Vous allez donc pouvoir réutiliser leur travail pour vous simplifier la vie et diminuer le risque d'erreurs. Cela s'appelle de la programmation haut niveau (éloigné du matériel).


Historique, naissance du Visual Basic Notre outil : Visual Basic 2010 Express

Notre outil : Visual Basic 2010 Express

Le framework .NET Installation de Visual Basic 2010 Express

L'environnement de développement

Eh oui, pour coder en Visual Basic, il nous faut des outils adaptés !

Comme je l'ai expliqué précédemment, nous allons utiliser du Visual Basic et non pas du BASIC. Cela signifie que nous créerons des interfaces graphiques et ergonomiques pour nos logiciels, et tout cela facilement. :-°

Comment va-t-on procéder ? Utiliser un éditeur comme Paint et dessiner ce que l'on veut ?

Non, on ne va pas procéder de la sorte. Ce serait bien trop compliqué !
Sachez que des outils spécifiques existent : utilisons-les ! Bien, allons-y…

Visual Studio Express

Microsoft a créé une suite logicielle nommée « Visual Studio », qui rassemble Visual Basic, Visual C++, Visual C#, et j'en passe.

La suite provenant de Microsoft, on peut facilement deviner qu'elle coûte une certaine somme !
Heureusement, l'éditeur nous propose généreusement une version « Express » gratuite de chaque logiciel de cette suite.

Nous allons donc utiliser Visual Basic 2010 Express (les étudiants peuvent toujours récupérer une version de Visual Studio 2010 sur la MSDN pour étudiants).

J'ai déjà installé une version de Visual Basic Express, mais celle de 2005 ou antérieure. Cela pose-t-il problème ?

Si vous êtes assez débrouillards, vous pouvez toujours conserver votre version. Je m'explique : Microsoft a sorti des versions différentes du framework (comme des bibliothèques) pour chaque version de Visual Studio : VS 2003 (Framework 1.1), VS 2005 (Framework 2.0), VS 2008 (Framework 3.5) et VS 2010 (Framework 4.0).

Vous l'avez donc certainement compris : si vous utilisez une autre version, vous aurez un ancien framework. De ce fait, certains objets ou propriétés évoqués ou utilisés dans le tutoriel sont peut-être différents voire inexistants dans les versions précédentes. Je vous conseille donc tout de même d'installer cette version « Express » qui est relativement légère et vous permettra de suivre le tutoriel dans les meilleures conditions.


Le framework .NET Installation de Visual Basic 2010 Express

Installation de Visual Basic 2010 Express

Notre outil : Visual Basic 2010 Express Découverte de l'interface

Étape par étape

Passons immédiatement au téléchargement du petit logiciel intermédiaire, qui ne pèse que quelques Mo et qui va télécharger Visual Basic 2010 Express.

Vous lancez donc le programme et arrivez à la première page (figure suivante).

Installation de Visual Basic 2010 Express
Installation de Visual Basic 2010 Express

Sur cette page, l'installateur vous propose déjà une case à cocher. Si vous autorisez Microsoft à récupérer des informations sur votre ordinateur et des statistiques pour ses bases de données, laissez comme tel. Dans le cas contraire, décochez la case. Cliquez ensuite sur le bouton « Suivant ». Lisez puis acceptez les termes du contrat de licence. Cela fait, appuyez une nouvelle fois sur « Suivant ».

Comme pour n'importe quelle autre installation, choisissez le dossier dans lequel vous souhaitez que le logiciel s'installe. Cliquez ensuite sur « Installer ». Une nouvelle page apparaît. Elle indique la progression du téléchargement du logiciel, le taux de transfert et la partie du programme en cours d'installation, comme à la figure suivante.

Visual Basic 2010 Express est en cours de téléchargement
Visual Basic 2010 Express est en cours de téléchargement

Il ne vous reste plus qu'à attendre la fin du téléchargement, suivi de l'installation. Une fois cela terminé, vous voilà avec Visual Basic 2010 Express installé !


Notre outil : Visual Basic 2010 Express Découverte de l'interface

Découverte de l'interface

Installation de Visual Basic 2010 Express Premiers pas

L'interface de VB 2010 Express

Vous avez donc installé Visual Basic 2010 Express. En passant, sachez que ce dernier est un IDE (environnement de développement intégré) qui rassemble les fonctions de conception, édition de code, compilation et débogage. Lors du premier lancement, vous constatez qu'un petit temps de chargement apparaît : le logiciel configure l'interface pour la première fois.

Page d'accueil

Nous voici sur la page de démarrage du logiciel (voir figure suivante). Vous pouvez la parcourir, elle contient des informations utiles aux développeurs (vous) et conservera l'historique de vos projets récents.

Page de démarrage
Page de démarrage

Barre d'outils

La barre d'outils (voir figure suivante) vous sera indispensable afin de travailler avec une parfaite ergonomie. Je vais récapituler les boutons présents (de gauche à droite), actifs ou non durant vos travaux.

La barre d'outils
La barre d'outils

Toutes ces commandes ne seront pas forcément utiles ; au besoin, n'hésitez pas à revenir voir cette liste.

Nouveau projet

Je vous invite, seulement pour appréhender l'interface, à créer un projet Windows Forms (voir figure suivante). Pour ce faire, trois solutions s'offrent à vous : cliquer sur le bouton « Nouveau projet », se rendre dans le menu Fichier > Nouveau projet, ou utiliser le raccourci clavier CTRL + N.

Créer un nouveau projet
Créer un nouveau projet

Cliquez donc sur l'icône correspondant à Application Windows Forms.
Saisissez un nom de projet dans la case « Nom ». Vous pouvez laisser le nom par défaut, ce projet ne sera pas utilisé. Cliquez ensuite sur « OK », et vous voici dans un nouveau projet ! Vous remarquez que beaucoup plus de choses s'offrent à vous (voir figure suivante).

Projet « Application Windows Forms »
Projet « Application Windows Forms »

Nous allons tout voir en détail.

Espace de travail

Cette partie (voir figure suivante) correspond à notre espace de travail : c'est ici que nous allons créer nos fenêtres, entrer nos lignes de code, etc.

Espace de travail
Espace de travail

Boîte à outils

Sur la gauche de l'interface, nous avons accès à la boîte à outils. Pour afficher cette boîte, vous allez devoir cliquer sur le petit onglet qui dépasse sur la gauche. Une fois la boîte sortie, cliquez sur la punaise pour la « fixer » et la maintenir visible. La boîte à outils (voir figure suivante) nous sera d'une grande utilité lorsque nous créerons la partie graphique de nos applications, mais inutile lors de l'écriture du code VB. Dès lors, si vous voulez la rentrer automatiquement, cliquez une nouvelle fois sur la punaise.

Boîte à outils
Boîte à outils

Fenêtre de solutions

De l'autre côté de notre écran, nous remarquons la fenêtre de solutions (voir figure suivante) : elle récapitule l'arborescence de notre projet. Elle servira également à gérer les bases de données, mais plus tard. :)

Fenêtre de solutions
Fenêtre de solutions

Fenêtre des propriétés

Autre partie essentielle : la fenêtre des propriétés (voir figure suivante) qui va nous permettre, en mode conception, de modifier les propriétés de nos objets. Vous n'avez rien compris ? Mettez ce terme dans un coin de votre tête, nous allons rapidement y revenir.

Fenêtre des propriétés
Fenêtre des propriétés

La dernière fenêtre est celle des erreurs. J'espère que vous n'en aurez pas l'utilité, mais elle saura se faire remarquer quand il le faudra, ne vous inquiétez pas. :p

En attendant, je vous laisse vous familiariser avec l'environnement : déplacez les boîtes, les fenêtres, et redimensionnez-les à votre guise.


Installation de Visual Basic 2010 Express Premiers pas

Premiers pas

Découverte de l'interface Hello World !

Après cette petite découverte de notre environnement de développement, nous allons immédiatement entrer dans le monde fabuleux de la programmation !

Hello World !

Premiers pas Objets, fonctions…

Notre premier programme !

Nous allons donc aborder les principes fondamentaux du langage. Pour cela, empressons-nous de créer un nouveau projet, cette fois en application console.

Créez un nouveau projet (CTRL + N) et cliquez sur Application console. De nombreux mots de langue étrangère apparaissent. Pas de panique, je vais vous tout expliquer.

Voici ce qui devrait s'afficher chez vous :

Module Module1

    Sub Main()

    End Sub

End Module

Si ce n'est pas exactement ce code que vous voyez, faites en sorte que cela soit le cas, afin que nous ayons tous le même point de départ.

Ces mots barbares figurant dans votre feuille de code sont indispensables ! Si vous les supprimez, l'application ne se lancera pas. C'est le code minimal que l'IDE (Visual Studio) génère lorsque l'on crée un projet de type console.

Chaque grosse partie, telle qu'une fonction, un module, un sub, voire une boucle conditionnelle (nous allons revenir sur ces termes), aura une balise de début : ici, Module Module1 et Sub Main(), et une balise de fin : End Module et End Sub. Module1 est le nom du module, que vous pouvez modifier si l'envie vous en prend. Il nous sera réellement pratique lorsque nous utiliserons plusieurs feuilles.

Pour ce qui est du Main(), n'y touchez pas, car lorsqu'on va lancer le programme la première chose que ce dernier va faire sera de localiser la partie appelée Main() et de sauter dedans. S'il ne la trouve pas, cela ne fonctionnera pas ! :p

Tout d'abord, nous cherchons le moyen d'écrire quelque chose dans la console… Ah, j'ai omis de vous expliquer en quoi consiste la console. Je suis confus ! Regardez la figure suivante.

Voici à quoi ressemble une console
Voici à quoi ressemble une console

Voilà ma console. Je suis conscient que ce n'est visuellement pas exceptionnel, mais c'est plus simple pour apprendre les bases.

Mais pourquoi tant de haine ? Je souhaite plutôt faire Half-Life 3, moi ! Pas Space Invaders.

Du calme ! L'essentiel dans l'apprentissage de la programmation est d'y aller progressivement.

Cette console vous permettra d'apprendre les bases et les concepts fondamentaux du VB sans vous embrouiller directement l'esprit avec les objets qui orneront nos interfaces graphiques (c'est pour votre bien ;) ). Nous allons donc créer un programme qui écrit dans cette console. Je vais écrire pour vous la ligne qui va effectuer cette action.

Hello World !

Console.Write("Hello World !")

Donc, pour ceux qui ont quelque peu suivi, où va-t-on placer cette ligne ?

Dans le Main() ! Eh bien oui, je l'ai dit plus haut : le programme va se rendre directement dans le Main(), autant donc y placer nos lignes (instructions) — c'est-à-dire entre Sub Main() et End Sub. :)

Pour lancer le programme, cliquez sur la petite flèche verte de la barre d'outils.

Ah ! je ne vois rien : la fenêtre s'ouvre et se referme trop rapidement !

Déroulement du programme

Je vous explique : dans notre cas, le programme entre dans le Main() et exécute les actions de haut en bas, instruction par instruction. Attention, ce ne sera plus le cas lorsque nous aborderons des notions telles que les boucles ou les fonctions.

Voici nos lignes de code :

  1. Module Module1 : le programme entre dans son module au lancement. Forcément, sinon rien ne se lancerait jamais. La console s'initialise donc.

  2. Il se retrouve à entrer dans le Main(). La console est ouverte.

  3. Il continue et tombe sur notre ligne qui lui dit « Affiche "Hello World !" », il affiche donc « Hello World ! » dans la console.

  4. Il arrive à la fin du Main() (End Sub). Rien ne se passe, « Hello World ! » est toujours affiché.

  5. Il rencontre le End Module : la console se ferme.

Résultat des courses : la console s'est ouverte, a affiché « Hello World ! » et s'est fermée à nouveau… mais tout cela en une fraction de seconde, on n'a donc rien remarqué !

La pause

La parade : donner au programme une ligne à exécuter sur laquelle il va attendre quelque chose. On pourrait bien lui dire : « Attends pendant dix secondes… », mais il y a un moyen plus simple et préféré des programmeurs : attendre une entrée. Oui, la touche Entrée de votre clavier (Return pour les puristes). On va faire attendre le programme, qui ne bougera pas avant que la touche Entrée ne soit pressée.

Pour cela, voici la ligne de code qui effectue cette action :

Console.Read()

Cette ligne dit à l'origine « Lis le caractère que j'ai entré », mais nous allons l'utiliser pour dire au programme : « Attends l'appui sur la touche Entrée ».

Maintenant, où la placer ?

Module Module1
    Sub Main()
        Console.Write("Hello World !")
        Console.Read()
    End Sub
End Module

J'ai fourni l'intégralité du code pour ceux qui seraient déjà perdus. J'ai bien placé notre instruction après la ligne qui demande l'affichage de notre texte. En effet, si je l'avais mise avant, le programme aurait effectué une pause avant d'afficher la ligne : je l'ai dit plus haut, il exécute les instructions du haut vers le bas.

On clique sur notre fidèle flèche :

Hello World !

Victoire, notre « Hello World ! » reste affiché ! Si l'on presse la touche Entrée, la console se ferme : nous avons atteint nos objectifs !


Premiers pas Objets, fonctions…

Objets, fonctions…

Hello World ! Fonctions, arguments

Vous l'avez peut-être remarqué : au moment où vous avez écrit « Console. », une liste s'est affichée en dessous de votre curseur (voir figure suivante). Dans cette partie, je vais vous expliquer l'utilité de cette liste.

La liste déroulante
La liste déroulante

Nous avons donc notre console au début du schéma de la figure suivante. Sous VB, la console est considérée comme un objet. Cet objet possède des fonctions et d'autres objets. Je vais déjà expliquer cela.

La console est considérée comme un objet
La console est considérée comme un objet

Fonctions

Une fonction est une séquence de code déjà existante et conçue pour obtenir un effet bien défini. Concrètement, cela nous permet de n'écrire qu'une seule fois ce que va faire cette séquence, puis d'appeler la fonction correspondante autant de fois que nous le voulons (la séquence exécutera bien entendu ce qu'on a défini au préalable dans la fonction… que des mots compliqués ! :p ).

Par exemple, nos deux lignes qui nous permettaient d'afficher « Hello World ! » et d'effectuer une pause auraient pu être placées dans une fonction séparée. Dans ce cas, en une ligne (l'appel de la fonction), on aurait pu effectuer cette séquence ; imaginez alors le gain de temps et les avantages dans des séquences de plusieurs centaines de lignes.

Un autre exemple : notre fonction Write avait pour but d'écrire ce que l'on lui donnait comme arguments (je vous expliquerai cela par la suite). La fonction Write a donc été écrite par un développeur qui y a placé une série d'instructions (et pas des moindres !) permettant d'afficher du texte dans la console.

Objets

Pour faire simple, les objets permettent d'organiser notre code. Par exemple, notre fonction Write est, vous l'avez vu, liée à l'objet Console. C'est ainsi que le programme sait où effectuer le Write. Nous verrons plus en détail ce concept d'objets lorsque nous nous attaquerons au graphisme, mais vous venez de lire quelques notions de programmation orientée objet (aussi appelée POO).

À noter : les « liens » entre les objets se font par des points (« . »). Le nombre d'objets liés n'est limité que si l'objet que vous avez sélectionné ne vous en propose pas. Sinon, vous pouvez en raccorder dix si vous le voulez.


Hello World ! Fonctions, arguments

Fonctions, arguments

Objets, fonctions… Les variables

Pas de panique si vous n'avez pas compris ces concepts de fonctions, d'objets, etc. Nous allons justement nous pencher sur la structure d'un appel de fonction, car nous en aurons besoin très bientôt ; pour cela, nous allons étudier une fonction simple : le BEEP (pour faire « bip » avec le haut-parleur de l'ordinateur). Afin d'y accéder, nous allons écrire Console.Beep.

Ici, deux choix s'offrent à nous : le classique () ou alors (frequency as integer, duration as integer).

Hou là là, ça devient pas cool, ça !

On va y aller doucement ! La première forme va émettre un « bip » classique lors de l'exécution. La seconde demande des arguments. Il s'agit de paramètres passés à la fonction pour lui donner des indications plus précises. Précédemment, lorsque nous avons écrit Write("Hello World !"), l'argument était "Hello World !" ; la fonction l'a récupéré et l'a affiché, elle a donc fait son travail.

Pour certaines fonctions, on a le choix de donner des arguments ou non, selon la façon dont elles ont été créées (c'est ce qu'on appelle la surcharge, pour les personnes ayant déjà des notions d'orienté objet).

La seconde forme prend donc deux arguments, que vous voyez d'ailleurs s'afficher dès que vous tapez quelque chose entre les parenthèses, comme sur l'une des images ci-avant. Le premier sert à définir la fréquence du « bip » : entrez donc un nombre pour lui donner une fréquence. Le second, quant à lui, détermine la durée du « bip ». Les arguments sont délimités par une virgule, et si vous avez bien compris, vous devriez obtenir une ligne de ce genre :

Console.Beep(500, 100)

Placez-la dans le programme comme nos autres lignes. Si vous la mettez avant ou après le Console.Read(), cela déterminera si le « bip » doit se produire avant ou après l'appui sur Entrée. Eh oui, le programme n'avancera pas tant que cette ligne ne sera pas exécutée.

Pourquoi n'y a-t-il pas de guillemets (doubles quotes : « " ») autour des nombres ?

Les nombres n'ont pas besoin de cette syntaxe particulière. Je m'explique : une variable ne peut pas avoir un nom composé uniquement de chiffres. Et donc, si vous écrivez des chiffres, le programme détectera immédiatement qu'il s'agit d'un nombre ; tandis que si vous écrivez des lettres, le programme ne saura pas s'il faut afficher le texte ou si c'est le nom d'une variable. :) Donc, pour les noms de variables, il ne faut pas de guillemets, mais pour un simple texte, si. ;)

Tenez, ça tombe bien, nous allons justement découvrir ce qu'est réellement une variable !


Objets, fonctions… Les variables

Les variables

Fonctions, arguments Les types

Comme son nom l'indique, une variable… varie. On peut y stocker pratiquement tout ce qu'on veut, comme par exemple des nombres, des phrases, des tableaux, etc. C'est pour cette raison que les variables sont omniprésentes dans les programmes. Prenons comme exemple votre navigateur web préféré : 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

Les variables Les utiliser - la théorie

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. ;)

Au tableau suivant, vous trouverez un récapitulatif des types que nous allons utiliser.

Nom

Explication

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 entiers (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 il est grand (16, 32, 64), 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 variables Les utiliser - la théorie

Les utiliser - la théorie

Les types Les utiliser - la pratique

Comment allons-nous utiliser les variables ?

Telle est la question à laquelle nous allons répondre.

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 qui se produit ?

  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 pour attribuer une valeur à une variable, on place un « = » entre deux éléments.

Le sens

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

Regardez la figure suivante.

Affectations de valeurs à des variables
Affectations de valeurs à des variables
  1. On entre le chiffre 3 dans la variable appelée X, pas de problème ;

  2. Ensuite, on souhaite mettre X dans 3 ! Aïe, cela ne va pas fonctionner ! Si vous écrivez quelque chose de ce 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 !

  3. Ensuite, on met la variable Y dans la variable X ;

  4. 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, comme schématisé à la figure suivante.

Attention, une valeur peut en écraser une autre
Attention, une valeur peut en écraser une autre

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) :

Dim MaVariable As Integer
MaVariable = 5
MaVariable = 8
MaVariable = 15
MaVariable = 2
MaVariable = 88
MaVariable = 23

Que vaudra MaVariable à la fin de ces instructions ? 23 !


Les types Les utiliser - la pratique

Les utiliser - la pratique

Les utiliser - la théorie Modifications des variables et opérations sur les variables

Cette petite partie de lecture vous a ennuyés ? On va remédier à ce malaise ! 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 :

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 !

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 :

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 biper à 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 ».

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 ?

Module Module1
    Sub Main()
        Dim MaVariable As Integer
        MaVariable = 5
        Console.Write(MaVariable)
        Console.Read()
    End Sub
End Module

Voici le résultat :

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.

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:


Les utiliser - la théorie Modifications des variables et opérations sur les variables

Modifications des variables et opérations sur les variables

Les utiliser - la pratique Opérations sur une variable

Nous voici en possession de notre nouvel outil : les variables.

Le monde des variables étant gigantesque, nous allons encore les étudier pendant un chapitre.

Maintenant que nous savons comment les déclarer et les utiliser, nous allons apprendre à les modifier de différentes façons. Viendront ensuite les opérations mathématiques, la concaténation, les commentaires et, pour finir, la lecture de valeurs depuis la console.

Je ne vous en dis pas plus, il faut maintenant s'y mettre.

Opérations sur une variable

Modifications des variables et opérations sur les variables Plus en profondeur…

Nous allons à présent apprendre à modifier des variables, et effectuer des opérations avec elles.

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.

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

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 :

Dim MaVariable, MaVariable2 As Integer

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

Dim MaVariable As Integer = 5

À l'attaque

Passons maintenant au concret !

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

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 nous 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.

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.


Modifications des variables et opérations sur les variables Plus en profondeur…

Plus en profondeur…

Opérations sur une variable Différentes syntaxes

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

Opération souhaitée

Symbole

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 par 5, comment auriez-vous procédé ?

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

x = 14
y = 3

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

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.

Exemples :

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 :

Console.Write("test")
Console.Write("test")

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

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…

Console.WriteLine("test")
Console.WriteLine("test")

… produira le résultat suivant :

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 ! :)

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 :

9 x 8 = 72

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


Opérations sur une variable Différentes syntaxes

Différentes syntaxes

Plus en profondeur… Les commentaires

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 fait ; 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 :

Dim MaVariable As Integer = 8
Dim MaVariable2 As Integer = 9
Dim MaVariable3 As Integer = 0

Puis, un seul Write :

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 d'assembler deux éléments en un ; ici, par exemple, j'ai assemblé 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 d'assembler deux éléments en un, car en faisant cela on assemble 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.

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 :

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

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


Plus en profondeur… Les commentaires

Les commentaires

Différentes syntaxes Lire une valeur en console

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 :

'Commentaire
MaVariable = 9 * 6 ' Multiplie 9 et 6 et entre le résultat dans MaVariable

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

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 et qui porte 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.


Différentes syntaxes Lire une valeur en console

Lire une valeur en console

Les commentaires Conditions et boucles conditionnelles

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 :

MaVariable = Console.ReadLine()

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

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.

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


Les commentaires Conditions et boucles conditionnelles

Conditions et boucles conditionnelles

Lire une valeur en console Les boucles conditionnelles

Une boucle conditionnelle est quelque chose de fort utile et courant en programmation. Cela permet d'effectuer une action si, et seulement si, une condition est vérifiée. Par exemple vous voulez que votre programme dise « bonne nuit » s'il est entre 22 h et 6 h. Eh bien, c'est précisément dans ce cas de figure que les boucles conditionnelles trouvent leur utilité.

Les boucles conditionnelles

Conditions et boucles conditionnelles Select

Retenez bien que les « mots » que le programme comprend et utilise sont anglais et ont donc une traduction qui peut vous aider à vous rappeler à quoi ils servent.

Aperçu des différentes boucles

« If », mot anglais traduisible par « si »

Attaquons avec la boucle la plus simple, mais non sans intérêt : If.

Une ligne commençant par If est toujours terminée par Then, ce qui signifie « Si, alors ». C'est entre ces deux mots que vous placez la condition souhaitée.

Donc, si j'écris le code If MaVariable = 10 Then, ce qui se trouve en dessous ne sera exécuté que si la valeur de MaVariable est égale à 10. Regardez la figure suivante.

Code VB

If

MaVariable

= 10

Then

Français

Si

« MaVariable »

est égale à 10

alors

Fonctionnement du If
Fonctionnement du If

Comment cela, tout ce qui se trouve en dessous ? Tout le reste du programme ?

Eh bien oui, du moins jusqu'à ce qu'il rencontre End If, traduisible par « Fin si ». Comme pour un Sub ou un Module, une boucle est associée à sa fin correspondante.

If MaVariable = 10 Then
      MaVariable = 5
End If

Si vous avez bien compris, vous devriez être capables de m'expliquer l'utilité du code ci-dessus.

Si MaVariable est égale à 10, il met MaVariable à 5.
Exactement !

Mais si tu mets MaVariable à 5 dans la boucle, le programme ne va pas en sortir puisque ce n'est plus égal à 10 ?

Bonne observation. Eh bien, non, cela ne change rien : c'est en arrivant à la ligne du If que tout se joue. Ensuite, si la variable change, le programme ne s'en préoccupe plus.

« Else », mot anglais traduisible par « sinon »

« Sinon », il faut y penser parfois pour gérer toutes les éventualités. Le Else doit être placé dans une boucle If, donc entre le Then et le End If. Regardez la figure suivante.

Fonctionnement de Else
Fonctionnement de Else

La syntaxe est la suivante :

If MaVariable = 10 Then
    'Code exécuté si MaVariable = 10
Else
    'Code exécuté si MaVariable est différente de 10
End If

Code VB

Else

Français

Sinon

ElseIf

La figure suivante schématise le ElseIf.

Fonctionnement de ElseIf
Fonctionnement de ElseIf

Si vous voulez un cas particulier et non le reste des autres cas de votre condition, il existe le ElseIf.

Voici un exemple :

If MaVariable = 10 Then
    'Code exécuté si MaVariable = 10
ElseIf MaVariable = 5 Then
    'Code exécuté si MaVariable = 5
Else
    'Code exécuté si MaVariable est différente de 10 et de 5
End If

Code VB

ElseIf

Français

Sinon, si

If MaVariable = 10 Then
    If MaVariable2 = 1 Then
       'Code exécuté si MaVariable = 10 et MaVariable2 = 1
    Else
       'Code exécuté si MaVariable = 10 et MaVariable2 <> 1
    End If
ElseIf MaVariable = 5 Then
    If MaVariable2 = 2 Then
       'Code exécuté si MaVariable = 5 et MaVariable2 = 2
    End If
Else
       'Code exécuté si MaVariable est différente de 10 et de 5
End If

Conditions et boucles conditionnelles Select

Select

Les boucles conditionnelles While

Nous avons vu If, ElseIf et Else.

Mais pour ce qui est, par exemple, du cas d'un menu dans lequel vous avez 10 choix différents, comment faire ?

Une première façon de procéder serait la suivante :

If Choix = 1 Then
     Console.WriteLine("Vous avez choisi le menu n° 1")
ElseIf Choix = 2 Then
     Console.WriteLine("Vous avez choisi le menu n° 2")
ElseIf Choix = 3 Then
     Console.WriteLine("Vous avez choisi le menu n° 3")
ElseIf Choix = 4 Then
     Console.WriteLine("Vous avez choisi le menu n° 4")
ElseIf Choix = 5 Then
     Console.WriteLine("Vous avez choisi le menu n° 5")
ElseIf Choix = 6 Then
     Console.WriteLine("Vous avez choisi le menu n° 6")
ElseIf Choix = 7 Then
     Console.WriteLine("Vous avez choisi le menu n° 7")
ElseIf Choix = 8 Then
     Console.WriteLine("Vous avez choisi le menu n° 8")
ElseIf Choix = 9 Then
     Console.WriteLine("Vous avez choisi le menu n° 9")
ElseIf Choix = 10 Then
     Console.WriteLine("Vous avez choisi le menu n° 10")
Else
     Console.WriteLine("Le menu n'existe pas")
End If

Il s'agit de la méthode que je viens de vous expliquer (qui est tout à fait correcte, ne vous inquiétez pas).

Il faut néanmoins que vous sachiez que les programmeurs sont très fainéants, et ils ont trouvé sans cesse des moyens de se simplifier la vie. C'est donc dans le cas que nous venons d'évoquer que les Select deviennent indispensables, et grâce auxquels on simplifie le tout. La syntaxe se construit de la manière suivante :

Select Case MaVariable
      Case 1
          'Si MaVariable = 1
      Case 2
          'Si MaVariable = 2
      Case Else
          'Si MaVariable <> 1 et <> 2
   End Select

Code VB

Select

Case

MaVariable

Français

Sélectionne

dans quel cas

« MaVariable » vaut

Dans le même cas de figure, revoici notre menu :

Select Case Choix
            Case 1
                Console.WriteLine("Vous avez choisi le menu n° 1")
            Case 2
                Console.WriteLine("Vous avez choisi le menu n° 2")
            Case 3
                Console.WriteLine("Vous avez choisi le menu n° 3")
            Case 4
                Console.WriteLine("Vous avez choisi le menu n° 4")
            Case 5
                Console.WriteLine("Vous avez choisi le menu n° 5")
            Case 6
                Console.WriteLine("Vous avez choisi le menu n° 6")
            Case 7
                Console.WriteLine("Vous avez choisi le menu n° 7")
            Case 8
                Console.WriteLine("Vous avez choisi le menu n° 8")
            Case 9
                Console.WriteLine("Vous avez choisi le menu n° 9")
            Case 10
                Console.WriteLine("Vous avez choisi le menu n° 10")
            Case Else
                Console.WriteLine("Le menu n'existe pas")
        End Select

Pour que vous compreniez bien, voici un petit schéma en figure suivante.

Fonctionnement de Select
Fonctionnement de Select

Ce code correspond exactement à celui qui se trouve plus haut. Le Case Else, ici aussi, prend en compte toutes les autres possibilités.

Petites astuces avec Select

Si je souhaite que pour les valeurs 3, 4 et 5 il se passe la même action, dois-je écrire trois Case avec la même instruction ?

Non, une petite astuce du Select est de rassembler toutes les valeurs en un seul Case. Par exemple, le code suivant…

Select Case Choix
       Case 3,4,5
            'Choix 3, 4 et 5
End Select

… est identique à celui-ci :

Select Case Choix
       Case 3
            'Choix 3, 4 et 5
       Case 4
            'Choix 3, 4 et 5
       Case 5
            'Choix 3, 4 et 5
End Select

Astuce également valable pour de grands intervalles : le code suivant…

Select Case Choix
       Case 5 to 10
            'Choix 5 à 10
End Select

… correspond à ceci :

Select Case Choix
       Case 5
            'Choix 5 à 10
       Case 6
            'Choix 5 à 10
       Case 7
            'Choix 5 à 10
       Case 8
            'Choix 5 à 10
       Case 9
            'Choix 5 à 10
       Case 10
            'Choix 5 à 10
End Select

Voilà, j'espère que ces différentes formes vous seront utiles. :p


Les boucles conditionnelles While

While

Select For

À présent, nous allons réellement aborder le terme de « boucle ».

Tu veux dire qu'on ne les utilisait pas encore ?

Non, ce ne sont pas à proprement parler des boucles ; en programmation, on appelle boucle un espace dans lequel le programme reste pendant un temps choisi, c'est-à-dire qu'il tourne en rond.

On va tout de suite étudier le cas de While.

« While », mot anglais traduisible par « tant que »

Vu la traduction du mot « while », vous devriez vous attendre à ce que va faire notre boucle.
Elle va effectivement « tourner » tant que la condition est vraie.

Retenez bien ce « vrai ». Vous souvenez-vous du concept des booléens que nous avons étudié dans le chapitre sur les variables ? Eh bien voilà, dans ce cas-ci, le While va vérifier que le booléen est vrai.

La syntaxe est similaire à celle du If de tout à l'heure. Voyons cela !

While MaVariable = 10
    'Exécuté tant que MaVariable = 10
End While

Code VB

While

MaVariable

= 10

Français

Tant que

« MaVariable »

est égale à 10

Voici donc un schéma à la figure suivante pour vous aider à comprendre.

Fonctionnement de While
Fonctionnement de While

En clair, le programme arrive au niveau de l'instruction While, vérifie que la condition est vraie et, si c'est le cas, entre dans le While, puis exécute les lignes qui se trouvent à l'intérieur ; il arrive ensuite au End While et retourne au While. Cela tant que la condition est vraie.

Tu parlais de booléens…

Eh oui, lorsque vous écrivez MaVariable = 10, le programme va faire un petit calcul dans son coin afin de vérifier que la valeur de MaVariable est bien égale à 10 ; si c'est le cas, il transforme cela en un booléen de type Vrai.
Il s'agit du même principe que pour les autres boucles conditionnelles (If, Else, etc.).

Et si je veux passer au moins une fois dans la boucle même si la condition est fausse, comment dois-je faire ?

Oh, mais quelle coïncidence, une boucle spéciale existe pour un tel cas ! (C'est beau le hasard, parfois, n'est-ce pas ? :p )

Do While

À l'instar du While, le Do While (traduisible par « faire tant que ») passe au moins une fois dans la boucle. Regardez la figure suivante.

Fonctionnement de Do
Fonctionnement de Do
Do
   'Instruction exécutée au moins une fois
Loop While MaVariable = 10

Un code de ce type…

Do

Loop Until MaVariable = 10

… revient à écrire ceci :

Do 

Loop While MaVariable <> 10

J'espère ne pas avoir été trop brusque… :D

Vous êtes désormais en mesure d'utiliser les boucles While, If et Select. Une dernière pour la route ?


Select For

For

While Mieux comprendre et utiliser les boucles

« For », mot anglais traduisible par « pour »

For est indissociable de son To, comme un If a son Then (sauf cas particuliers, tellement particuliers que vous ne les utiliserez pas dans l'immédiat :) ).

Et tel If, For To a un Next (qui correspond à peu près au End If).

Je m'explique. Si je souhaite effectuer une instruction dix fois de suite, je vais écrire ceci :

Dim x As Integer = 0

While x <> 10
   'Instruction à exécuter 10 fois
   x = x + 1  'Augmente x de 1
End While

Je profite de cet exemple pour vous signaler que l'incrémentation d'une variable de 1 peut s'écrire x += 1. Pas besoin de « = », cette instruction seule remplace x = x + 1.
Tant que j'y suis, x -= 1 remplace x = x - 1.

La boucle sera parcourue à dix reprises. Eh bien, For remplace ce code par celui-ci :

Dim x As Integer
For x = 1 to 10
   'Instruction à exécuter 10 fois
Next

Les deux codes effectueront la même chose. Le Next correspond à « ajoute 1 à ma variable ».

Code VB

For

MaVariable

= 1

To

10

Français

Pour

« MaVariable »

de 1

jusqu'à

10


While Mieux comprendre et utiliser les boucles

Mieux comprendre et utiliser les boucles

For TP : La calculatrice

Opérateurs

Vous savez maintenant vous servir des grands types de boucles. Rassurez-vous, tout au long du tutoriel, je vous apprendrai d'autres choses en temps voulu.

Je voulais vous donner de petits éclaircissements à propos des boucles. Pour valider la condition d'une boucle, il existe des opérateurs :

Symbole

Fonction

=

Égal

<>

Différent

>

Strictement supérieur

<

Strictement inférieur

<=

Inférieur ou égal

>=

Supérieur ou égal

Grâce à ces opérateurs, vous allez déjà pouvoir bien exploiter les boucles.
Comment les utiliser ? C'est très simple.

Si vous voulez exécuter un While tant que « x » est plus petit que 10 :

While x < 10

Voilà !

Explication des boucles

Second élément : une boucle est considérée comme vraie si le booléen correspondant est vrai (souvenez-vous du booléen, un type qui ne peut être que vrai ou faux).

En gros, si j'écris le code suivant :

Dim x As Integer = 0
If x = 10 Then
End If

… c'est comme si j'écrivais ceci :

Dim x As Integer = 0
Dim b As Boolean = false
b = (x = 10)
If b Then
End If

Eh oui, quelle découverte ! Si je place un boolean dans la condition, il est inutile d'ajouter If b = true Then.

J'espère vous avoir éclairés… et non enfoncés ! :euh:

And, or, not

Nous pouvons également utiliser des mots dans les boucles !

Non, pas question !

Commençons donc par le mot-clé not, dont le rôle est de préciser à la boucle d'attendre l'inverse.
Exemple : un While not = 10 correspond à un While <> 10.

Et puis ?

Un second mot permet d'ordonner à une boucle d'attendre plusieurs conditions : ce cher ami s'appelle And. Il faut que toutes les conditions reliées par And soient vérifiées.

While MaVariable >= 0 And MaVariable <= 10

Ce code tournera tant que la variable est comprise entre 0 et 10.

Faites attention à rester logiques dans vos conditions :

While MaVariable = 0 And MaVariable = 10

Le code précédent est totalement impossible, votre condition ne pourra donc jamais être vraie…

Ou bien ?

Le dernier mot que je vais vous apprendre pour le moment est Or.
Ce mot permet de signifier « soit une condition, soit l'autre ».

Voici un exemple dans lequel Or est impliqué :

While MaVariable >= 10 Or MaVariable = 0

Cette boucle sera exécutée tant que la variable est supérieure ou égale à 10, ou égale à 0.

Ensemble, mes amis !

Eh oui, ces mots peuvent s'additionner, mais attention au sens.

While MaVariable > 0 And not MaVariable >= 10 Or MaVariable = 15

Ce code se comprend mieux avec des parenthèses : (MaVariable > 0 et non MaVariable >= 10) ou MaVariable = 15.
Donc, cela se traduit par « si MaVariable est comprise entre 1 et 10 ou si elle est égale à 15 ».

J'espère avoir été suffisamment compréhensible. :p


For TP : La calculatrice

TP : La calculatrice

Mieux comprendre et utiliser les boucles Addition

Nous allons enchaîner avec deux travaux pratiques. Sachez que pour ces TP il est absolument inutile de sauter directement à la solution pour se retrouver avec un programme qui fonctionne, mais au final ne rien comprendre. Je l'ai déjà répété à plusieurs reprises, c'est en pratiquant que l'on progresse.

Essayez donc d'être honnêtes avec vous-mêmes et de chercher comment résoudre le problème que je vous pose, même si vous n'y arriverez peut-être pas du premier coup. J'en profiterai également pour introduire de nouvelles notions, donc pas de panique : on y va doucement.

Addition

TP : La calculatrice Minicalculatrice

Cahier des charges

Donc, c'est parti : je veux (j'ai toujours rêvé de dire ça ! :D ) un programme qui effectue l'addition de deux nombres demandés au préalable à l'utilisateur. Attention à prévoir le cas où l'utilisateur ne saisirait pas un nombre.

Vous connaissez déjà la marche à suivre pour demander des nombres, les additionner, afficher le résultat (je l'ai déjà indiqué, au cas où vous ne le sauriez pas), mais un problème subsiste : comment vérifier qu'il s'agit bel et bien d'un nombre ?

IsNumeric()

Il vous faut faire appel à une fonction évoquée précédemment, qui prend en argument une variable (de toute façon, ce sera indiqué lorsque vous le taperez) et renvoie un booléen (vrai si cette variable est un nombre, faux dans le cas contraire).

Il va donc falloir stocker la valeur que la personne a entrée dans une variable de type string.

Et pourquoi pas dans une variable de type integer ? C'est bien un nombre, pourtant ?

Eh bien, tout simplement parce que si la personne entre une lettre il y aura une erreur : le programme ne peut pas entrer de lettre dans un integer, à l'inverse d'un string.

Ensuite, vous allez utiliser la fonction IsNumeric() sur cette variable.

Je vous laisse, alors ? :p Bonne chance !

Module Module1

    Sub Main()
        'Déclaration des variables
        Dim ValeurEntree As String = ""
        Dim Valeur1 As Double = 0
        Dim Valeur2 As Double = 0

        Console.WriteLine("- Addition de deux nombres -")
        'Récupération du premier nombre
        Do
            Console.WriteLine("Entrez la première valeur")
            ValeurEntree = Console.ReadLine()
            'Tourne tant que ce n'est pas un nombre
        Loop Until IsNumeric(ValeurEntree)
        'Écriture de la valeur dans un double
        Valeur1 = ValeurEntree

        'Récupération du second nombre
        Do
            Console.WriteLine("Entrez la seconde valeur")
            ValeurEntree = Console.ReadLine()
            'Tourne tant que ce n'est pas un nombre
        Loop Until IsNumeric(ValeurEntree)
        'Écriture de la valeur dans un double
        Valeur2 = ValeurEntree

        'Addition
        Console.WriteLine(Valeur1 & " + " & Valeur2 & " = " & Valeur1 + Valeur2)

        'Pause factice
        Console.Read()
    End Sub

End Module

Le résultat

- Addition de deux nombres -
Entrez la première valeur
10
Entrez la seconde valeur
k
Entrez la seconde valeur
20
10 + 20 = 30

Je voulais utiliser Do While et non Do Until !

Comme ceci ?

Do
    Console.WriteLine("Entrez la première valeur")
    Valeur1 = Console.ReadLine()
    'Tourne tant que ce n'est pas un nombre
Loop While not IsNumeric(Valeur1)

C'est tout à fait juste.

Et voilà l'occasion d'utiliser le not vu précédemment. Et de toute façon, si vous ne vous souveniez plus de ce mot clé, vous aviez Until à votre disposition !

Autre chose : pourquoi stockes-tu les résultats dans une autre variable, et n'as-tu pas tout de suite utilisé les mêmes variables ?

À cause des types : avec votre suggestion, il aurait fallu mettre Valeur1 et Valeur2 en string, on est d'accord ? Sauf qu'une addition sur un string, autrement dit une chaîne de caractères, même si elle contient un nombre, aura comme effet de « coller » les deux textes. Si vous avez essayé, vous avez dû récupérer un « 1020 » comme résultat, non ? :p

Et pourquoi donc utiliser un Do, et non un simple While ou If ?

Parce qu'avec un If, si ce n'est pas un nombre, le programme ne le demandera pas plus d'une fois. Un simple While aurait en revanche suffi ; il aurait juste fallu initialiser les deux variables sans nombres à l'intérieur. Mais je trouve plus propre d'utiliser les Do.


TP : La calculatrice Minicalculatrice

Minicalculatrice

Addition Jouer avec les mots, les dates

Nous venons donc de réaliser un programme qui additionne deux nombres.

Cahier des charges

Au tour maintenant de celui qui effectue toutes les opérations.

Pardon ?

Oui, exactement. Vous êtes tout à fait capables de réaliser ce petit module. La différence entre les deux applications est simplement un « menu », qui sert à choisir quelle opération effectuer. Je vous conseille donc la boucle Select Case pour réagir en fonction du menu. Autre chose : pensez à implémenter une fonction qui vérifie que le choix du menu est valide.

Vous avez toutes les clés en main ; les boucles et opérations sont expliquées précédemment. Bonne chance ! :)

Module Module1

    Sub Main()
        'Déclaration des variables
        Dim Choix As String = ""
        Dim ValeurEntree As String = ""
        Dim Valeur1 As Double = 0
        Dim Valeur2 As Double = 0

        'Affichage du menu
        Console.WriteLine("-   Minicalculatrice   -")
        Console.WriteLine("-  Opérations possibles -")
        Console.WriteLine("-     Addition : 'a'    -")
        Console.WriteLine("-   Soustraction : 's'  -")
        Console.WriteLine("-  Multiplication : 'm' -")
        Console.WriteLine("-     Division : 'd'    -")

        Do
            Console.WriteLine("- Faites votre choix :  -")
            'Demande de l'opération
            Choix = Console.ReadLine()
            'Répète l'opération tant que le choix n'est pas valide
        Loop Until Choix = "a" Or Choix = "s" Or Choix = "m" Or Choix = "d"

        'Récupération du premier nombre
        Do
            Console.WriteLine("Entrez la première valeur")
            ValeurEntree = Console.ReadLine()
            'Tourne tant que ce n'est pas un nombre
        Loop Until IsNumeric(ValeurEntree)
        'Écriture de la valeur dans un double
        Valeur1 = ValeurEntree

        'Récupération du second nombre
        Do
            Console.WriteLine("Entrez la seconde valeur")
            ValeurEntree = Console.ReadLine()
            'Tourne tant que ce n'est pas un nombre
        Loop Until IsNumeric(ValeurEntree)
        'Écriture de la valeur dans un double
        Valeur2 = ValeurEntree

        Select Case Choix
            Case "a"
                'Addition
                Console.WriteLine(Valeur1 & " + " & Valeur2 & " = " & Valeur1 + Valeur2)
            Case "s"
                'Soustraction
                Console.WriteLine(Valeur1 & " - " & Valeur2 & " = " & Valeur1 - Valeur2)
            Case "m"
                'Multiplication
                Console.WriteLine(Valeur1 & " x " & Valeur2 & " = " & Valeur1 * Valeur2)
            Case "d"
                'Division
                Console.WriteLine(Valeur1 & " / " & Valeur2 & " = ")
                Console.WriteLine("Valeur exacte : " & Valeur1 / Valeur2)
                Console.WriteLine("Résultat entier : " & Valeur1 \ Valeur2)
                Console.WriteLine("Reste : " & Valeur1 Mod Valeur2)
        End Select

        'Pause factice
        Console.Read()
    End Sub

End Module

J'ai choisi de faire appel à une méthode plutôt fastidieuse. En effet, dans la ligne Loop Until Choix = "a" Or Choix = "s" Or Choix = "m" Or Choix = "d", j'ai réécrit toutes les valeurs possibles du menu, mais imaginez-vous dans le cas d'un menu de vingt choix…

Dans cette situation, l'astuce serait d'utiliser un menu à numéros et, carrément, d'exclure une plage avec un nombre supérieur à 10, par exemple.

Voici ce que j'obtiens lorsque je lance le programme :

-   Minicalculatrice   -
-  Opérations possibles -
-     Addition : 'a'    -
-   Soustraction : 's'  -
-  Multiplication : 'm' -
-     Division : 'd'    -
- Faites votre choix :  -
y
- Faites votre choix :  -
d
Entrez la première valeur
255
Entrez la seconde valeur
12m
Entrez la seconde valeur
36
255 / 36 =
Valeur exacte : 7,08333333333333
Résultat entier : 7
Reste : 3

Pour ma part, j'utilise une variable intermédiaire, et je n'effectue pas directement l'opération dans le WriteLine ; mais dans le cas de la division, les résultats ne sont pas toujours justes… Pourquoi ?

Vous avez sûrement dû déclarer votre « variable intermédiaire » en integer. Si c'est le cas, je vous explique le problème : le integer ne sert pas à stocker des nombres à virgule. Essayez de placer cette variable en double pour vérifier. Idem pour les autres variables : si l'utilisateur veut additionner deux nombres à virgule, cela n'ira pas !

Alors, pas sorcier pour le reste ? Du moins, je l'espère. Allez, on passe à la suite ! :)


Addition Jouer avec les mots, les dates

Jouer avec les mots, les dates

Minicalculatrice Les chaînes de caractères

Nous venons de voir comment travailler avec des variables de type numérique.

Mais votre clavier vous permet aussi d'écrire des mots, non ? Il faut donc désormais apprendre à utiliser ses capacités. Nous allons donc nous tourner vers les variables de type caractère et chaîne de caractères.

Et puis pour continuer dans les nouveaux types de variables, nous allons aussi en profiter pour étudier les variables temporelles de type date.

D'ici peu de temps vous pourrez modifier des mots aussi rapidement que des nombres.

Les chaînes de caractères

Jouer avec les mots, les dates Les dates, le temps

Remplacer des caractères

On va commencer par la fonction la plus simple : le Replace() qui, comme son nom l'indique, permet de remplacer des caractères ou groupes de caractères au sein d'une chaîne.

La syntaxe est la suivante :

Dim MonString As String = "Phrase de test"
MonString = MonString.Replace("test", "test2")

Le premier argument de cette fonction est le caractère (ou mot) à trouver, et le second, le caractère (ou mot) par lequel le remplacer.
Dans cette phrase, le code remplacera le mot « test » par « test2 ».

Si vous avez bien assimilé le principe des fonctions, des variables peuvent être utilisées à la place des chaînes de caractères en « dur ».

Mettre en majuscules

La fonction ToUpper() se rattachant à la chaîne de caractères en question (considérée comme un objet) permet cette conversion.
Elle s'utilise comme suit :

Dim MonString As String = "Phrase de test"
MonString = MonString.ToUpper()

Cette phrase sera donc mise en MAJUSCULES.

Mettre en minuscules

Cette fonction s'appelle ToLower() ; elle effectue la même chose que la précédente, sauf qu'elle permet le formatage du texte en minuscules.

Dim MonString As String = "Phrase de test"
MonString = MonString.ToLower()

Ces petites fonctions pourront sûrement nous être utiles pour l'un de nos TP. :p


Jouer avec les mots, les dates Les dates, le temps

Les dates, le temps

Les chaînes de caractères TP sur les heures

Nous passons donc aux dates et à l'heure. Il s'agit d'un sujet assez sensible puisque, lorsque nous aborderons les bases de données, la syntaxe d'une date et son heure sera différente de la syntaxe lisible par tout bon francophone (âgé de plus de deux ans).

Tout d'abord, pour travailler, nous allons avoir besoin d'une date. Ça vous dirait, la date et l'heure d'aujourd'hui ? Nous allons utiliser l'instruction Date.Now, qui nous donne… la date et l'heure d'aujourd'hui, sous la forme suivante :

16/06/2009 21:06:33

La première partie est la date ; la seconde, l'heure.

Nous allons ainsi pouvoir travailler. Entrons cette valeur dans une variable de type… date, et amusons-nous !

Récupérer uniquement la date

La première fonction que je vais vous présenter dans ce chapitre est celle qui convertit une chaîne date, comme celle que je viens de vous présenter, mais uniquement dans sa partie « date ».

Je m'explique : au lieu de « 16/06/2009 21:06:33 » (oui, je sais, il est exactement la même heure qu'il y a deux minutes…), nous obtiendrons « 16/06/2009 ».

ToShortDateString()

Cette fonction s'utilise sur une variable de type date. J'ignore si vous vous souvenez de mon petit interlude sur les objets et fonctions, au cours duquel je vous ai expliqué que le point (« . »)