Vous êtes sur la page 1sur 76

Visual Basic.

NET

1
1)- Les bases du langage VB.NET
1.1 Introduction

Nous traitons VB.NET d'abord comme un langage de programmation classique.

Nous aborderons les objets ultérieurement.

Dans un programme on trouve deux choses

-des données

-les instructions qui les manipulent

On s'efforce généralement de séparer les données des instructions :

+--------------------+
¦ DONNEES ¦
+--------------------¦
¦¦
¦ INSTRUCTIONS ¦
¦¦
+--------------------+ 2
1.2 Les données de VB.NET

VB.NET utilise les types de données suivants:

1. les nombres entiers, réels et décimaux


2. les caractères et chaînes de caractères
3. les booléens
4. les dates
5. les objets
1.2.1 Les types de données prédéfinis

Type VB Type .NET équivalent Taille

Boolean System.Boolean 2 octets.


Byte System.Byte 1 octet
Char System.Char 2 octets
Date System.DateTime 8 octets
Decimal System.Decimal 16 octets
Double System.Double 8 octets.
Long System.Int64 8 octets
Object System.Object 4 octets
Short System.Int16 2 octets
Single System.Single 4 octets
String System.String (classe) 3
exemple de programme
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' nombres entiers
Dim var1 As Integer = 100
Dim var2 As Long = 10000000000L
Dim var3 As Byte = 100
Dim var4 As Short = 4
' nombres réels
Dim var5 As Decimal = 4.56789D
Dim var6 As Double = 3.4
Dim var7 As Single = -0.000103F
' date
Dim var8 As Date = New Date(2003, 1, 1, 12, 8, 4)
' booléen
Dim var9 As Boolean = True
' caractère
Dim var10 As Char = "A"c
' chaîne de caractères
Dim var11 As String = "abcde"
' objet
Dim var12 As Object = New Object
' affichages
Console.Out.WriteLine("var1=" + var1.ToString)
Console.Out.WriteLine("var2=" + var2.ToString)
Console.Out.WriteLine("var3=" + var3.ToString)
Console.Out.WriteLine("var4=" + var4.ToString)
Console.Out.WriteLine("var5=" + var5.ToString)
Console.Out.WriteLine("var6=" + var6.ToString)
Console.Out.WriteLine("var7=" + var7.ToString)
Console.Out.WriteLine("var8=" + var8.ToString)
Console.Out.WriteLine("var9=" + var9.ToString)
Console.Out.WriteLine("var10=" + var10)
Console.Out.WriteLine("var11=" + var11)
Console.Out.WriteLine("var12=" + var12.ToString) 4
End Sub
L'exécution donne les résultats suivants :

5
Notation des données littérales

Integer 145, -7, &FF (hexadécimal)


Long 100000L
Double 134.789, -45E-18 (-45 10-18)
Single 134.789F, -45E-18F (-45 10-18)
Decimal 100000D
Char "A"c
String "aujourd'hui"
Boolean true, false
date New Date(2003, 1, 1) pour le 01/01/2003

On notera les points suivants :

- 100000L, le L pour signifier qu'on considère le nombre comme un entier long


- 134.789F, le F pour signifier qu'on considère le nombre comme un réel simple
précision
- 100000D, le D pour signifier qu'on considère le nombre comme un réel décimal
- "A"c, pour transformer la chaîne de caractères "A" en caractère 'A'
- la chaîne de caractères est entouré du caractère ". Si la chaîne doit contenir le
caractère ", on double celui-ci comme dans
"abcd""e" pour représenter la chaîne [abcd"e].

6
Déclaration des données
Rôle des déclarations
Un programme manipule des données caractérisées par un nom et un type. Ces données sont stockées en mémoire.

Déclaration des constantes

La syntaxe de déclaration d'une constante est la suivante :

const identificateur as type=valeur

Déclaration des variables


Une variable est identifiée par un nom et se rapporte à un type de données. VB.NET ne fait pas la

différence entre majuscules et minuscules. Ainsi les variables FIN et fin sont identiques. Les variables

peuvent être initialisées lors de leur déclaration. La syntaxe de déclaration d'une ou plusieurs variables est :

dim variable1,variable2,...,variablen as identificateur_de_type

où identificateur_de_type est un type prédéfini ou bien un type défini par le programmeur.

7
Les conversions entre nombres et chaînes de caractères

nombre -> chaîne nombre.ToString ou "" & nombre ou CType(nombre,String)

objet -> chaîne objet.ToString

chaine -> Integer Integer.Parse(chaine) ou Int32.Parse

chaîne -> Long Long.Parse(chaine) pu Int64.Parse

chaîne -> Double Double.Parse(chaîne)

chaîne -> Single Single.Parse(chaîne)

8
Les conversions de type
Il existe un certain nombre de fonction prédéfinies permettant de passer d'un type de données à un autre. Leur liste
est la suivante :

CBool,CByte,CChar,CDate,CDbl,CDec,CInt,CLng,CObj,CShort,CSng,CStr

On peut également utiliser la fonction CType(expression, type) comme le montre le programme suivant :

9
On remarquera que les nombres réels sous forme de chaîne de caractères doivent utiliser la virgule et non le point
10
décimal. Ainsi on écrira Dim d As Double = -14.98 mais Dim d1 As Double = Double.Parse("100,87")
11
Ecriture sur écran

Il existe différentes instructions d'écriture à l'écran :

Console.Out.WriteLine(expression)

Console.WriteLine(expression)

Console.Error.WriteLine (expression)

Lecture de données tapées au clavier


Le flux de données provenant du clavier est désigné par l'objet Console.In de type StreamReader. Ce type

d'objets permet de lire une ligne de texte avec la méthode ReadLine :

Dim ligne As String = Console.In.ReadLine()

La ligne tapée au clavier est rangée dans la variable ligne et peut ensuite être exploitée par le programme.Le

flux In peut être redirigé vers un fichier comme les flux Out et Error.

12
Exemple d'entrées-sorties

13
Affectation de la valeur d'une expression à une variable

On s'intéresse ici à l'opération variable=expression. L'expression peut être de type : arithmétique,


relationnelle, booléenne, caractères.

Liste des opérateurs

( affectation )

Priorités dans l'évaluation des expressions arithmétiques

La priorité des opérateurs lors de l'évaluation d'une expression arithmétique est la suivante (du plus prioritaire au moins prioritaire)

14
séquence d'instructions Exercice
Exercice 11 (Solution)
(Solution)
Écrire un algorithme qui permet de saisir des valeurs pour A et B ,
faire la somme et afficher le résultat?

Solution :
A)- Analyse
Données : A,B saisis par clavier
Résultats : S
Traitements : S:=A+B

B)- Algorithme

A,B,S en entier

Début
Écrire(« Entrer la valeur de A: »)
Lire(A)

Écrire(« Entrer la valeur de B: »)


Lire(B)

S:=A+B

Écrire(« La somme de A et B est: » S)


15
Fin
séquence d'instructions Exercice 22 (Solution)
Exercice (Solution)
Écrire un algorithme qui permet de calculer et afficher la surface
d’un cercle?

Solution :
A)- Analyse
Données : R et P saisis par clavier
Résultats : S
Traitements : S:=R*R*P

B)- Algorithme

R,P,S en entier

Début
Écrire(« Entrer la valeur de R: »)
Lire(R)

Écrire(« Entrer la valeur de P: »)


Lire(P)

S:=R*R*P

Écrire(« La surface est: » S)


Fin 16
séquence d'instructions Exercice 33 (Solution)
Exercice (Solution)
Écrire un algorithme qui permet de calculer et afficher le salaire brut
d’un ouvrier connaissant le nombre d’heure et le tarif d’horaire?

Solution :
A)- Analyse
Données : H et TH saisis par clavier
Résultats : SB
Traitements : SB:=H*TH

B)- Algorithme

H,TH,S en entier

Début
Écrire(« Entrer la valeur de H: »)
Lire(H)

Écrire(« Entrer la valeur de TH: »)


Lire(TH)

SB:=H*TH

Écrire(« Le salaire brut est: » S)


Fin 17
Structure Alternative

If Condition Then
……………
End if

Si la Condition est vraie alors……

Une instruction (ou un bloc d’instructions) peut être exécutée si une condition est vraie.

Exemple:

If A=B then
MsgBox("A=B")
End If

If Condition1 Then
If A=B Then MsgBox("A=B")
..
ElseIf condition2 Then
If A=B then ..
MsgBox("A=B")
Else
ElseIf condition3 Then
MsgBox("A différend de B") ..
End If end if

18
structure alternative Exercice
Exercice (Solution)
(Solution)
On désire comparer deux valeurs ,Écrire un algorithme qui affiche la
plus grande des deux?
A)- Analyse
Solution :
Données : A et B saisis par clavier
Résultats : A ou B
Traitements : A < B

B)- Algorithme
A,B en réel

Début
Écrire(« Entrer la valeur de A: »)
Lire(A)

Écrire(« Entrer la valeur de B: »)


Lire(B)

Si A < B Alors
Écrire(« la plus grande valeur est: » B)
SINON
Écrire(« la plus grande valeur est: » A)
FinSi
Fin 19
structure alternative Exercice
Exercice 22 (Solution)
(Solution)
Afficher le résultat de fin d’année pour un étudiant connaissant sa
moyenne générale?

Solution :
A)- Analyse
Données : Moy saisi par clavier
Traitements : Moy<=10,Moy<12,Moy<14,Moy=>14
B)- Algorithme
Moy en réel
Début
Écrire(« Entrer la Moyenne: »)
Lire(Moy)

Si Moy < 10 Alors


Écrire(« Le résultat de l’étudiant est: Doublant»)
SinonSi Moy < 12 Alors
Écrire(« Le résultat de l’étudiant est: Admis»)
SinonSi Moy < 14 Alors
Écrire(« Le résultat de l’étudiant est: Bien»)
Sinon
Écrire(«Le résultat de l’étudiant est: » très Bien)
FinSi
Fin 20
Structure de répétition

21
22
23
structure répétitive Exercice
Exercice 11
Écrire un algorithme qui saisie 15 entier et affiche leur somme et leur
moyenne ?

Solution : A)- Analyse


Données : N, Val saisis par clavier
Résultats : Moy, Somme
Traitements : Somme:=Somme + Val
Moy :=Somme/N
B)- Algorithme

N,i en entier
Moy, Somme,val en réel

Début
Somme:=0
i:=0
Pour i allant de 1 à 15 faire
Écrire(« entrer une valeur: »)
Lire(val)
Somme:=Somme+val
FinPour
Moy:=Somme/N
Écrire(« La somme: » Somme)
Écrire(« La moyenne: » Moy)
Fin

24
Exercice 5.1

Écrire un algorithme qui demande à l’utilisateur un nombre compris entre 1 et 3 jusqu’à ce


que la réponse convienne.

25
Exercice 5.2

Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la réponse
convienne. En cas de réponse supérieure à 20, on fera apparaître un message : « Plus petit ! »,
et inversement, « Plus grand ! » si le nombre est inférieur à 10.

26
Calcul sur le cercle
Ce TP consiste à faire un programme qui calcule la circonférence et la surface
d’un cercle en fonction du rayon de ce cercle.

Voici le dialogue à l’écran correspondant :

Calcul d’un cercle

Quel est le rayon du cercle : 0,75


Sa circonférence est de : 4,71239
Sa surface est de : 1,76716

Voulez-vous faire un autre calcul (O/N) :O


Quel est le rayon du cercle : 27
Sa circonférence est de : 169,646
Sa surface est de : 2290,22104

Voulez-vous faire un autre calcul (O/N) :N


Au revoir et à bientôt !

27
TP2 - Équation du second degré
Écrire le programme qui calcule les racines de l’équation du deuxième degré
Y= ax2 + bx + c.
Voici le dialogue à l’écran correspondant :

RACINE DE L’ÉQUATION DU 2ÈME DEGRÉ


y = ax2 + bx + c
Quelle est la valeur de a :5
Quelle est la valeur de b :3
Quelle est la valeur de c :2
L’équation ne possède pas de racine réelle : d = -31

Voulez-vous faire un autre calcul (O/N) :O

Quelle est la valeur de a : -2


Quelle est la valeur de b : 0,6
Quelle est la valeur de c : 0,5
L’équation possède deux racines distinctes : d = 4,36
L’équation s’annule pour : x1 = - 0,37
et : x2 = 0,67

28
Voulez-vous faire un autre calcul (O/N) :O

Quelle est la valeur de a :2


Quelle est la valeur de b :2
Quelle est la valeur de c : 0,5
L’équation possède une racine double :d=0
L’équation s’annule pour : x1 = x2 = -0,5

Voulez-vous faire un autre calcul (O/N) : O


Quelle est la valeur de a : 0
Quelle est la valeur de b : 2
Quelle est la valeur de c : 0,5
L’équation est du premier degré !
L’équation s’annule pour x = - (c/b) : -0,25

Voulez-vous faire un autre calcul (O/N) : O


Quelle est la valeur de a : 0
Quelle est la valeur de b : 0
Quelle est la valeur de c : 0,5
L’équation n’en est plus une !!!

Voulez-vous faire un autre calcul (O/N) :N


Au revoir et à bientôt ! 29
Exercice
Exercice 66

Le représentant d’une société de distribution des produits d’affichage


électroniques sont rémunérés de façon suivante :

¾ un fixe mensuel de 4000 DH


¾ une commission a pourcentage variable sur chaque tranche du chiffre d’affaire mensuel :
™ une commission de 5% pour un chiffre d’affaire compris entre 0 et 1000.
™ une commission de 10% pour un chiffre d’affaire compris entre 1000 et 3000.
™ une commission de 14% pour un chiffre d’affaire supérieur à 3000.

Faire un programme qui permet de calculer et afficher le montant total de la


rémunération de chaque représentant.

En utilisant une boucle.

30
Exercice
Exercice 77

Une salle de cinéma désire automatiser la gestion de la billetterie pour chaque client qui
se présente, on calcule le prix du billet en fonction des données suivantes:

ƒ NF : Numéro du fil
ƒ HS : heure de la séance
ƒ Age : Age de spectateur

Le prix normal de la facture est de 30 DH, cependant des remises peuvent


être accorder en fonction du critères suivants :

NF=2 ou Age < 15 ou HS>20 remise de 50%


NF=2 et Age >75 remise 25%
NF=3 et Age < 15 entrée refusée

Faire un programme qui permet de calculer et décider le prix à payer pou


chaque client qui se présente . on arrête la saisie par "non"

31
Les tableaux de données
Un tableau VB.NET est un objet permettant de regrouper des données de même type et d'utiliser un numéro, appelé
index ou indice, pour les distinguer. Sa déclaration est la suivante :

Dim Tableau(n) as type ou Dim Tableau() as type=New type(n) {}

où n est l'indice du dernier élément de tableau. La syntaxe Tableau(i) désigne la donnée n° i où i appartient à
l'intervalle [0,n]. Toute référence à la donnée Tableau(i) où i n'appartient pas à l'intervalle [0,n] provoquera une
exception. Un tableau peut être initialisé en même temps que déclaré. Dans ce cas, on n'a pas besoin d'indiquer le
n° du dernier élément.

Dim entiers() As Integer = {0, 10, 20, 30}

Les tableaux ont une propriété Length qui est le nombre d'éléments du tableau.

Dim Tableau(3) As Integer entraîne la création des variables 'Integer' suivante:

Tableau (0)
Tableau (1)
Tableau (2)
Tableau (3)

Contenu du tableau:

0
0
0
0

32
Dim Tableau(3) comporte 4 éléments (éléments d'index 0 à 3).

Tableau(1)= 12 permet d’affecter le nombre 12 au 2eme élément du tableau.

0
12
0
0

S=Tableau(1) permet d’affecter à la variable S le 2eme élément du tableau.

Un tableau peut avoir plusieurs dimensions :

Dim T(2,2)

élément:0,0 élément:0,1 élément:0,2

élément:1,0 élément:1,1 élément:1,2

élément:2,0 élément:2,1 élément:2,2


33
Exemple:

La première ligne comporte les 3 éléments: T(0,0) T(0,1) et T(0,2)


Pour mettre 33 dans l'élément central:

Dim T(2.2) As Integer 0 0 0


T(1,1)=33
0 33 0
voyons le contenu du tableau:
0 0 0

Il est possible de créer des tableaux à 3, 4 ..dimensions:

Exemple:

Dim T(3,1,2) crée un tableau de 4X2X3 éléments.

34
Un tableau est un objet

Créons 2 tableaux et examinons les principales méthodes.

Dim a(3) As String

Dim b(3) As String

b=a.clone ‘Copie le tableau a dans b

La Classe Array.

Tous les tableaux viennent de la classe Array; vous pouvez accéder aux méthodes et

propriétés de System.Array de chaque tableau Par exemple,

• la propriété Rank retourne le nombre de dimension du tableau


• la méthode Sort trie ses éléments.

35
Exemple :

Soit un tableau Mois()

Clear

Array.Clear(Mois,0,2) ‘Efface 2 éléments du tableau Mois à partir de l’élément 0

Reverse

Array.Reverse(Mois) ‘inverse les 3 éléments à partir de l’élément 1

Copy

Array.Copy(Mois1,Mois2,20) copie 20 éléments de Mois vers Mois2

Sort

Array.sort(Mois) Trie le tableau Mois

Malheureusement cette méthode marche sur des tableaux unidimensionnels uniquement.

36
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim a() As String = New String(3) {"youness", "amine", "morad", "dalila"}
Dim b(3) As String
Dim c(3) As String

b = a.Clone 'Copie le tableau a dans b

For i As Integer = 0 To b.Length - 1


MsgBox(b(i))
Next

Array.Clear(b, 0, 2)
For i As Integer = 0 To b.Length - 1
MsgBox(b(i))
Next

Array.Reverse(a)
For i As Integer = 0 To a.Length - 1
MsgBox(a(i))
Next

Array.Copy(a, c, 3)
For i As Integer = 0 To c.Length - 1
MsgBox(c(i))
Next

Array.Sort(c)
For i As Integer = 0 To c.Length - 1
MsgBox(c(i))
Next 37
End Sub
Equals compare 2 tableaux.

Binarysearch recherche un élément dans un tableau trié unidimensionnel.

Exemple :

I=Array.BinarySearch(Mois, "Février") ‘retourne I=1

IndexOf

Recherche un objet spécifié dans un tableau unidimensionnel (trié ou non), retourne l'index

de la première occurrence.

Dim myIndex As Integer = Array.IndexOf(myArray, myString)

Retourne -1 si l'élément n'est pas trouvé.

LastIndexOf fait une recherche à partir de la fin.


Ubound
Retourne le plus grand indice disponible pour la dimension indiquée d'un tableau

Dim Indice, MonTableau(10, 15, 20)

Indice = UBound(MonTableau, 1) ' Retourne 10. (1 indique la première dimension du tableau)


38
GetUpperBound même fonction

Indice = MonTableau.GetUpperBound(0) '( 0 pour première dimension!!) Retourne 10.


Length retourne un entier qui représente le nombre d'éléments total dans le tableau.

Pour un tableau à une dimension Lenght-1 retourne l'indice du dernier élément.

Cela est souvent utilisé pour parcourir tous les éléments du tableau:

Dim t(10) As String


Dim i As Integer
For i = 0 To t.Lenght-1
t(i)=..
Next t

GetValue et SetValue permettent de connaître ou de modifier la valeur d'un élément du


tableau:

Mois.GetValue(0) est équivalent à Mois(0)

Dans un tableau à 2 dimensions comment modifier l'élément (0,3):

myArray.SetValue("fox", 0, 3)

C'est équivalent à myArray(0,3)="fox" 39


Retourne le plus grand indice disponible pour la dimension indiquée d'un tableau

40
41
Exemple:

Créer un tableau de 6 éléments, mettre dans chaque élément du tableau le carré de

son indice, afficher le contenu du tableau.

Dim arr(5) As Integer

Dim i As Integer

For i = 0 To arr.GetUpperBound(0) ’ GetUpperBound(0) retourne 5


arr(i) = i * i
Next i

For i = 0 To arr.GetUpperBound(0)
msgbox("arr(" & i & ") = " & arr(i))
Next i

42
Exemple de recherche dans un tableau:

Dans un tableau de String rechercher dans quel élément et à quelle position se trouve la

string "MN".

Dim Tableau() As String = {"ABCDEFG", "HIJKLMNOP"}

Dim AChercher As String = "MN"

Dim i As Integer

Dim position As Integer

For i = 0 To Tableau.Length - 1 'on parcourt chaque élément du tableau

position = Tableau(i).IndexOf(AChercher) 'dans l'élément du tableau on cherche la


sous-chaîne
If position >= 0 Then Exit For

Next i

43
Les
Les tableaux
tableaux

Tableau Note(12) en Numérique


Variables Moy, Som en Numérique

Début
POUR i ALLANT DE 0 A 11
Ecrire "Entrez la note n°", i
Lire Note(i)
FinPour

Som := 0

POUR i ALLANT DE 0 A 11
Som := Som + Note(i)
FinPour

Moy := Som / 12

Écrire(«la somme est: » Som)


Écrire(«La moyenne est: » Moy)
Fin 44
Les tableaux Solution
Solution (Exercice
(Exercice 5)
5)
Écrivez un algorithme permettant à l’utilisateur de saisir un nombre quelconque de valeurs, qui devront
être stockées dans un tableau. L’utilisateur doit donc commencer par entrer le nombre de valeurs qu’il
compte saisir. Il effectuera ensuite cette saisie. Enfin, une fois la saisie terminée, le programme
affichera le nombre de valeurs négatives et le nombre de valeurs positives.

Solution : Variables Nb, Nbpos ← 0, Nbneg ← 0 en Numérique


Tableau T() en Numérique
Debut

Ecrire "Entrez le nombre de valeurs :"


Lire Nb
Redim T(Nb)

Pour i ← 0 à Nb - 1
Ecrire "Entrez le nombre n° ", i + 1
Lire T(i)
Si T(i) > 0 alors
Nbpos ← Nbpos + 1
Sinon
Nbneg ← Nbneg + 1
Finsi
i Suivant

Ecrire "Nombre de valeurs positives : ", Nbpos


Ecrire "Nombre de valeurs négatives : ", Nbneg
45
Fin
collections

Dim maCollection As New Collection

Une collection fonctionne plutôt comme un groupe d'éléments dans laquelle il est possible

d’ajouter ou d’enlever un élément à n’importe quel endroit sans avoir à se préoccuper de

la taille de la collection, ni ou se trouve l'élément.

Le nombre d'élément n'est pas défini au départ comme dans un tableau.

Dans une collection il n'y a que les éléments que l'on a ajouté.

Les éléments sont repérés grâce à un index ou avec une Clé unique

Dès que cet objet est créé, vous pouvez ajouter (avec Add), enlever ou manipuler des

éléments. On utilise la syntaxe: NomCollection.Add( élément, Clé)

maCollection.Add("Bonjour", "30")
maCollection.Add("Monsieur", "31")
maCollection.Add("Et", "32")
maCollection.Add("Madame", "33")
46
Col.Remove(2) ‘enlève l'élément numéro 2

L'objet collection utilise un couple Clé-Valeur, pour chaque élément.

l'index: maCollection.Remove(2) 'Efface le second élément: Monsieur


Col.Item(2) Un élément est repéré par son indice.

La clé maCollection.Item("33") 'Affiche Madame


maCollection.Remove("33") 'Efface Madame

47
Résumé

Faire un programme qui gère un carnet d’adresses.

48
1 :Ajouter

49
1 :Consulter

50
1 :Rechercher

51
52
Faire un programme qui gère Une bibliothèque.

53
Les
Les Fonctions
Fonctions Pr édéfinies
Prédéfinies
Tout langage de programmation propose ainsi un certain nombre de fonctions ; certaines
sont indispensables, car elles permettent d’effectuer des traitements qui seraient sans
elles impossibles. D’autres servent à soulager le programmeur, en lui épargnant de longs
– et pénibles - algorithmes.

Tous les langages, je dis bien tous, proposent les fonctions suivantes, même
si le nom et la syntaxe peuvent varier d’un langage à l’autre :

- Len(chaîne) : renvoie le nombre de caractères d’une chaîne


- Mid(chaîne,n1,n2) : renvoie un extrait de la chaîne, commençant au caractère n1
et faisant n2 caractères de long.
- Left(chaîne,n) : renvoie les n caractères les plus à gauche dans chaîne.
- Right(chaîne,n) : renvoie les n caractères les plus à droite dans chaîne
- Trouve(chaîne1,chaîne2) : renvoie un nombre correspondant à la position de chaîne2
dans chaîne1. Si chaîne2 n’est pas comprise dans chaîne1,
la fonction renvoie zéro.
-Modulo : Cette fonction permet de récupérer le reste de la division
d’un nombre par un deuxième nombre.

54
Les
Les chaînes de
chaînes de caractères
caractères

'ToUpper()

'Mettre en majuscules une chaîne de caractère

Dim Str As String = "bonjour"

Dim Str2 As String

Str2 = Str.ToUpper() 'ToLower()

MsgBox(Str2)

' .Trim()

'Permet de supprimer des caractères en début et fin de chaîne.

Dim A As String = "#@Informatique@#"

Dim B As Char() = {"#", "@"} 'B est un tableau de Char contenat les caractères à
supprimer.

A = A.Trim(B) 'Donne A= "Informatique"

MsgBox(A)

55
'Length: Taille(d) une chaîne en nombre de caractère.
'Afficher la taille de la chaîne « VB »

Dim S As String = "VB"

MsgBox(S.Length) 'Affiche 2

'Concat:

'Concaténation de plusieurs chaînes : mise bout à bout :

Dim S1 As String = String.Concat(A, Str)

MsgBox(S1)

'Insert:

'Insère une chaîne dans une autre.

Dim S3 As String = "VisualBasic"

S3 = S3.Insert(6, " ") 'Donne S= "Visual Basic"

'Noter: le premier caractère a la position 0.


56
MsgBox(S3)
'Remove:

'Enlève des caractères à une certaine position dans une chaîne.

Dim S4 As String = "VisualBasic"

S4 = S4.Remove(2, 7) 'Donne S= "Viic"

MsgBox(S4)

'Replace:

'Remplace dans une chaîne de départ, toutes les occurrences d'une chaîne par une autre.

'Resultat = ChaineDépart.Replace(ChaîneARemplacer, ChaîneQuiRemplace)

Dim S5 As String = "Visual_Basic"

S5 = S5.Replace("_", " ") 'Donne S= "Visual Basic"

MsgBox(S5)

Dim LaDate As String = "12.02.1990"

LaDate = LaDate.Replace(".", "/") 'Donne S= "12/02/1990"


57
MsgBox(LaDate)
'.Substring()

'Extrait une partie d’une chaîne.

'Le premier paramètre indique la position de départ; le second, le nombre de caractères à extraire.

Dim a1 As String = "Informatique"

MessageBox.Show(a1.Substring(2, 3)) 'Affiche for

'left
'len

Dim C As String = "DUBONET"

Dim Tx As String

Dim i As Integer

For i = 1 To Microsoft.VisualBasic.Len(C)

Tx += Microsoft.VisualBasic.Left(C, i) + ControlChars.CrLf

Next i

TextBox1.AppendText(Tx)

58
' Comparer

Dim maString1 As String = "salut“

Dim maString2 As String = "salut"

'On compare les 2 Strings, si elle sont égales cela retourne 0, l'expressuopn 0=0 est True, on la mettre dans un Boolean

Dim res As Boolean = (String.Compare(maString1, maString2) = 0)

MsgBox(res)

'Compter combien de fois un mot apparaît dans un texte?

'Calculer le nombre d'occurrences ( compteur ) d'une sous-chaînes (monMot) dans une String (monTexte).

'On rappelle que .IndexOf permet de chercher une sous-chaînes dans une chaîne.

Dim monTexte As String = "salut ca va! salut ca va"

Dim monMot As String = "lu"

Dim compteur As Integer

Dim index As Integer

Do
index = monTexte.IndexOf(monMot, index + 1)

compteur += 1

Loop Until index < 0

MsgBox(compteur - 1) 59
Les instructions élémentaires de VB.NET
On distingue

1 les instructions élémentaires exécutées par l'ordinateur.


2 les instructions de contrôle du déroulement du programme.

Les instructions élémentaires apparaissent clairement lorsqu'on considère la structure d'un micro-ordinateur et
de ses périphériques.

60
Interfaces graphiques avec VB.NET

61
comment créer l'interface utilisateur ?
Comment créer une fenêtre?
Menu Projet, Ajouter un formulaire Windows, cliquer sur WindowsForm, une fenêtre ‘Form1’ apparaît. On a bien crée

une fenêtre avec la classe WindowsForms.Form (En fait on a crée une Classe 'Form1')
Comment ajouter un bouton?

Cliquer sur ‘Boite à Outils’ à gauche , bouton WindowsForms, puis bouton ‘Button’,cliquer dans Form1, déplacer le

curseur sans lâcher le bouton, puis lâcher le bouton : un bouton apparaît.


Comment ajouter un label?

Un label est un contrôle qui permet d’afficher un texte.

Modifier les propriétés de l'objet.

62
La Classe 'Control':
Les contrôles (Button, TextBox ListBox...) héritent tous de la classe Control qui hérite elle-même de la classe
System.WindowsForms.
Tous les objets avec représentation visuelle ont des propriétés communes hérités de la classe Control.
Nous allons en voir quelqu'unsÎName : il s’agit du nom de l’objet tel qu’il est géré par l’application.
Il est vivement conseillé de renommer les objets que vous venez de créer afin de donner des noms plus évocateurs.

Le bouton sur lequel est écrit « OK » sera nommé BoutonOK.


La liste qui affiche les utilisateurs sera nommée ListUtilisateurs.
Il est conseillé de débuter le nom de l’objet par un mot évoquant sa nature: BoutonOk ou BtOk ou ButtonOk, btnOk

Microsoft conseille:
Text : il s’agit du texte qui est associé à l’objet.Î ButtonOk.Text= "Ok"
btn pour les Boutons
lst pour les ListBox Visible : Indique si un contrôle est visible ou non.Î
chk pour les CheckBox ButtonOk.Visible=False fait disparaître le bouton.
cbo pour les combos
dlg pour les DialogBox Font : Permet le choix de la police de caractères affichée dans l’objet.
frm pour les Form
lbl pour les labels BackColor ForeColor : Couleur du fond, Couleur de l’avant plan.
txt pour les Textbox Pour un bouton Forecolor correspond au cadre et aux caractères.
tb pour les Toolsbar ButtonOk.ForeColor= System.Drawing.Color.Blue
rb pour les radiobutton
mm pour les menus
tmr pour les timers

Evènements liés aux objets avec représentation visuelle

On a vu que les objets de l'interface utilisateur ont des procédures déclenchées par les évènement de cet objet
Exemple : Quand l'utilisateur clique sur un bouton Ok , la procédure BtOkClick s'effectue .

63
Les contrôles TextBox.
Contrôle qui contient du texte qui peut être modifié par l'utilisateur du programme.C'est la propriété Text qui contient
le texte qui a été tapé par l'utilisateur.

ExempleÎ Comment demander son nom à l'utilisateur ?

Il faut créer un label dont la propriété Text contient "Tapez votre nom:", suivi d'un TextBox nommé txtNom avec une
propriété Text="" (la TextBox est vide), enfin un bouton nommé btOk dont la propriété Text="Ok".Cela donne:

txtNom.Select() dans Form_Load donne le focus à la TextBox


Une fois que l'utilisateur a tapé son nom , il clique sur le bouton 'Ok':
Dans btOk_Click il y a:
Dim nom As String
nom= txtNom.Text ÎLa variable Nom contient bien maintenant le nom de l'utilisateur.

Parmi les multiples propriétés de ce contrôle, signalons :

Multiline : autorise ou non l’écriture sur plusieurs lignes.


Scrollbars : fait figurer une barre de défilement horizontale ou verticale (ou les deux)
PaswordChar : crypte le texte entré sous forme d’étoiles.
MaxLength : limite le nombre de caractères qu’il est possible de saisir.
TextBox1.MaxLength= 3 'limite la saisie à 3 caractères.
TextBox1.MaxLength= 0 'ne limite pas la saisie.
TextLength donne la longueur du texte

En mode MultiLine la collection Lines contient dans chacun de ses éléments une des lignes affichées dans le contrôle:
TexBox1.Lines(0) contient la première ligne
TexBox1.Lines(1) la seconde...
64
Les Cases à cocher
Il y a 2 sortes de case à cocher:
Les CheckBox.
Les RadioButton.

Les " cases à cocher " (CheckBox): Elles sont carrées, et indépendantes les unes des autres, si l'utilisateur coche une
case , cela n'a pas d'influence sur les autres cases du formulaire

Les " boutons radio " (RadioButton): Ils sont ronds et font toujours partie d’un groupe

Il faut regrouper les radios boutons dans des 'GroupBox' par exemple pour rendre les groupes
indépendants:

Ici si je clique sur le bouton 'OUI' à droite, cela décoche 'NON' mais n'a pas d'influence sur
le cadre Format

La propriété Text, bien sur, permet d’afficher le libellé à coté du bouton, on peut aussi mettre une image avec la
propriété Image. CheckAlign permet de mettre la case à cocher à droite ou à gauche du texte, TextAlign permet
d'aligner le texte. Exemple pour le bouton en haut à droite.

RadioButton3.Text="OUI"
RadioButton3.TextAlign= MiddleCenter 'Middle=hauteur, center = horizontale
RadioButton3.CheckAlign=MiddleRight

La propriété la plus intéressante de ces cases est celle qui nous permet de savoir si elle est cochée ou non. Cette
propriété s’appelle Checked. Sa valeur change de False à True si la case est cochée.

RadioButton.Checked=True 'Coche le bouton


If RadioButton.Checked=True Then ' Teste si le bouton est coché. 65
End If
GroupBox

Il est possible de regrouper des contrôles dans un container, on peut par exemple regrouper plusieurs RadioButton.
Le container peut être un GroupBox

66
TP 1: Réaliser une application qui fait les calculs suivants :

67
TP 2: Réaliser une application qui affiche dans la zone du texte les numéros de 1 à 10 :

68
TP 3: Réaliser une application qui calcul le prix total de la voiture :

69
ListBox

Le contrôle ListBox affiche une liste d'éléments (d'objets) dans laquelle l'utilisateur peut
faire un ou plusieurs choix.

La liste contient "tarte", "poisson", "viande", "légumes", "sauces".


Ici l'élément "poisson" est sélectionné, il est en bleu.

La listBox contient une collection d'"Item":


Elle est vide au départ.
Si j'ajoute un élément à la ListBox, cela ajoute un élément à la collection Items

Vider la ListBox: Comment enlever des éléments?


ListBox1.Items.Clear() ' Enlever l'élément d'index 5:
ListBox1.Items.RemoveAt(5)
Ajouter l'élément "poisson"
ListBox1.Items.Add("poisson") ' Enlever l'élément sélectionné:
ListBox1.Items.Remove(ListBox1.SelectedItem)

' Enlever l'élément "Tokyo":


ListBox1.Items.Remove("Tokyo")

Comment lire l'élément 3?


T=ListBox1.Items(3).ToString

Comment rechercher l'élément qui contient une chaîne de caractères?


List1.FindString("pa") retourne le numéro du premier élément
commençant par 'pa'.
70
TP 4: Réaliser une application qui affiche dans la liste les noms des fruits ou les noms
des légumes selon le choix puis affiche le nom d’élément sélectionné :

71
TP 5: Réaliser une application qui calcule et affiche dans les zones du texte la table
de la multiplication selon le choix :

72
TP6 :Réaliser une application qui affiche la plus grande des deux nombres
saisies par l’utilisateur

73
TP7

Le représentant d’une société de distribution des produits d’affichage électroniques


sont rémunérés de façon suivante :

¾ un fixe mensuel de 4000 DH


¾ une commission a pourcentage variable sur chaque tranche du chiffre d’affaire
mensuel :
™ une commission de 5% pour un chiffre d’affaire compris entre 0 et 1000.
™ une commission de 10% pour un chiffre d’affaire compris entre 1000 et 3000.
™ une commission de 14% pour un chiffre d’affaire supérieur à 3000.

Réaliser une application qui permet de calculer et afficher le montant total de la


rémunération de chaque représentant.

74
75
TP8 :Réaliser une application qui déclare et remplisse un tableau de 5
valeurs numériques puis affiche ces nombres et la somme et la moyenne de
ces valeurs.

76

Vous aimerez peut-être aussi