Vous êtes sur la page 1sur 76

Visual Basic.

NET

1)- Les
1.1 Introduction

bases du langage VB.NET

Nous traitons VB.NET d'abord comme un langage de programmation classique. Nous aborderons les objets ultrieurement. Dans un programme on trouve deux choses -des donnes -les instructions qui les manipulent On s'efforce gnralement de sparer les donnes des instructions : +--------------------+ DONNEES +-------------------- INSTRUCTIONS +--------------------+

1.2 Les donnes de VB.NET VB.NET utilise les types de donnes suivants: 1. les nombres entiers, rels et dcimaux 2. les caractres et chanes de caractres 3. les boolens 4. les dates 5. les objets 1.2.1 Les types de donnes prdfinis
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)

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 rels 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) ' boolen Dim var9 As Boolean = True ' caractre Dim var10 As Char = "A"c ' chane de caractres 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'excution donne les rsultats suivants :

Notation des donnes littrales

Integer 145, -7, &FF (hexadcimal) 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 considre le nombre comme un entier long - 134.789F, le F pour signifier qu'on considre le nombre comme un rel simple prcision - 100000D, le D pour signifier qu'on considre le nombre comme un rel dcimal - "A"c, pour transformer la chane de caractres "A" en caractre 'A' - la chane de caractres est entour du caractre ". Si la chane doit contenir le caractre ", on double celui-ci comme dans "abcd""e" pour reprsenter la chane [abcd"e].
6

Dclaration des donnes

Rle des dclarations


Un programme manipule des donnes caractrises par un nom et un type. Ces donnes sont stockes en mmoire.

Dclaration des constantes


La syntaxe de dclaration d'une constante est la suivante : const identificateur as type=valeur

Dclaration des variables


Une variable est identifie par un nom et se rapporte un type de donnes. VB.NET ne fait pas la diffrence entre majuscules et minuscules. Ainsi les variables FIN et fin sont identiques. Les variables peuvent tre initialises lors de leur dclaration. La syntaxe de dclaration d'une ou plusieurs variables est : dim variable1,variable2,...,variablen as identificateur_de_type o identificateur_de_type est un type prdfini ou bien un type dfini par le programmeur.

Les conversions entre nombres et chanes de caractres nombre -> chane nombre.ToString ou "" & nombre ou CType(nombre,String) objet -> chane objet.ToString chaine -> Integer Integer.Parse(chaine) ou Int32.Parse chane -> Long Long.Parse(chaine) pu Int64.Parse chane -> Double Double.Parse(chane) chane -> Single Single.Parse(chane)

Les conversions de type


Il existe un certain nombre de fonction prdfinies permettant de passer d'un type de donnes 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 :

On remarquera que les nombres rels sous forme de chane de caractres doivent utiliser la virgule et non le point

10

dcimal. Ainsi on crira Dim d As Double = -14.98 mais Dim d1 As Double = Double.Parse("100,87")

11

Ecriture sur cran Il existe diffrentes instructions d'criture l'cran :


Console.Out.WriteLine(expression) Console.WriteLine(expression) Console.Error.WriteLine (expression)

Lecture de donnes tapes au clavier


Le flux de donnes provenant du clavier est dsign par l'objet Console.In de type StreamReader. Ce type d'objets permet de lire une ligne de texte avec la mthode ReadLine :

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


La ligne tape au clavier est range dans la variable ligne et peut ensuite tre exploite par le programme.Le flux In peut tre redirig vers un fichier comme les flux Out et Error.

12

Exemple d'entres-sorties

13

Affectation de la valeur d'une expression une variable


On s'intresse ici l'opration variable=expression. L'expression peut tre de type : arithmtique, relationnelle, boolenne, caractres.

Liste des oprateurs

( affectation )

Priorits dans l'valuation des expressions arithmtiques

La priorit des oprateurs lors de l'valuation d'une expression arithmtique est la suivante (du plus prioritaire au moins prioritaire)

14

squence d'instructions

Exercice Exercice 1 1 (Solution) (Solution)

crire un algorithme qui permet de saisir des valeurs pour A et B , faire la somme et afficher le rsultat? Solution : A)- Analyse
Donnes : A,B saisis par clavier Rsultats : S Traitements : S:=A+B

B)- Algorithme A,B,S en entier Dbut


crire( Entrer la valeur de A: ) Lire(A) crire( Entrer la valeur de B: ) Lire(B) S:=A+B

Fin

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

15

squence d'instructions

Exercice Exercice 2 2 (Solution) (Solution)

crire un algorithme qui permet de calculer et afficher la surface dun cercle? Solution : A)- Analyse
Donnes : R et P saisis par clavier Rsultats : S Traitements : S:=R*R*P

B)- Algorithme R,P,S en entier Dbut


crire( Entrer la valeur de R: ) Lire(R) crire( Entrer la valeur de P: ) Lire(P) S:=R*R*P

Fin

crire( La surface est: S)


16

squence d'instructions

Exercice Exercice 3 3 (Solution) (Solution)

crire un algorithme qui permet de calculer et afficher le salaire brut dun ouvrier connaissant le nombre dheure et le tarif dhoraire? Solution : A)- Analyse
Donnes : H et TH saisis par clavier Rsultats : SB Traitements : SB:=H*TH

B)- Algorithme H,TH,S en entier Dbut


crire( Entrer la valeur de H: ) Lire(H) crire( Entrer la valeur de TH: ) Lire(TH) SB:=H*TH

Fin

crire( Le salaire brut est: S)


17

Structure Alternative If Condition Then End if Si la Condition est vraie alors Une instruction (ou un bloc dinstructions) peut tre excute si une condition est vraie. Exemple: If A=B then MsgBox("A=B") End If If A=B Then MsgBox("A=B")
If A=B then MsgBox("A=B") Else MsgBox("A diffrend de B") End If

If Condition1 Then .. ElseIf condition2 Then .. ElseIf condition3 Then .. end if


18

structure alternative

Exercice Exercice (Solution) (Solution)

On dsire comparer deux valeurs ,crire un algorithme qui affiche la plus grande des deux? Solution : A)- Analyse
Donnes : A et B saisis par clavier Rsultats : A ou B Traitements : A < B

B)- Algorithme A,B en rel Dbut


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 2 2 (Solution) (Solution)

Afficher le rsultat de fin danne pour un tudiant connaissant sa moyenne gnrale? Solution : A)- Analyse

Donnes : Moy saisi par clavier Traitements : Moy<=10,Moy<12,Moy<14,Moy=>14

B)- Algorithme Moy en rel Dbut

crire( Entrer la Moyenne: ) Lire(Moy)

Si Moy < 10 Alors crire( Le rsultat de ltudiant est: Doublant) SinonSi Moy < 12 Alors crire( Le rsultat de ltudiant est: Admis) SinonSi Moy < 14 Alors crire( Le rsultat de ltudiant est: Bien) Sinon crire(Le rsultat de ltudiant est: trs Bien) FinSi

Fin

20

Structure de rptition

21

22

23

structure rptitive

Exercice Exercice 1 1

crire un algorithme qui saisie 15 entier et affiche leur somme et leur moyenne ? Solution :
A)- Analyse
Donnes : N, Val saisis par clavier Rsultats : Moy, Somme Traitements : Somme:=Somme + Val

B)- Algorithme

Moy :=Somme/N

N,i en entier Moy, Somme,val en rel Dbut


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 lutilisateur un nombre compris entre 1 et 3 jusqu ce que la rponse convienne.

25

Exercice 5.2 Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu ce que la rponse convienne. En cas de rponse suprieure 20, on fera apparatre un message : Plus petit ! , et inversement, Plus grand ! si le nombre est infrieur 10.

26

Calcul sur le cercle


Ce TP consiste faire un programme qui calcule la circonfrence et la surface dun cercle en fonction du rayon de ce cercle.
Voici le dialogue lcran correspondant :

Calcul dun cercle Quel est le rayon du cercle Sa circonfrence est de Sa surface est de Voulez-vous faire un autre calcul (O/N) Quel est le rayon du cercle Sa circonfrence est de Sa surface est de Voulez-vous faire un autre calcul (O/N) Au revoir et bientt ! : 0,75 : 4,71239 : 1,76716 :O : 27 : 169,646 : 2290,22104 :N

27

TP2 - quation du second degr


crire le programme qui calcule les racines de lquation du deuxime degr Y= ax2 + bx + c.
Voici le dialogue lcran correspondant :

y = ax2 + bx + c Quelle est la valeur de a Quelle est la valeur de b Quelle est la valeur de c Lquation ne possde pas de racine relle Voulez-vous faire un autre calcul (O/N)

RACINE DE LQUATION DU 2ME DEGR :5 :3 :2 : d = -31 :O : -2 : 0,6 : 0,5 : d = 4,36 : x1 = - 0,37 : x2 = 0,67
28

Quelle est la valeur de a Quelle est la valeur de b Quelle est la valeur de c Lquation possde deux racines distinctes Lquation sannule pour et

Voulez-vous faire un autre calcul (O/N) Quelle est la valeur de a Quelle est la valeur de b Quelle est la valeur de c Lquation possde une racine double Lquation sannule pour Voulez-vous faire un autre calcul (O/N) Quelle est la valeur de a Quelle est la valeur de b Quelle est la valeur de c Lquation est du premier degr ! Lquation sannule pour x = - (c/b) Voulez-vous faire un autre calcul (O/N) Quelle est la valeur de a Quelle est la valeur de b Quelle est la valeur de c Lquation nen est plus une !!! Voulez-vous faire un autre calcul (O/N) Au revoir et bientt !

:O :2 :2 : 0,5 :d=0 : x1 = x2 = -0,5 : : : : O 0 2 0,5

: -0,25 : : : : O 0 0 0,5

:N
29

Exercice Exercice 6 6
Le reprsentant dune socit de distribution des produits daffichage lectroniques sont rmunrs de faon suivante :
un fixe mensuel de 4000 DH une commission a pourcentage variable sur chaque tranche du chiffre daffaire mensuel : une commission de 5% pour un chiffre daffaire compris entre 0 et 1000. une commission de 10% pour un chiffre daffaire compris entre 1000 et 3000. une commission de 14% pour un chiffre daffaire suprieur 3000.

Faire un programme qui permet de calculer et afficher le montant total de la rmunration de chaque reprsentant. En utilisant une boucle.

30

Exercice Exercice 7 7
Une salle de cinma dsire automatiser la gestion de la billetterie pour chaque client qui se prsente, on calcule le prix du billet en fonction des donnes suivantes:

NF : Numro du fil HS : heure de la sance Age : Age de spectateur Le prix normal de la facture est de 30 DH, cependant des remises peuvent tre accorder en fonction du critres suivants : NF=2 ou Age < 15 ou HS>20 remise de 50% NF=2 et Age >75 remise 25% NF=3 et Age < 15 entre refuse Faire un programme qui permet de calculer et dcider le prix payer pou chaque client qui se prsente . on arrte la saisie par "non"

31

Les tableaux de donnes


Un tableau VB.NET est un objet permettant de regrouper des donnes de mme type et d'utiliser un numro, appel index ou indice, pour les distinguer. Sa dclaration est la suivante : Dim Tableau(n) as type ou Dim Tableau() as type=New type(n) {} o n est l'indice du dernier lment de tableau. La syntaxe Tableau(i) dsigne la donne n i o i appartient l'intervalle [0,n]. Toute rfrence la donne Tableau(i) o i n'appartient pas l'intervalle [0,n] provoquera une exception. Un tableau peut tre initialis en mme temps que dclar. Dans ce cas, on n'a pas besoin d'indiquer le n du dernier lment. Dim entiers() As Integer = {0, 10, 20, 30} Les tableaux ont une proprit Length qui est le nombre d'lments du tableau.

Dim Tableau(3) As Integer entrane la cration des variables 'Integer' suivante: Tableau Tableau Tableau Tableau (0) (1) (2) (3)

Contenu du tableau:

0 0 0 0
32

Dim Tableau(3) comporte 4 lments (lments d'index 0 3). Tableau(1)= 12 permet daffecter le nombre 12 au 2eme lment du tableau. 0 12 0 0 S=Tableau(1) permet daffecter la variable S le 2eme lment du tableau. Un tableau peut avoir plusieurs dimensions : Dim T(2,2) lment:0,0 lment:1,0 lment:2,0 lment:0,1 lment:1,1 lment:2,1 lment:0,2 lment:1,2 lment:2,2
33

Exemple: La premire ligne comporte les 3 lments: T(0,0) T(0,1) et T(0,2) Pour mettre 33 dans l'lment central: Dim T(2.2) As Integer T(1,1)=33 voyons le contenu du tableau:

0 0 0

0 33 0

0 0 0

Il est possible de crer des tableaux 3, 4 ..dimensions: Exemple: Dim T(3,1,2) cre un tableau de 4X2X3 lments.

34

Un tableau est un objet Crons 2 tableaux et examinons les principales mthodes. Dim a(3) As String Dim b(3) As String b=a.clone La Classe Array. Tous les tableaux viennent de la classe Array; vous pouvez accder aux mthodes et proprits de System.Array de chaque tableau Par exemple, la proprit Rank retourne le nombre de dimension du tableau la mthode Sort trie ses lments. Copie le tableau a dans b

35

Exemple : Soit un tableau Mois() Clear Array.Clear(Mois,0,2) Efface 2 lments du tableau Mois partir de llment 0 Reverse Array.Reverse(Mois) inverse les 3 lments partir de llment 1 Copy Array.Copy(Mois1,Mois2,20) copie 20 lments de Mois vers Mois2 Sort Array.sort(Mois) Trie le tableau Mois

Malheureusement cette mthode 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 End Sub

37

Equals

compare 2 tableaux.

Binarysearch recherche un lment dans un tableau tri unidimensionnel. Exemple : I=Array.BinarySearch(Mois, "Fvrier") retourne I=1 IndexOf Recherche un objet spcifi dans un tableau unidimensionnel (tri ou non), retourne l'index de la premire occurrence. Dim myIndex As Integer = Array.IndexOf(myArray, myString) Retourne -1 si l'lment n'est pas trouv. LastIndexOf fait une recherche partir de la fin.
Ubound Retourne le plus grand indice disponible pour la dimension indique d'un tableau Dim Indice, MonTableau(10, 15, 20)
38 Indice = UBound(MonTableau, 1) ' Retourne 10. (1 indique la premire dimension du tableau)

GetUpperBound mme fonction Indice = MonTableau.GetUpperBound(0) '( 0 pour premire dimension!!) Retourne 10. Length retourne un entier qui reprsente le nombre d'lments total dans le tableau. Pour un tableau une dimension Lenght-1 retourne l'indice du dernier lment. Cela est souvent utilis pour parcourir tous les lments 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 connatre ou de modifier la valeur d'un lment du tableau: Mois.GetValue(0) est quivalent Mois(0) Dans un tableau 2 dimensions comment modifier l'lment (0,3): myArray.SetValue("fox", 0, 3) C'est quivalent myArray(0,3)="fox"
39

Retourne le plus grand indice disponible pour la dimension indique d'un tableau

40

41

Exemple: Crer un tableau de 6 lments, mettre dans chaque lment 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 lment 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 lment du tableau position = Tableau(i).IndexOf(AChercher) 'dans l'lment du tableau on cherche la sous-chane If position >= 0 Then Exit For Next i

43

Les Les tableaux tableaux

Tableau Note(12) en Numrique Variables Moy, Som en Numrique Dbut 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: crire(La moyenne est:

Fin

Som) Moy)
44

Les tableaux

crivez un algorithme permettant lutilisateur de saisir un nombre quelconque de valeurs, qui devront tre stockes dans un tableau. Lutilisateur doit donc commencer par entrer le nombre de valeurs quil compte saisir. Il effectuera ensuite cette saisie. Enfin, une fois la saisie termine, le programme affichera le nombre de valeurs ngatives et le nombre de valeurs positives. Solution :

Solution Solution (Exercice (Exercice 5) 5)

Variables Nb, Nbpos 0, Nbneg 0 en Numrique Tableau T() en Numrique 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 ngatives : ", Nbneg Fin

45

collections
Dim maCollection As New Collection Une collection fonctionne plutt comme un groupe d'lments dans laquelle il est possible dajouter ou denlever un lment nimporte quel endroit sans avoir se proccuper de la taille de la collection, ni ou se trouve l'lment. Le nombre d'lment n'est pas dfini au dpart comme dans un tableau. Dans une collection il n'y a que les lments que l'on a ajout. Les lments sont reprs grce un index ou avec une Cl unique Ds que cet objet est cr, vous pouvez ajouter (avec Add), enlever ou manipuler des lments. On utilise la syntaxe: NomCollection.Add( lment, Cl)

maCollection.Add("Bonjour", "30") maCollection.Add("Monsieur", "31") maCollection.Add("Et", "32") maCollection.Add("Madame", "33")


46

Col.Remove(2)

enlve l'lment numro 2

L'objet collection utilise un couple Cl-Valeur, pour chaque lment.

l'index:

maCollection.Remove(2) 'Efface le second lment: Monsieur


Col.Item(2) Un lment est repr par son indice.

La cl

maCollection.Item("33") 'Affiche Madame maCollection.Remove("33") 'Efface Madame

47

Rsum
Faire un programme qui gre un carnet dadresses.

48

1 :Ajouter

49

1 :Consulter

50

1 :Rechercher

51

52

Faire un programme qui gre Une bibliothque.

53

Les dfinies Les Fonctions Fonctions Pr Prdfinies


Tout langage de programmation propose ainsi un certain nombre de fonctions ; certaines sont indispensables, car elles permettent deffectuer des traitements qui seraient sans elles impossibles. Dautres servent soulager le programmeur, en lui pargnant de longs et pnibles - algorithmes. Tous les langages, je dis bien tous, proposent les fonctions suivantes, mme si le nom et la syntaxe peuvent varier dun langage lautre : - Len(chane) - Mid(chane,n1,n2) : renvoie le nombre de caractres dune chane : renvoie un extrait de la chane, commenant au caractre n1 et faisant n2 caractres de long. - Left(chane,n) : renvoie les n caractres les plus gauche dans chane. - Right(chane,n) : renvoie les n caractres les plus droite dans chane - Trouve(chane1,chane2) : renvoie un nombre correspondant la position de chane2 dans chane1. Si chane2 nest pas comprise dans chane1, la fonction renvoie zro. -Modulo : Cette fonction permet de rcuprer le reste de la division dun nombre par un deuxime nombre.

54

Les nes de res Les cha chanes de caract caractres


'ToUpper() 'Mettre en majuscules une chane de caractre Dim Str As String = "bonjour" Dim Str2 As String Str2 = Str.ToUpper() 'ToLower() MsgBox(Str2) ' .Trim() 'Permet de supprimer des caractres en dbut et fin de chane. Dim A As String = "#@Informatique@#" Dim B As Char() = {"#", "@"} 'B est un tableau de Char contenat les caractres supprimer.

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

'Length: Taille(d) une chane en nombre de caractre. 'Afficher la taille de la chane VB


Dim S As String = "VB" MsgBox(S.Length) 'Affiche 2

'Concat: 'Concatnation de plusieurs chanes : mise bout bout :


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

'Insert: 'Insre une chane dans une autre.


Dim S3 As String = "VisualBasic"

S3 = S3.Insert(6, " ") 'Donne S= "Visual Basic" 'Noter: le premier caractre a la position 0.
MsgBox(S3) 56

'Remove: 'Enlve des caractres une certaine position dans une chane.
Dim S4 As String = "VisualBasic"

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


MsgBox(S4)

'Replace: 'Remplace dans une chane de dpart, toutes les occurrences d'une chane par une autre. 'Resultat = ChaineDpart.Replace(ChaneARemplacer, ChaneQuiRemplace)
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(".", "/")


MsgBox(LaDate)

'Donne S= "12/02/1990"
57

'.Substring() 'Extrait une partie dune chane.


'Le premier paramtre indique la position de dpart; le second, le nombre de caractres 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 apparat dans un texte? 'Calculer le nombre d'occurrences ( compteur ) d'une sous-chanes (monMot) dans une String (monTexte). 'On rappelle que .IndexOf permet de chercher une sous-chanes dans une chane.

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 lmentaires de VB.NET


On distingue 1 les instructions lmentaires excutes par l'ordinateur. 2 les instructions de contrle du droulement du programme. Les instructions lmentaires apparaissent clairement lorsqu'on considre la structure d'un micro-ordinateur et de ses priphriques.

60

Interfaces graphiques avec VB.NET

61

comment crer l'interface utilisateur ?


Comment crer une fentre?
Menu Projet, Ajouter un formulaire Windows, cliquer sur WindowsForm, une fentre Form1 apparat. On a bien cre une fentre avec la classe WindowsForms.Form (En fait on a cre une Classe 'Form1')

Comment ajouter un bouton?


Cliquer sur Boite Outils gauche , bouton WindowsForms, puis bouton Button,cliquer dans Form1, dplacer le curseur sans lcher le bouton, puis lcher le bouton : un bouton apparat.

Comment ajouter un label?


Un label est un contrle qui permet dafficher un texte.

Modifier les proprits de l'objet.

62

La Classe 'Control':
Les contrles (Button, TextBox ListBox...) hritent tous de la classe Control qui hrite elle-mme de la classe System.WindowsForms. Tous les objets avec reprsentation visuelle ont des proprits communes hrits de la classe Control. Nous allons en voir quelqu'unsName : il sagit du nom de lobjet tel quil est gr par lapplication. Il est vivement conseill de renommer les objets que vous venez de crer afin de donner des noms plus vocateurs. Le bouton sur lequel est crit OK sera nomm BoutonOK. La liste qui affiche les utilisateurs sera nomme ListUtilisateurs. Il est conseill de dbuter le nom de lobjet par un mot voquant sa nature: BoutonOk ou BtOk ou ButtonOk, btnOk Microsoft conseille: btn pour les Boutons lst pour les ListBox chk pour les CheckBox cbo pour les combos dlg pour les DialogBox frm pour les Form lbl pour les labels txt pour les Textbox tb pour les Toolsbar rb pour les radiobutton mm pour les menus tmr pour les timers

Text : il sagit du texte qui est associ lobjet. ButtonOk.Text= "Ok" Visible : Indique si un contrle est visible ou non. ButtonOk.Visible=False fait disparatre le bouton. Font : Permet le choix de la police de caractres affiche dans lobjet. BackColor ForeColor : Couleur du fond, Couleur de lavant plan. Pour un bouton Forecolor correspond au cadre et aux caractres. ButtonOk.ForeColor= System.Drawing.Color.Blue

Evnements lis aux objets avec reprsentation visuelle


On a vu que les objets de l'interface utilisateur ont des procdures dclenches par les vnement de cet objet Exemple : Quand l'utilisateur clique sur un bouton Ok , la procdure BtOkClick s'effectue .

63

Les contrles TextBox.


Contrle qui contient du texte qui peut tre modifi par l'utilisateur du programme.C'est la proprit Text qui contient le texte qui a t tap par l'utilisateur. Exemple Comment demander son nom l'utilisateur ? Il faut crer un label dont la proprit Text contient "Tapez votre nom:", suivi d'un TextBox nomm txtNom avec une proprit Text="" (la TextBox est vide), enfin un bouton nomm btOk dont la proprit 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 proprits de ce contrle, signalons :
Multiline : autorise ou non lcriture sur plusieurs lignes. Scrollbars : fait figurer une barre de dfilement horizontale ou verticale (ou les deux) PaswordChar : crypte le texte entr sous forme dtoiles. MaxLength : limite le nombre de caractres quil est possible de saisir. TextBox1.MaxLength= 3 'limite la saisie 3 caractres. 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 lments une des lignes affiches dans le contrle: TexBox1.Lines(0) contient la premire 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 carres, et indpendantes 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 dun groupe Il faut regrouper les radios boutons dans des 'GroupBox' par exemple pour rendre les groupes indpendants:

Ici si je clique sur le bouton 'OUI' droite, cela dcoche 'NON' le cadre Format

mais n'a pas d'influence sur

La proprit Text, bien sur, permet dafficher le libell cot du bouton, on peut aussi mettre une image avec la proprit 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 proprit la plus intressante de ces cases est celle qui nous permet de savoir si elle est coche ou non. Cette proprit sappelle Checked. Sa valeur change de False True si la case est coche. RadioButton.Checked=True 'Coche le bouton If RadioButton.Checked=True Then ' Teste si le bouton est coch. End If

65

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

66

TP 1: Raliser une application qui fait les calculs suivants :

67

TP 2: Raliser une application qui affiche dans la zone du texte les numros de 1 10 :

68

TP 3: Raliser une application qui calcul le prix total de la voiture :

69

ListBox
Le contrle ListBox affiche une liste d'lments (d'objets) dans laquelle l'utilisateur peut faire un ou plusieurs choix.

La liste contient "tarte", "poisson", "viande", "lgumes", "sauces". Ici l'lment "poisson" est slectionn, il est en bleu.

La listBox contient une collection d'"Item": Elle est vide au dpart. Si j'ajoute un lment la ListBox, cela ajoute un lment la collection Items Vider la ListBox: ListBox1.Items.Clear() Ajouter l'lment "poisson" ListBox1.Items.Add("poisson") Comment enlever des lments? ' Enlever l'lment d'index 5: ListBox1.Items.RemoveAt(5) ' Enlever l'lment slectionn: ListBox1.Items.Remove(ListBox1.SelectedItem) ' Enlever l'lment "Tokyo": ListBox1.Items.Remove("Tokyo") Comment lire l'lment 3? T=ListBox1.Items(3).ToString Comment rechercher l'lment qui contient une chane de caractres? List1.FindString("pa") retourne le numro du premier lment commenant par 'pa'.

70

TP 4: Raliser une application qui affiche dans la liste les noms des fruits ou les noms des lgumes selon le choix puis affiche le nom dlment slectionn :

71

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

72

TP6 :Raliser une application qui affiche la plus grande des deux nombres

saisies par lutilisateur

73

TP7 Le reprsentant dune socit de distribution des produits daffichage lectroniques sont rmunrs de faon suivante : un fixe mensuel de 4000 DH une commission a pourcentage variable sur chaque tranche du chiffre daffaire mensuel : une commission de 5% pour un chiffre daffaire compris entre 0 et 1000. une commission de 10% pour un chiffre daffaire compris entre 1000 et 3000. une commission de 14% pour un chiffre daffaire suprieur 3000. Raliser une application qui permet de calculer et afficher le montant total de la rmunration de chaque reprsentant.

74

75

TP8 :Raliser une application qui dclare et remplisse un tableau de 5 valeurs numriques puis affiche ces nombres et la somme et la moyenne de ces valeurs.

76