Ce cours est visible gratuitement en ligne.

Paperback available in this course

Ce cours existe en eBook.

Got it!
Apprenez à programmer en VB .NET
Last updated on Monday, June 24, 2013
  • 4 semaines
  • Facile

Premiers pas

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 !

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 !

Objets, fonctions…

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.

Fonctions, arguments

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 !

  • Une fonction permet d'effectuer des traitements. Elle peut contenir des arguments (ou paramètres).

  • Dans un projet de type console, la fonction Main() est celle appelée lors du démarrage du programme.

  • Chaque ligne de programme est une instruction.

Example of certificate of achievement
Example of certificate of achievement