Upload
bassir2010
View
213
Download
0
Embed Size (px)
Citation preview
7/28/2019 6752082-Net
1/76
1
Visual Basic.NETVisualVisual Basic.NETBasic.NET
7/28/2019 6752082-Net
2/76
2
1)1)--Les bases du langage VB.NET1.1 Introduction
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 manipulentOn s'efforce gnralement de sparer les donnes des instructions :
+--------------------+ DONNEES +-------------------- INSTRUCTIONS
+--------------------+
7/28/2019 6752082-Net
3/76
3
1.2 Les donnes de VB.NET
VB.NET utilise les types de donnes suivants:
1. les nombres entiers, rels et dcimaux2. les caractres et chanes de caractres3. les boolens4. les dates5. 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 octetChar System.Char 2 octetsDate System.DateTime 8 octets
Decimal System.Decimal 16 octetsDouble System.Double 8 octets.Long System.Int64 8 octetsObject System.Object 4 octetsShort System.Int16 2 octetsSingle System.Single 4 octetsString System.String (classe)
7/28/2019 6752082-Net
4/76
4
exemple de programmePrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' nombres entiersDim var1 As Integer = 100Dim var2 As Long = 10000000000LDim var3 As Byte = 100Dim var4 As Short = 4' nombres relsDim var5 As Decimal = 4.56789DDim var6 As Double = 3.4Dim var7 As Single = -0.000103F
' dateDim var8 As Date = New Date(2003, 1, 1, 12, 8, 4)' boolenDim var9 As Boolean = True' caractreDim var10 As Char = "A"c' chane de caractresDim var11 As String = "abcde"' objetDim var12 As Object = New Object' affichagesConsole.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)
End Sub
7/28/2019 6752082-Net
5/76
5
L'excution donne les rsultats suivants :
7/28/2019 6752082-Net
6/76
6
Notation des donnes littrales
Integer145, -7, &FF (hexadcimal)Long100000LDouble134.789, -45E-18 (-45 10-18)Single134.789F, -45E-18F (-45 10-18)Decimal100000DChar"A"cString"aujourd'hui"Booleantrue, falsedateNew 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 simpleprcision
- 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 lecaractre ", on double celui-ci comme dans"abcd""e" pour reprsenter la chane [abcd"e].
7/28/2019 6752082-Net
7/76
7
Dclaration des donnesRle 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_typeest un type prdfini ou bien un type dfini par le programmeur.
7/28/2019 6752082-Net
8/76
8
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)
L i d t
7/28/2019 6752082-Net
9/76
9
Les conversions de type
Il existe un certain nombre de fonction prdfinies permettant de passer d'un type de donnes un autre. Leur listeest 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 :
7/28/2019 6752082-Net
10/76
10On remarquera que les nombres rels sous forme de chane de caractres doivent utiliser la virgule et non le point
dcimal. Ainsi on crira Dim d As Double = -14.98 mais Dim d1 As Double = Double.Parse("100,87")
7/28/2019 6752082-Net
11/76
11
Ecriture sur cran
7/28/2019 6752082-Net
12/76
12
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 clavierLe flux de donnes provenant du clavier est dsign par l'objet Console.Inde 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 ligneet peut ensuite tre exploite par le programme.Le
flux In peut tre redirig vers un fichier comme les flux Out et Error.
Exemple d'entres sorties
7/28/2019 6752082-Net
13/76
13
Exemple d entres-sorties
Affectation de la valeur d'une expression une variable
7/28/2019 6752082-Net
14/76
14
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
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)
( affectation )
E i 1 (S l ti )Exercice 1 (Solution)Exercice 1 (Solution)squence d'instructions
7/28/2019 6752082-Net
15/76
15
Exercice 1 (Solution)Exercice 1 (Solution)Exercice 1 (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 clavierRsultats :
STraitements : S:=A+B
B)- Algorithme
A,B,S en entierDbut
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)Fin
squence d instructions
Exercice 2 (Solution)Exercice 2Exercice 2 (Solution)(Solution)squence d'instructions
7/28/2019 6752082-Net
16/76
16
Exercice 2 (Solution)Exercice 2Exercice 2 (Solution)(Solution)crire un algorithme qui permet de calculer et afficher la surfacedun cercle?
Solution :
squence d instructions
A)- Analyse
Donnes : R et P saisis par clavier
Rsultats : STraitements : S:=R*R*P
B)- Algorithme
R,P,S en entierDbut
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
Exercice 3 (Solution)Exercice 3Exercice 3 (Solution)(Solution)squence d'instructions
7/28/2019 6752082-Net
17/76
17
Exercice 3 (Solution)Exercice 3Exercice 3 (Solution)(Solution)crire un algorithme qui permet de calculer et afficher le salaire brutdun ouvrier connaissant le nombre dheure et le tarif dhoraire?
Solution :
squence d instructions
A)- Analyse
Donnes : H et TH saisis par clavier
Rsultats : SBTraitements : SB:=H*TH
B)- Algorithme
H,TH,S en entierDbut
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
Structure Alternative
7/28/2019 6752082-Net
18/76
18
Structure lternat e
If Condition Then
End ifSi la Condition est vraie alors
Une instruction (ou un bloc dinstructions) peut tre excute si une condition est vraie.
Exemple:
If A=B thenMsgBox("A=B")
End If
If A=B Then MsgBox("A=B")If Condition1 Then
..ElseIf condition2 Then
..ElseIf condition3 Then
..end if
If A=B thenMsgBox("A=B")
ElseMsgBox("A diffrend de B")
End If
Exercice (Solution)ExerciceExercice (Solution)(Solution)structure alternative
7/28/2019 6752082-Net
19/76
19
Exercice (Solution)ExerciceExercice (Solution)(Solution)On dsire comparer deux valeurs ,crire un algorithme qui affiche laplus grande des deux?
Solution :
structure alternative
A)- AnalyseDonnes : A et B saisis par clavierRsultats : A ou BTraitements : A < B
B)- Algorithme
A,B en rel
Dbutcrire( Entrer la valeur de A: )Lire(A)
crire( Entrer la valeur de B: )
Lire(B)Si A < B Alorscrire( la plus grande valeur est: B)
SINON
crire( la plus grande valeur est: A)FinSiFin
Exercice 2 (Solution)Exercice 2Exercice 2 (Solution)(Solution)structure alternative
7/28/2019 6752082-Net
20/76
20
Exercice 2 (Solution)Exercice 2Exercice 2 (Solution)(Solution)Afficher le rsultat de fin danne pour un tudiant connaissant samoyenne gnrale?
Solution :
structur a t rnat
A)- AnalyseDonnes : Moy saisi par clavierTraitements : Moy
7/28/2019 6752082-Net
21/76
21
Structure de rptition
7/28/2019 6752082-Net
22/76
22
7/28/2019 6752082-Net
23/76
23
Exercice 1Exercice 1Exercice 1structure rptitive
7/28/2019 6752082-Net
24/76
24
crire un algorithme qui saisie 15 entier et affiche leur somme et leurmoyenne ?
Solution :
p
A)- AnalyseDonnes : N, Val saisis par clavierRsultats : Moy, SommeTraitements : Somme:=Somme + Val
Moy :=Somme/N
B)- AlgorithmeN,i en entierMoy, Somme,val en rel
DbutSomme:=0i:=0
Pour i allant de 1 15 fairecrire( entrer une valeur: )Lire(val)Somme:=Somme+val
FinPourMoy:=Somme/Ncrire( La somme: Somme)crire( La moyenne: Moy)Fin
Exercice 5.1
7/28/2019 6752082-Net
25/76
25
Exercice 5.
crire un algorithme qui demande lutilisateur un nombre compris entre 1 et 3 jusqu ceque la rponse convienne.
Exercice 5.2
7/28/2019 6752082-Net
26/76
26
Exercice 5.2
Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu ce que la rponseconvienne. En cas de rponse suprieure 20, on fera apparatre un message : Plus petit ! ,et inversement, Plus grand ! si le nombre est infrieur 10.
Calcul sur le cercleCalcul sur le cercle
7/28/2019 6752082-Net
27/76
27
Calcul sur le cercleCalcul sur le cercleCe TP consiste faire un programme qui calcule la circonfrence et la surfacedun cercle en fonction du rayon de ce cercle.
Voici le dialogue lcran correspondant :
Calcul dun cercleQuel est le rayon du cercle : 0,75Sa circonfrence est de : 4,71239
Sa surface est de : 1,76716Voulez-vous faire un autre calcul (O/N) : OQuel est le rayon du cercle : 27Sa circonfrence est de : 169,646Sa surface est de : 2290,22104
Voulez-vous faire un autre calcul (O/N) : NAu revoir et bientt !
TP2TP2 -- quation du second degrquation du second degr
7/28/2019 6752082-Net
28/76
28
quat on u s con grquat on u s con grcrire le programme qui calcule les racines de lquation du deuxime degrY= ax2 + bx + c. Voici le dialogue lcran correspondant :
RACINE DE LQUATION DU 2ME DEGRy = ax2 + bx + cQuelle est la valeur de a : 5Quelle est la valeur de b : 3Quelle est la valeur de c : 2Lquation ne possde pas de racine relle : 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,6Quelle est la valeur de c : 0,5Lquation possde deux racines distinctes : d = 4,36Lquation sannule pour : x1 = - 0,37et : x2 = 0,67
Voulez-vous faire un autre calcul (O/N) : O
7/28/2019 6752082-Net
29/76
29
f ( )
Quelle est la valeur de a : 2
Quelle est la valeur de b : 2Quelle est la valeur de c : 0,5Lquation possde une racine double : d = 0Lquation sannule pour : x1 = x2 = -0,5
Voulez-vous faire un autre calcul (O/N) : OQuelle est la valeur de a : 0Quelle est la valeur de b : 2Quelle est la valeur de c : 0,5
Lquation est du premier degr !Lquation sannule pour x = - (c/b) : -0,25
Voulez-vous faire un autre calcul (O/N) : O
Quelle est la valeur de a : 0Quelle est la valeur de b : 0Quelle est la valeur de c : 0,5Lquation nen est plus une !!!
Voulez-vous faire un autre calcul (O/N) : NAu revoir et bientt !
Exercice 6Exercice 6Exercice 6
7/28/2019 6752082-Net
30/76
30
Le reprsentant dune socit de distribution des produits daffichagelectroniques 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.
Exercice 7Exercice 7Exercice 7
7/28/2019 6752082-Net
31/76
31
Une salle de cinma dsire automatiser la gestion de la billetterie pour chaque client quise 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 peuventtre 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"
Les tableaux de donnesUn tableau VB NET est un objet permettant de regrouper des donnes de mme type et d'utiliser un numro appel
7/28/2019 6752082-Net
32/76
32
Un tableau VB.NET est un objet permettant de regrouper des donnes de mme type et d utiliser un numro, appelindex 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 io i appartient l'intervalle [0,n]. Toute rfrence la donne Tableau(i)o in'appartient pas l'intervalle [0,n]provoquera uneexception. Un tableau peut tre initialis en mme temps que dclar. Dans ce cas, on n'a pas besoin d'indiquer len 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.
Di m Tabl eau( 3) As I nt eger ent r a ne l a cr at i on des var i abl es ' I nt eger ' sui vant e:
Tabl eau ( 0)Tabl eau ( 1)Tabl eau ( 2)Tabl eau ( 3)
Cont enu du t abl eau:
0
0
0
0
Di m Tabl eau( 3) compor t e 4 l ment s ( l ment s d' i ndex 0 3) .
7/28/2019 6752082-Net
33/76
33
Tabl eau( 1) = 12 permet d af f ect er l e nombr e 12 au 2eme l ment du t abl eau.
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:0,1 lment:0,2
lment:1,0 lment:1,1 lment:1,2
lment:2,0 lment:2,1 lment:2,2
Exempl e:
7/28/2019 6752082-Net
34/76
34
La pr emi r e l i gne compor t e l es 3 l ment s: T( 0, 0) T( 0, 1) et T( 0, 2)Pour met t r e 33 dans l ' l ment cent r al :
Di m T( 2. 2) As I nt egerT( 1, 1) =33
voyons l e cont enu du t abl eau:
0 0 0
0 33 0
0 0 0
I l est possi bl e de crer des t abl eaux 3, 4 . . di mensi ons:
Exempl e:
Di m T( 3, 1, 2) cr e un t abl eau de 4X2X3 l ment s.
Un tableau est un objet
C 2 t bl t i l i i l th d
7/28/2019 6752082-Net
35/76
35
Crons 2 tableaux et examinons les principales mthodes.
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 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.
7/28/2019 6752082-Net
36/76
36
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
CopyArray.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.
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
7/28/2019 6752082-Net
37/76
37
Dim b(3) As StringDim c(3) As String
b = a.Clone 'Copie le tableau a dans bFor 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 - 1MsgBox(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 - 1MsgBox(c(i))Next
Array.Sort(c)For i As Integer = 0 To c.Length - 1
MsgBox(c(i))Next
End Sub
Equals compare 2 tableaux.
7/28/2019 6752082-Net
38/76
38
Binarysearch recherche un lment dans un tableau tri unidimensionnel.
Exemple :
I=Array.BinarySearch(Mois, "Fvrier") retourne I=1
IndexOfRecherche 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.UboundRetourne le plus grand indice disponible pour la dimension indique d'un tableau
Dim Indice, MonTableau(10, 15, 20)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
7/28/2019 6752082-Net
39/76
39
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 StringDim i As IntegerFor i = 0 To t.Lenght-1
t(i)=..Next t
GetValue et SetValue permettent de connatre ou de modifier la valeur d'un lment dutableau:
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"
7/28/2019 6752082-Net
40/76
40
Retourne le plus grand indice disponible pour la dimension indique d'un tableau
7/28/2019 6752082-Net
41/76
41
Crer un tableau de 6 lments, mettre dans chaque lment du tableau le carr de
Exemple:
7/28/2019 6752082-Net
42/76
42
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 5arr(i) = i * i
Next iFor i = 0 To arr.GetUpperBound(0)
msgbox("arr(" & i & ") = " & arr(i))
Next i
Exemple de recherche dans un tableau:
7/28/2019 6752082-Net
43/76
43
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 lasous-chane
If position >= 0 Then Exit For
Next i
Les tableauxLes tableauxLes tableaux
7/28/2019 6752082-Net
44/76
44
Tableau Note(12) en NumriqueVariables Moy, Som en Numrique
DbutPOUR i ALLANT DE 0 A 11
Ecrire "Entrez la note n", iLire Note(i)FinPour
Som := 0POUR 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
Solution (Exercice 5)Solution (Exercice 5)Solution (Exercice 5)Les tableaux
crivez un algorithme permettant lutilisateur de saisir un nombre quelconque de valeurs, qui devronttre stockes dans un tableau Lutilisateur doit donc commencer par entrer le nombre de valeurs quil
7/28/2019 6752082-Net
45/76
45
Variables Nb, Nbpos 0, Nbneg 0 en NumriqueTableau T() en NumriqueDebut
Ecrire "Entrez le nombre de valeurs :"Lire NbRedim T(Nb)
Pour i 0 Nb - 1Ecrire "Entrez le nombre n ", i + 1Lire T(i)Si T(i) > 0 alors
Nbpos Nbpos + 1Sinon
Nbneg Nbneg + 1Finsi
i Suivant
Ecrire "Nombre de valeurs positives : ", NbposEcrire "Nombre de valeurs ngatives : ", NbnegFin
tre stockes dans un tableau. L utilisateur doit donc commencer par entrer le nombre de valeurs qu ilcompte saisir. Il effectuera ensuite cette saisie. Enfin, une fois la saisie termine, le programmeaffichera le nombre de valeurs ngatives et le nombre de valeurs positives.
Solution :
collectionsDim maCollection As New Collection
7/28/2019 6752082-Net
46/76
46
Dim maCollection As New Collection
Une collection fonctionne plutt comme un groupe d'lments dans laquelle il est possibledajouter 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 uniqueDs 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")
Col.Remove(2) enlve l'lment numro 2
7/28/2019 6752082-Net
47/76
47
L' obj et col l ect i on ut i l i se un coupl e Cl - Val eur , pour chaque l ment .
Col.Item(2) Un lment est repr par son indice.
l'index: maCollection.Remove(2) 'Efface le second lment: Monsieur
La cl maCollection.Item("33") 'Affiche Madame
maCollection.Remove("33") 'Efface Madame
Rsum
7/28/2019 6752082-Net
48/76
48
Faire un programme qui gre un carnet dadresses.
7/28/2019 6752082-Net
49/76
49
1 :Ajouter
7/28/2019 6752082-Net
50/76
50
1 :Consulter
7/28/2019 6752082-Net
51/76
51
1 :Rechercher
7/28/2019 6752082-Net
52/76
52
7/28/2019 6752082-Net
53/76
53
Faire un programme qui gre Une bibliothque.
Les Fonctions PrdfiniesLes Fonctions PrLes Fonctions Prddfiniesfinies
Tout langage de programmation propose ainsi un certain nombre de fonctions ; certaines
7/28/2019 6752082-Net
54/76
54
Tout langage de programmation propose ainsi un certain nombre de fonctions ; certainessont 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) : renvoie le nombre de caractres dune chane- Mid(chane,n1,n2) : 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 divisiondun nombre par un deuxime nombre.
Les chanes de caractresLes chaLes chanes de caractnes de caractresres
'T U ()
7/28/2019 6752082-Net
55/76
55
'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)
'Length: Taille(d) une chane en nombre de caractre.'Afficher la taille de la chane VB
Di S A St i "VB"
7/28/2019 6752082-Net
56/76
56
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)
emove:'Enlve des caractres une certaine position dans une chane.
7/28/2019 6752082-Net
57/76
57
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(".", "/") 'Donne S= "12/02/1990"
MsgBox(LaDate)
'.Substring()
'E d h
7/28/2019 6752082-Net
58/76
58
'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 StringDim i As Integer
For i = 1 To Microsoft.VisualBasic.Len(C)
Tx += Microsoft.VisualBasic.Left(C, i) + ControlChars.CrLf
Next i
TextBox1.AppendText(Tx)
' ComparerDim maString1 As String = "salut
Dim maString2 As String = "salut"
7/28/2019 6752082-Net
59/76
59
g g
'On compare les 2 Strings, si elle sont gales cela retourne 0, l'expressuopn 0=0 est True, on la mettre dans un BooleanDim 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
Doindex = monTexte.IndexOf(monMot, index + 1)
compteur += 1
Loop Until index < 0MsgBox(compteur - 1)
Les instructions lmentaires de VB.NET
On distingue
7/28/2019 6752082-Net
60/76
60
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 etde ses priphriques.
Interfaces graphiques avec VB.NET
7/28/2019 6752082-Net
61/76
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
7/28/2019 6752082-Net
62/76
62
j , j , q , pp
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.
La Classe 'Control':Les contrles (Button, TextBox ListBox...) hritent tous de la classe Control qui hrite elle-mme de la classeSystem.WindowsForms.
Tous les objets avec reprsentation visuelle ont des proprits communes hrits de la classe Control
7/28/2019 6752082-Net
63/76
63
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 Boutonslst pour les ListBoxchk pour les CheckBoxcbo pour les combosdlg pour les DialogBoxfrm pour les Formlbl pour les labelstxt pour les Textboxtb pour les Toolsbarrb pour les radiobuttonmm pour les menus
tmr pour les timersEvnements lis aux objets avec reprsentation visuelle
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
On a vu que les objets de l'interface utilisateur ont des procdures dclenches par les vnement de cet objetExemple : Quand l'utilisateur clique sur un bouton Ok , la procdure BtOkClick s'effectue .
Les contrles TextBox.Contrle qui contient du texte qui peut tre modifi par l'utilisateur du programme.C'est la proprit Text qui contientle texte qui a t tap par l'utilisateur.
E l C t d d l' tili t ?
7/28/2019 6752082-Net
64/76
64
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 uneproprit 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 TextBoxUne fois que l'utilisateur a tap son nom , il clique sur le bouton 'Ok':Dans btOk_Click il y a:Dim nom As Stringnom= 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 ligneTexBox1.Lines(1) la seconde...
Les Cases cocherIl y a 2 sortes de case cocher:
Les CheckBox.Les RadioButton.
" h " ( h k ) Ell d d l d l' l h
7/28/2019 6752082-Net
65/76
65
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
I l f aut r egr ouper l es r adi os bout ons dans des ' Gr oupBox' par exempl e pour r endr e l es gr oupes
i ndpendant s:
I ci s i j e cl i que sur l e bout on ' OUI ' dr oi t e, cel a dcoche ' NON' mai s n' a pas d' i nf l uence sur
l e cadr e Format
La proprit Text, bien sur, permet dafficher le libell cot du bouton, on peut aussi mettre une image avec laproprit Image. CheckAlign permet de mettre la case cocher droite ou gauche du texte, TextAlign permetd'aligner le texte. Exemple pour le bouton en haut droite.
RadioButton3.Text="OUI"RadioButton3.TextAlign= MiddleCenter 'Middle=hauteur, center = horizontaleRadioButton3.CheckAlign=MiddleRight
La proprit la plus intressante de ces cases est celle qui nous permet de savoir si elle est coche ou non. Cetteproprit sappelle Checked. Sa valeur change de False True si la case est coche.
RadioButton.Checked=True 'Coche le boutonIf RadioButton.Checked=True Then ' Teste si le bouton est coch.End If
GroupBox
Il est possible de regrouper des contrles dans un container, on peut par exemple regrouper plusieurs
RadioButton.Le container peut tre un GroupBox
7/28/2019 6752082-Net
66/76
66
TP 1: Raliser une application qui fait les calculs suivants :
7/28/2019 6752082-Net
67/76
67
TP 2: Raliser une application qui affiche dans la zone du texte les numros de 1 10 :
7/28/2019 6752082-Net
68/76
68
TP 3: Raliser une application qui calcul le prix total de la voiture :
7/28/2019 6752082-Net
69/76
69
ListBox
Le cont r l e Li st Box af f i che une l i st e d' l ment s ( d' obj et s) dans l aquel l e l ' ut i l i sat eur peutf ai r e un ou pl usi eur s choi x.
7/28/2019 6752082-Net
70/76
70
La l i st e cont i ent "t ar t e", "poi sson", "vi ande", " l gumes", "sauces".I ci l ' l ment "poi sson" est sl ecti onn, i l est en bl eu.
La l i st Box cont i ent une col l ect i on d' " I t em":
El l e est vi de au dpar t .Si j ' aj out e un l ment l a Li st Box, cel a aj out e un l ment l a col l ect i on I t ems
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 lmentcommenant par 'pa'.
TP 4: Raliser une application qui affiche dans la liste les noms des fruits ou les nomsdes lgumes selon le choix puis affiche le nom dlment slectionn :
7/28/2019 6752082-Net
71/76
71
TP 5: Raliser une application qui calcule et affiche dans les zones du texte la tablede la multiplication selon le choix :
7/28/2019 6752082-Net
72/76
72
TP6 :Raliser une application qui affiche la plus grande des deux nombressaisies par lutilisateur
7/28/2019 6752082-Net
73/76
73
TP7
Le reprsentant dune socit de distribution des produits daffichage lectroniquessont rmunrs de faon suivante :
7/28/2019 6752082-Net
74/76
74
un fixe mensuel de 4000 DH une commission a pourcentage variable sur chaque tranche du chiffre daffairemensuel : 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.
7/28/2019 6752082-Net
75/76
75
TP8 :Raliser une application qui dclare et remplisse un tableau de 5valeurs numriques puis affiche ces nombres et la somme et la moyenne deces valeurs.
7/28/2019 6752082-Net
76/76
76