6752082-Net

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