langage

Ce chapitre est très important car il constitue les bases de la programmation orientée objet (POO). Si vous êtes débutants, vous ne pouvez pas passer ce chapitre.

Bon trêve de paroles, passons aux choses sérieuses !

variable

La base essentielle de tous les langages de programmation est la déclaration de variables.

definition

En programmation, une des choses essentielle est l'utilisation des variables. Une variable est une sorte de boîte qui contient une valeur. Par exemple, je mets une chaussure dans une boite. La 'boite' représente la variable et la valeur est la 'chaussure'. L'intérêt principal des variables est leur utilisation ultérieure. En effet, on peut utiliser une variable à n'importe quel moment dans le programme en fonction de la portée de cette variable. (Voir chapitre sur la portée des variables)

En ce qui concerne les noms des variables, on peut utiliser des majuscules, minuscules et chiffres. Les espaces et autres caractères spéciaux ne sont pas acceptés (accents, @, .).

Attention : Le nom de la variable ne peut pas commencer par un chiffre !


NB : Je vous conseille de donner des noms explicites aux variables pour ne pas vous y perdre dans le programme. De plus, mettez la première lettre de votre variable en majuscule. Si votre variable est composée de plusieurs noms, séparez les par des « _ » ou mettez une majuscule à chaque nouveau mot. (préférez la première méthode)

Maintenant pour utiliser une variable, il faut avant tout la déclarer et l’instancier dans certains cas. Pour cela on utilise le mot clé Dim pour la déclarer et New pour l'instancier. De plus, il vaut lui assigner un type (Voir plus loin dans le chapitre)

On peut aussi instancier les variables précédentes comme cela :

Une variable peut aussi être instanciée par une fonction :

types

Il existe une multitude de types de variable. A notre niveau, on en utilisera essentiellement 4 : String, Integer, Boolean et Byte

Regroupons tous les types dans un tableau :

Type de variable Mémoire occupée Plage de nombres acceptés
Boolean 2 octets True (1) ou False (0)
Byte 1 octet De 0 à 255
Char 2 octets De 0 à 65 535
Date 8 octets Dates entre le 1 Janvier 0001 et le 31 Décembre 9999
Decimal 16 octets + / - 79 228 162 514 264 337 593 543 950 335 sans séparateur décimal sinon + / - 7.9 228 162… avec 28 chiffres après le séparateur décimal
Double 8 octets - 1,79769313486231E+308 à - 4.94065645841247E-324 (nombres négatifs) et 4.94065645841247E-324 à 1,79769313486231E+308 (nombres positifs)
Integer 4 octets De - 2 147 483 648 à 2 147 483 647
Long 8 octets De - 9 223 372 036 854 775 808 à 9 223 372 036 854 775 807
Short 2 octets De - 32 768 à 32 767
Single 4 octets De - 3.402823E-45 à - 1.401298E+38
String Variable 0 à 2 milliards de caractères Unicode

Utilisation de ces différents types de variable :

  • Boolean : Retourne True ou False
  • Byte : Pour lire un fichier
  • Char : Pour les caractères alphanumériques
  • Date : Pour les dates
  • Decimal : Pour les nombre décimaux
  • Double : Pour les grands nombres à virgule (avec double précision)
  • Integer : Pour les nombres entiers
  • Long : Pour les nombres entiers grands
  • Short : Pour les nombres entiers petits
  • Single : Pour les grands nombres à virgule (avec simple précision)
  • String : Pour les chaînes de caractères

NB : Utiliser les types qui prennent le moins de mémoire. Par exemple, si vous souhaitez stocker une note dans votre variable, utilisez le type Integer mais n’utilisez pas le type Long dans la mesure où votre variable sera comprise entre 0 et 20 (ou 40 ou 100 en fonction des examens lol)

NB 2 : Une chaîne de caractères n’est en fait que du texte (« Je suis gentille ») et elle se met TOUJOURS entre guillemets contrairement aux nombres !

NB 3 : En VB.NET 2005 (dernière version de Microsoft), il existe 4 autres types de variables mais cela ne concerne pas notre cours.

convertir

Dans tous les langages de programmation, il peut être utile voire même nécessaire de convertir des variables d’un type dans un autre type. Cela permet d’éviter la création de nouvelles variables qui alourdiraient le programme.

Tableau récapitulatif des fonctions permettant de convertir des variables :

Fonction Type
CBool Boolean
CByte Byte
CChar Char
CDate Date
CDbl Double
CDec Decimal
CInt Integer
CLng Long
CObj Object
CShort Short
CSng Single
CStr String

Attention : Dans le langage VB.NET, la virgule n'existe pas. On utilise le point qui remplace la virgule.

Noter que ces fonctions sont construites à partir de C (pour Convert) et de l’abréviation du type.

Pour convertir un Object dans un type (String, Integer…), on utilise la commande CType. Exemple : CType(a, String) ‘a va être convertit en ‘String’

portee

Une variable peut être utilisée que si elle est visible dans le programme. Pour définir le niveau de visibilité de chaque variable, il existe un mot clé propre à chaque cas.

Tableau qui recence la portée des variables :

Mot clé Portée de la variable
Public Partout dans le programme.
Private Partout dans la classe ou le module où elle a été créée.
Dim Seulement dans la procédure ou la fonction créée.
Protected Les membres Protected sont similaires aux Private, mais ils ont une particularité en cas d'héritage. Ce point ne sera pas abordé.
Friend Les membres Friend ne sont accessibles qu'à l'intérieur du projet, et pas par des éléments extérieurs au projet en cours.
Shared Permet de partager une variable. N’est pas indispensable.

NB : Ce tableau est aussi valable pour la portée des procédures et des fonctions

Cependant, il est déconseillé d’utiliser des variables globales (publics) car cela est une source importante d’erreurs. Pour affecter une valeur à une variable public, il est préférable de passer par une procédure d’affectation.

Bien sûr, il est possible de faire directement :

mais cela est source d’erreurs… En effet, vous pouvez modifier la variable à tout moment sans même vous en rendre compte ! A utiliser à vos risques et périls.

condition

Les conditionnelles comme les boucles permettent de gérer le déroulement du code. Il existe deux grands types de conditionnelles : celles avec "If - Then" et celles avec "Select Case - End Select"

if then

Structure générale :

  • If : Mot clé signifiant " si " et qui ouvre la structure
  • Then : Mot clé signifiant " alors "
  • Else : Mot clé signifiant " sinon "
  • End If : Mot clé permettant de fermer la structure

En français : Si la condition 1 est vraie alors on exécute le bloc Then sinon on exécute le bloc Else

On peut tester une condition fausse et dans ce cas utiliser Not.

Il peut y avoir des opérateurs logiques dans la condition :

Des structures If – Then peuvent être imbriquées. C'est-à-dire que l’on peut emboîter plusieurs conditions dans une seule condition :

Astuce : Pour ne pas vous trompez, utiliser les tabulations et décaler chaque structure et son code au même niveau. Pour vérifier s’il n’y a pas d’erreur, comptez les If, il doit y en avoir autant que des End If. Visual Studio vous avertira en cas d'erreur.

Autre syntaxe possible :

Exercice : Créer une structure permettant de sécuriser ton MSN :

  • Déclare ton code secret dans une variable.
  • Si le code est bon alors afficher dans une MessageBox : "Accès autorisé" sinon afficher dans cette même MessageBox : "Accès refusé"
select case

Cette structure est très utile pour tester un grand nombre de possibilités en fonction de la valeur d’une expression :

Structure générale :

  • Select Case : Mot clé permettant d'ouvrir la structure
  • Case : Représente les différents cas (Case 1 = cas 1, Case 2 = cas 2, Case Else = autre cas…)
  • End Select : Mot clé permettant de fermer la structure
  • X : Expression à évaluer (nombre, chaîne de caractères, booléen…)
  • faire Y : Exécute le cas 1
  • faire Z : Exécute le cas 2
  • faire A : Exécute le cas Else

Prenons un exemple : Un serveur envoie un certain code mais on ne sait pas si c'est le 1, le 2 ou un autre (comme 1000, 453, 876…) et vous voulez vous connecter si le code envoyé correspond au 1, vous déconnecter s'il correspond au 2 et afficher un message d'erreur si c'est un autre code autre que le 1 et le 2.

Voilà la structure :

La structure précédente est relativement simple mais limitée. On peut aussi utiliser d’autres types d’expressions plus complexes et plus pratiques :

Plusieurs expressions peuvent être séparées par des virgules.

  • Le mot-clé To permet de définir les limites d'une plage de valeurs correspondantes pour N.
  • Le mot-clé Is associé à un opérateur de comparaison (= <> < <= > ou >=) permet de spécifier une restriction sur les valeurs correspondantes de l’expression. Si le mot-clé Is n'est pas indiqué, il est automatiquement inséré.
  • Enfin, vous pouvez aussi indiquer des plages et des expressions multiples pour des chaînes de caractères. Dans l'exemple suivant, Case correspond aux chaînes qui sont absolument identiques à ttt, aux chaînes comprises entre bbb et eee dans l'ordre alphabétique, ainsi qu'à la valeur de Nombre :

Vous pouvez aussi mixer les différents cas précédents.

Exercice : Reprendre le même exercice que précédemment (avec IF…Then…Else) mais en changeant la structure.

boucles

Les boucles permettent de répéter un bloc d'instruction autant de fois qu'on l'a indiqué à la boucle. Elles sont très utilisées pour faire des calculs itératifs (Méthode d'Euler) ou pour lister le contenu d'un tableau. Il en existe quatre types majeurs : celles avec "For - Next", celles avec "Do - Loop", celles avec "While - End While" et celles avec "For Each - Next"

for next

Structure générale :

  • For : Mot-clé permettant d’ouvrir la boucle.
  • To : Mot-clé signifiant Jusqu’à.
  • Next : Mot-clé pour fermer la boucle.
  • Variable : Variable qui va servir de compteur pour la boucle.
  • Debut : Début du compteur.
  • Fin : Fin du compteur.

La variable i va s’incrémenter automatiquement de 1 à la fin de chaque boucle.

On peut aussi définir un pas, le compteur s’incrémente de la valeur du pas à chaque boucle :

NB : On peut aussi utiliser un pas négatif mais cela est plus compliqué.

La variable de la boucle peut être déclarée en même temps que la boucle. De plus, la variable après le Next est facultative.

Dernière chose, on peut quitter la boucle prématurément :

do loop

Structure générale :

  • Do : Mot-clé qui ouvre la boucle.
  • Loop : Mot-clé qui ferme la boucle.
  • While : Mot-clé qui signifie Tant que.
  • Until : Mot-clé qui signifie Jusqu’à ce que.
  • Condition : La condition pour rester dans un Loop While ou pour sortir d'un Loop Until.

Attention : Le premier élément d'un tableau est toujours à l'indice 0.
Le dernier élément d'un tableau est toujours à l'indice Length - 1 (dans l'exemple 7 - 1 = 6)


while

Structure générale :

  • While : Mot-clé permettant d’ouvrir la boucle.
  • End While : Mot-clé qui ferme la boucle.
  • Condition : La condition pour rester dans la boucle.
foe each

Structure générale :

  • For : Mot-clé pour ouvrir la boucle.
  • Each : Mot-clé signifiant Chaque.
  • In : Mot-clé signifiant Dans.
  • Next : Mot-clé pour fermer la boucle.
  • Item : Objet à récupérer dans la collection.
  • Collection : Tableau qui contient des Objets.

La structure For Each – Next est donc très utile pour tester une chaîne de caractère.

operateur

Pour travailler avec les variables on utilise des opérateurs. Il en existe de trois sortes : les opérateurs d'arithmétiques et de concaténation (mise bout à bout de chaîne de caractères), les opérateurs de logiques et les opérateurs de comparaisons.

arithmetique
Opérateur Opération réalisée par l’opérateur
+ Additionne deux nombres
- Soustrait deux nombres
* Multiplie deux nombres
/ Divise deux nombres et retourne un nombre à virgule flottante (décimal)
\ Divise deux nombres et retourne un entier
Mod (ou Modulo) Divise deux nombres et retourne seulement le reste
^ Elève à la puissance un nombre
& Additionne (concatène) deux chaînes
logique

Les opérateurs de logique manipulent des valeurs True ou False.

Opérateur Syntaxe Emploi
And (et) Var_1 And Var_2 True si Var_1 et Var_2 sont vraies
Or (ou) Var_1 Or Var_2 True si une des deux est vraie
Xor (ou exclusif) Var_1 Xor Var_2 True si une et une seule est vraie
Not (non) Not Var True si Var est faux et vice versa
comparaison

Les opérateurs de comparaison comparent deux nombres ou chaînes pour voir si ces nombres ou chaînes sont égaux, différents, supérieurs ou inférieurs.

Opérateur Signification
>   Strictement supérieur à
<   Strictement inférieur à
>= Supérieur ou égal à
<= Inférieur ou égal à
<> Différent de
= Egal à
constantes

Les constantes sont des variables qui ne peuvent pas être la cible d’une assignation, c'est-à-dire que leur valeur ne peut pas être modifiée. Pour déclarer une constante on utilise le mot-clé Const. Un avantage majeur des constantes est qu’elles améliorent la lisibilité du code et son exécution.

Les énumérations sont des structures qui permettent de créer une liste de constantes. Pour cela on utilise le mot-clé Enum

Les énumérations comme les constantes allègent le programme et le rende plus clair.

tableaux

Un tableau regroupe des éléments de même type et les rend accessibles par un indice entier. Pour créer un tableau, on procède comme ceci :

Attention : Les index d’un tableau commencent toujours à 0. Le premier élément dans un tableau est toujours à l'indice 0. (dans l’exemple 6) + 1 = 7

On peut modifier des valeurs dans le tableau :

Le tableau contient donc les valeurs suivantes :

98
0
3
0
0
0
0

Pour assigner un élément du tableau à une variable, on procède comme ceci :

Pour effacer un tableau et récupérer la mémoire allouée par le tableau :

Pour réinitialiser le tableau (remise à zéro des éléments) :

Pour parcourir un tableau, rien de plus simple. On utilise généralement une boucle :

Il existe une classe spéciale pour les tableaux ArrayList et SortedList.

options

Il existe seulement trois types d'option de codage dont deux sont très utilisés. Ces options permettent un meilleur codage et une meilleure compréhension du code. Le fait de les activer empêche le programmeur de faire des erreurs de logique implicites (conversions implicites ou liaisons tardives par exemple).

Voilà comment les utiliser :

Option Strict Off permet de faire n'importe quoi. C'est du Basic au mauvais sens du terme.
Option Strict On oblige à une grande rigueur. C'est du VB.Net

Je vous conseille de laisser Option Explicit à On, ce qui oblige à déclarer toutes les variables avant de les utiliser. Dans ce cas si vous tapez le nom d'une variable non déclarée, VB.NET génère une erreur.

Par défaut, l’Option Explicit est activée et l’Option Strict désactivée. En revanche, les deux options sont désactivées par défaut sous Visual Basic 2003 !

conclusion

Désormais, vous connaissez toutes les bases de la programmation orientée objet (POO). Vous êtes enfin prêt à créer vous propres applications !

Pour vous aidez à faire des applications attractives et fonctionnelles... rendez vous dans les prochains chapitres...