SlideShare une entreprise Scribd logo
Programmation évènementielle
         avec VB

   ISIGK, 2011
   Adel ESSAFI
   adel.safi@imag.fr
   http://www.slideshare.net/adelessafi
Plan du cours

 Les bases de VB
   Les structures conditionnelles
   Les structures itératives
   Les structures de données complexes
   (structures, tableau, collection)
   Les procedures et les fonction
 La programmation évènementielle avec VB
     Les objets de bases
     Reactions aux évènements
génération s'adressaient aux ordinateurs en
Langages de programmation
langage binaire (des 0 et des 1).
Génération II: le langage assembleur,
s'adresse au microprocesseur instruction par
instruction.
Génération III: introduit une syntaxe et des
mots réservés, ce sont les langages
procéduraux (COBOL, Fortran, BASIC,
Pascal, langage C, RPG) ou encore à objets
(Java, C++, Eiffel, Python).
Génération IV: associée à des bases de
données, se situe un niveau au-dessus, en
intégrant la gestion de l'interface utilisateur et
en proposant un langage moins technique,
plus proche de la syntaxe naturelle.
Langages de programmation




Tendances:
    oLes   langages de programmation Internel
    oLes   langages basé sur XML (markup)
Historique du langage Visual
Basic

 Le BASIC (Beginner's All-purpose Symbolic
 Instruction Code, 1963)
 Principes de concept:
     ofacile d'utilisation pour les débutants
     oun langage généraliste (All-purpose) ;
     oautoriser l'ajout de fonctionnalités pour les
     ointeractif ;
     ofournir des messages d'erreur clairs et conviviaux   ;
     oavoir un délai de réaction faible pour les petits
     programmes ;
     oIndépendant du matériel
     oisoler l'utilisateur du système d'exploitation.
Visual Basic



 Le VB est directement dérivé du BASIC et
 permet le développement rapide
 d'applications, la création d'interfaces
 utilisateur graphiques, l'accès aux bases de
 données, ainsi que la création de contrôles
 ou d'objets ActiveX.
 VB est un langage de haut niveau
Framework

Un framework (dans notre cas, le framework
.NET de Microsoft) est une sorte d'immense
bibliothèque informatique contenant des outils
qui vont faciliter la vie du développeur
Evolution:
    oVersion   2.0 en 2005
    oVersion   3.5 en 2007
    oVersion   4 en 2010
Visual studio et framework


  oVS 2003 (Framework 1.1), VS 2005
  (Framework 2.0), VS 2008 (Framework 3.5)
  et VS 2010 (Framework 4.0).
Premier programme


   Créer un nouveau projet (application console)
Voici le code que nous devons obtenir
Module Module1
Sub Main()
End Sub
End Module
   Chaque section ce termine par END (end sub,
   end module)
   la première chose que ce dernier va faire sera
   de localiser et de sauter dans la partie appelée
   « Main »
Premier programme (exécution)




   Exécution très rapide
   Affichons un message
Console.Write("Hello World !")
   Attendons un évènement
Console.Read() Apres l exécution de ce programme, on va avoir un
message affiché sur la console. L’application va ensuite attendre une
action de l’utilisateur pour se terminer
Procédure, objets et fonctions



 Main(): fonction principale qui sera appelée lors
 de l’exécution
 console: objet offrant un ensemble de fonctions
 relié à l’affichage, la lecture, le BEEP , ……
 Fonction: ce sont les comportement que offre
 un objet (la méthode write par exemple permet d
 afficher sur la console).
 Une procédure/fonction peut prendre plusieurs
 arguments
Variables



 Dim MaVariable As type
 Les types disponibles:
     oBoolean
     oInteger
     oDouble
     oString
     oDate Stocke une date et son heure sous la
     forme « 12/06/2009 11:10:20 ».
Variables : exemples
d’utilisation



 Dim MaVariable As Integer
 MaVariable = 10
 Console.Write(MaVariable)
 Quelques opérations: Addition (+)
 Soustraction (-) Multiplication (*) Division( /)
 Division entière () Puissance (^) Modulo
 (Mod)
Les constantes




   Une constance est un objet dont la valeur
   ne change pas au cours de l’exécution
Déclaration:
Const NomConstante As Type = Valeur
Const LONGUEURTABLEAU As Integer = 9
Structures




Une structure est utilisée comme conteneur pour un petit
jeu de variables.
Permet de regrouper des données de type différent:
EXEMPLE:
Utilisation




La variable MonAdresse contient
un numéro qui est dans 'MonAdresse.Numero'
un nom de rue qui est dans 'MonAdresse.Rue'
un nom de ville qui est dans 'MonAdresse.Ville

MonAdresse.Numero=2
MonAdresse.Rue= "Grande rue"
MonAdresse.Ville= "Lyon"
Utilisation




 Mot clé With pour ne pas avoir à répéter le nom de la
 variable
 With MonAdresse
 .Rue= "Grande rue"
 .Ville= "Lyon"
 End With

 Structures et tableaux
 Dim Adresses(99) as Adresse
 'Permet de travailler sur un tableau de 100 adresses

 Adresses(33).Rue="Place de la mairie"
La fonction write




 Write: affiche sans retour à la ligne
 Writeline : affiche avec retour à la ligne
 & : concaténer deux chaines
Exemple: Que fait ce programme


Module Module1
Sub Main()
  'Initialisation des variables

   Dim MaVariable As Integer = 0

    Dim MaVariable2 As Integer = 0

     Console.WriteLine("- Multiplication de deux nombres -")

      'Demande du premier nombre stocké dans MaVariable

       Console.WriteLine("Veuillez entrer le premier nombre")

        MaVariable = Console.ReadLine()

         'Demande du second nombre stocké dans MaVariable2

          Console.WriteLine("Veuillez entrer le second nombre")

           MaVariable2 = Console.ReadLine()

            'Affiche "X x Y = " puis le résultat (multiplication

             de MaVariable par MaVariable2)

              Console.WriteLine(MaVariable & " x " & MaVariable2 & " = " &

               MaVariable * MaVariable2)
Structure conditionnelle




 If - end if : structure classique
 If – else – end if
 If –elseif – else - end if
La structure select




Select Case MaVariable
Case 1
'Si MaVariable = 1
Case 2
'Si MaVariable = 2 Case
Else 'Si MaVariable <> 1 et <> 2
End Select
Structure Do while




Do
'Instruction exécutée au moins une fois
Loop While MaVariable = 10
Structure while




While MaVariable = 10
'Exécuté tant que MaVariable = 10
End While
La boucle for




For x As Integer = 0 to 10 step 2
'Instruction à exécuter 5 fois
Next
Tableaux



    1 dimension
       oDim    MonTableau(4) As Integer
    2 dimensions
       oDim    MonTableau(3,4) As Integer
    3 dimensions
       oDim    MonTableau(2,3,4) As Integer
TAILLE D’UN TABLEAU
Le nombre de cases d'un tableau est toujours « indice + 1 ».
Réciproquement, l'index de sa dernière case est « taille - 1 ».
Les tableaux dans les structures



En Visual Basic .NET il y a 2 méthodes pour utiliser un tableau
dans une structure:
1-Méthode par initialize
Une structure peut comporter une méthode 'Initialize' qui sera
exécutée quand on déclare une variable de type structure.
Public Structure DriveInfo
Dim DriveNumber() As Short
'Noter que le nombre d'élément a disparu.
Dim DriveType As String
'maintenant on instance les 25 éléments.
Public Sub Initialize()
ReDim DriveNumber(25)
End Sub
End Structure
Les tableaux dans les structures


2. Après la déclaration de la variable, on 'Redimensionne'
le tableau.

Public Structure DriveInfo
Dim DriveNumber() As Short
Dim DriveType As String
End Structure


Function AddDrive(ByRef Number As ShorByRef
DriveLabel As String) As Object
Dim Drives As DriveInfo
Redim Drives.DriveNumber(25)
Drives.DriveNumber(3)=12
Drives.DriveType = "Fixed"
End Function
Opérations sur les tableaux:
affichage
'afficher les éléments un par un
for i=0 to N
   console.write(t(i))
Next
recherche dans un tableau
 Pour une liste non triée, on n'a pas d'autres choix que de comparer la
 string cherchée à chaque élément du tableau, on utilisera donc une boucle:


 N=4 'tableau de 5 éléments.
 Dim T(N) As String 'élément de 0 à 4
 T(0)="vert"
 T(1)="bleu"
 T(2)="rouge"
 T(3)="jaune"
 T(4)="blanc"
 Dim i As Integer 'Variable de boucle
 Dim AChercher As String= "rouge" 'String à chercher
 For i=0 To N
     If T(i)=AChercher then
          Exit For
     End if
 Next i
opérations sur les tableaux: supprimer

si on veut supprimer l'élément d'indice x, on doit copier les élements d'indices
i+1 dans l'element d'indice i pour tout i>=x


Dim N As Integer
Dim T(N) As String
'création d'un tableau de String.
Dim i As Integer
For i= x To N-1
   T(i)=T(i+1)
Next i
T(N-1)=""
'ne pas oublier de modifier le dernier élément
opérations sur les tableaux : insérer un
élement
pour insérer un element à l'indice x, on doit decaler toutes
les cases à partir de x d'une unité et insérer l'élément voulu à l'endroit x

Dim N As Integer
Dim T(N) As String
 'création d'un tableau de String.
Dim i As Integer
For i= N-1 To x+1 Step -1
   T(i)=T(i-1)
Next i
T(x)="LFSI"
'ne pas oublier d'ajouter
Opérations sur les tableaux: recherche
d'un élément
Pour une liste non triée, on n'a pas d'autres choix que de comparer la
string cherchée à chaque élément du tableau, on utilisera donc une
boucle:
N=4 'tableau de 5 éléments.
Dim T(N) As String 'élément de 0 à 4
T(0)="vert"
T(1)="bleu"
T(2)="rouge"
T(3)="jaune"
T(4)="blanc"
Dim i As Integer 'Variable de boucle
Dim AChercher As String= "rouge" 'String à chercher
For i=0 To N
    If T(i)=AChercher then
         Exit For
    End if
Next i
Les collections
Les Collections permettent de regrouper des données. Les collections sont
très utilisées dans la programmation 'Objet'.

Une collection fonctionne plutôt comme un groupe d'éléments dans laquelle il est
possible d'ajouter ou d'enlever un élément à n'importe quel endroit sans avoir à
se préoccuper de la taille de la collection, ni ou se trouve l'élément.

Le nombre d'élément n'est pas défini au départ comme dans un tableau. Dans
une collection, il n'y a aucun élément au départ, puis il n'y a que les éléments que
l'on a ajouté.

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

Les items affichés dans une ListBox donnent une idée concrète de ce qu'est une
collection.
Types de collections:
     Les Listes:ArrayList, List(Of..) VB 2005

    ...........................................
collection de type array list
 C'est une 'Liste' d'objets, d'Item:
 La ArrayList est une collection particulière: On peut y mettre des objets :
 chaînes, nombres... rien n'empêche que le premier élément soit un entier,
 le second une chaîne … .
 Il n'y a pas de clé.
 Dim L As New ArrayList()
 'On crée une collection ArrayList
  Dim L As ArrayList = ArrayList.Repeat("A", 5)
 'On crée une ArrayList de 5 éléments contenant chacun "A" (on répète "A")
 L.Add("Bonjour")
 'On ajoute un élément à la collection
arraylist : quelques opérations
L.Remove("Bonjour")
'On enlève l'élément de la liste qui contient "Bonjour"
L.RemoveAt(0)
'On enlève l'élément 0 de la liste
L.Sort()
'Trie la collection
L.Clear()
'Efface tous les éléments
L.Contains (élément)
' Retourne True si la liste contient élément.
arraylist: quelques opération
 Insert permet d'insérer à un index spécifié:
 L.Insert( position, Ainserrer)recherche
 L.Containts (élément) ' Retourne True si la liste contient 'élément'.
 Recherche d'un élément dans une collection NON TRIEE avec IndexOf:
 Dim l As New ArrayList
 Dim i As Integer
 l.Add("toto")
 l.Add("lulu")
 i = l.IndexOf("lulu")
 MsgBox(i.ToString)
 'Affiche 1 qui est l'index de "lulu"
Fonction et procédure




 Une procédure est un ensemble d'instructions qui effectue
 une fonction précise.
 En Visual Basic.NET, il existe deux sortes de procédures :
 les 'sub' et les 'function' .
     oLes 'sub' commencent par le mot clé 'sub' puis finissent
     par 'end sub' et ne retournent aucune valeur
     oLes fonctions qui débutent par 'function' puis finissent
     par 'end function' et qui retournent une valeur précise.
Les fonctions




   Syntaxe
Function NOMF(ByVal Valeur1 As Integer, ByVal Valeur2 As Integer)
As Integer
Instructions ……
Return Resultat
End Function
Arguments d'une fonction




Passage par valeur (ByVal)
La procédure utilise alors une copie de la variable. La
valeur de la variable ne peut pas être modifiée par la
procédure.
Passage par référence (ByRef)
L'adresse de la variable qui est passée à la procédure et
peut donc être modifiée par la procédure.
Fonctions/Procedure et Structures




Sub AfficheAdresse( ByVal Une Adresse As Adresse)
...Imprimer l'adresse
End sub
La boucle For each



Structure générale :
For Each Item In Collection'boucleNext Item
Exemple
dim tab(10) as integer
for each v in tab
s=s+v
next v
Partie II : Programmation
événementielle
Créer un projet

•Créer nouveau projet
•Choisir « application windows forms »

•Le contrôle de base « form »

•Le contrôle de base en Visual Basic est la

feuille, ou formulaire, en anglais, Form.
•Deux proriétés basiques:

•Name: nom de l’objet tel qu’il est géré par

l’application
•Caption: texte associé à l’objet sur l’écran
Autres propriétés




•Modal : propriété qui gère le caractère « impératif » ou non
de toute Form (on peut cliquer ou non en dehors de la form,
sur une autre Form)
•Style : propriété qui gère la tête générale de la Form

(présence ou non du menu système, tête des bordures, etc.)
•Visible : propriété booléenne qui gère, comme son nom

l’indique, le caractère visible ou non de la Form (et partant,
des autres contrôles qu’elle contient)
Form (propriétés)




    •BackColor: Définis l'arrière plan du contrôle
    •Text: Le titre de la form

    •Name: Le nom du contrôle utilisé dans le codage

    •Enabled: Indique si le contrôle est activé ou pas
Form (propriétés)
Un Label


 Un Label est un contrôle "inerte", qui sert
 •

 à afficher un texte sur une Form.
    •Name : Nom de l’objet
    •Caption : évidemment
    •Alignment : qui règle l’alignement du
    texte (gauche, centré, droite)
    •BorderStyle : qui désigne le type de
    bordure
Un textbox (zone de texte)
Un textbox (zone de texte)

Ces zones (de la classe "TextBox" pour VB)
peuvent servir à saisir une information (un texte).
toute information contenue dans une zone de
texte est obligatoirement de type texte !
Propriétés :
    oText: C’est la propriété qui désigne son contenu.
    oMultiline : autorise ou non l’écriture sur plusieurs lignes
    oScrollbars : fait figurer dans la TextBox une barre de
    défilement horizontale ou verticale (ou les deux)
    oPasswordChar : crypte le texte entré par le caractère
    stipulé (généralement, on choisit le caractère *)
    oMaxLength : limite le nombre de caractères qu’il est
    possible de saisir dans la zone de texte.
Le bouton


 Le bouton est le composant le plus important
 puisque c'est grâce à lui que l'utilisateur pourra
 interagir avec le programme. Un bouton permet
 essentiellement de valider ou d'annuler une
 fonction.
     oText: Le texte du bouton
     oTextAlign: L'alignement du texte du bouton
     oEnabled Indique si le contrôle est activé ou pas
     oVisible Indique si le contrôle est visible ou pas
     oName Le nom du contrôle utilisé dans le codage
     oSize La taille du contrôle en pixels
Accéder aux objets

 •Pour accéder aux informations (données) dans
 le formulaire, on utilise la syntaxe suivante
 •Nomobjet.propriété

 •Exemple
      Somme.text=5
      ComboBox1.SelectedIndex=1
      ‘pour sélectionner l’element à afficher
Les checkbox
Les checkbox


 •Les " cases à cocher " (CheckBox): Elles sont
 carrées, et indépendantes les unes des autres, si
 l'utilisateur coche une case , cela n'a pas d'influence
 sur les autres cases du formulaire, qu'elles soient
 regroupées dans un cadre pour faire plus joli ou non
     •Checked: Indique si la case est cochée
     •CheckState: Indique l'état de la case à cocher
Les boutons radios
Les boutons radios


Les " boutons radio " (RadioButton): Ils sont
ronds et font toujours partie d'un groupe (Ils
sont dans une fenêtre ou dessinés dans un
objet GroupBox ). Ce groupe est indispensable,
car au sein d'un groupe de RadioButton, un seul
bouton peut être coché à la fois : si l'utilisateur
en coche un, les autres se décochent
La Combobox
La Combobox


Les ComboBox sont des menus
déroulants. Elles permettent de choisir
une option parmi plusieurs
  oSorted: Indique comment sont triés
  les éléments de la liste
  oItems: Permet d'ajouter les éléments
  dans la liste déroulante
La Listbox
La ListBox

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

•Vider la ListBox

•ListBox1.Items.Clear()

•Ajouter un ou des éléments

•ListBox1.Items.Add(" quelquechose")

•Ajouter un tableau

    oDim t() As String {"Franc", "Norgege",   " Thaïlande" }
    oMe.ListBox1.Items.AddRange(t)
procédures événementielles


   • un événement est un message envoyé par un objet qui annonce
    que quelque chose s'est produit
    •A chaque objet créé peuvent correspondre autant de procédures

    que d’événements possibles survenant sur cet objet
    •Double click sur l’objet : la procédure gérant l’événement le

    plus courant pour l’objet considéré vient d’être créée
    •CODE CREE ->

Private Sub RadioButton1_CheckedChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
RadioButton1.CheckedChanged

End Sub
procédures événementielles



   • Private signifie que la procédure n’est utilisable que pour la
    Form considérée (et pas pour d’autres objets situés sur d’autres
    Form). On peut aussi créer des procédures Public
    •End Sub marque la fin de la procédure en question (mais pas la

    fin de l’application).
Les évènements, dans le Framework .Net, utilisent tous ou presque,
ce type de signature :
•Sender représente l’instance qui a lancé cet évènement.
•e, de type EventArgs ou héritant d’EventArgs, sert à transmettre des
informations supplémentaires.
La fonction MessageBox
C'est une fonction qui affiche un message
dans une boîte de dialogue, attend que
l'utilisateur clique sur un bouton (Ok ou Oui-
Non..), puis retourne si on le désire, le nom du
bouton cliqué par l'utilisateur.
On utilise la méthode Show pour afficher la
boite.
On doit fournir le texte à afficher, on peut
aussi fournir le titre dans la barre, le type de
bouton , le type d'icône et le bouton par
défaut, une option , la présence d'un bouton
d'aide.
La fonction MessageBox:
Exemple

•MessageBox.show(Texte,Titre, TypeBouton , Icone,
BoutonParDéfaut, Option, Bouton aide)
•MessageBox.Show("bonjour", "Programme",

MessageBoxButtons.YesNo, MessageBoxIcon.Error,
_ MessageBoxDefaultButton.Button1,
MessageBoxOptions.RightAlign, True)
InputBox

•C'est une fonction qui permet d'ouvrir une fenêtre
qui pose une question :
•Elle retourne la réponse tapée par l'utilisateur.

•Le retour est effectué dans une variable String.

•Dim Nom As String Nom =

InputBox("Bonjour","Tapez votre nom ?")
Références
http://www.areaprog.com/vb6/cours-31-combobox-description-du-controle-
combobox

Contenu connexe

Tendances

C# langage & syntaxe
C#   langage & syntaxeC#   langage & syntaxe
C# langage & syntaxe
Mahfoud EL HOUDAIGUI
 
Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)
Stéphanie Hertrich
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
Aziz Darouichi
 
Formation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procéduraleFormation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procédurale
kemenaran
 
Cours c#
Cours c#Cours c#
Cours c#
zan
 
Et3 5 diagsequence
Et3 5 diagsequenceEt3 5 diagsequence
Et3 5 diagsequence
perivou agoula
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieurFredy Fadel
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019
Aziz Darouichi
 
Composition, agrégation et immuabilité
Composition, agrégation et immuabilitéComposition, agrégation et immuabilité
Composition, agrégation et immuabilité
ECAM Brussels Engineering School
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
Haytam EL YOUSSFI
 
Les fondamentaux du langage C
Les fondamentaux du langage CLes fondamentaux du langage C
Les fondamentaux du langage C
Abdoulaye Dieng
 
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Loic Yon
 
Javascript pour les Développeurs WEB
Javascript pour les Développeurs WEBJavascript pour les Développeurs WEB
Javascript pour les Développeurs WEB
Abbes Rharrab
 
Chap2fonctionscpp
Chap2fonctionscppChap2fonctionscpp
Chap2fonctionscpp
Aziz Darouichi
 
Debutermatlab
DebutermatlabDebutermatlab
Debutermatlabnejmzad
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
ECAM Brussels Engineering School
 
C++ Metaprogramming : multidimensional typelist
C++ Metaprogramming : multidimensional typelistC++ Metaprogramming : multidimensional typelist
C++ Metaprogramming : multidimensional typelist
Vincent Agnus
 
Cours 1 bases de matlab 2eme annees
Cours 1   bases de matlab 2eme anneesCours 1   bases de matlab 2eme annees
Cours 1 bases de matlab 2eme anneesTarik Taleb Bendiab
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
Aziz Darouichi
 

Tendances (20)

C# langage & syntaxe
C#   langage & syntaxeC#   langage & syntaxe
C# langage & syntaxe
 
Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
 
Formation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procéduraleFormation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procédurale
 
Cours c#
Cours c#Cours c#
Cours c#
 
Et3 5 diagsequence
Et3 5 diagsequenceEt3 5 diagsequence
Et3 5 diagsequence
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieur
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019
 
Composition, agrégation et immuabilité
Composition, agrégation et immuabilitéComposition, agrégation et immuabilité
Composition, agrégation et immuabilité
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 
Les fondamentaux du langage C
Les fondamentaux du langage CLes fondamentaux du langage C
Les fondamentaux du langage C
 
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
 
Tp 1 introduction à matlab
Tp 1 introduction à matlabTp 1 introduction à matlab
Tp 1 introduction à matlab
 
Javascript pour les Développeurs WEB
Javascript pour les Développeurs WEBJavascript pour les Développeurs WEB
Javascript pour les Développeurs WEB
 
Chap2fonctionscpp
Chap2fonctionscppChap2fonctionscpp
Chap2fonctionscpp
 
Debutermatlab
DebutermatlabDebutermatlab
Debutermatlab
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
C++ Metaprogramming : multidimensional typelist
C++ Metaprogramming : multidimensional typelistC++ Metaprogramming : multidimensional typelist
C++ Metaprogramming : multidimensional typelist
 
Cours 1 bases de matlab 2eme annees
Cours 1   bases de matlab 2eme anneesCours 1   bases de matlab 2eme annees
Cours 1 bases de matlab 2eme annees
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 

En vedette

Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
les Tests unitaires
les Tests unitairesles Tests unitaires
les Tests unitaires
ISIG
 
Notes de cours d'ordonnancement
Notes de cours d'ordonnancementNotes de cours d'ordonnancement
Notes de cours d'ordonnancement
ISIG
 
lpi 101 notes de cours
lpi 101 notes de courslpi 101 notes de cours
lpi 101 notes de cours
ISIG
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
ISIG
 
Water Nickel Content Detector by ACMAS Technologies Pvt Ltd.
Water Nickel Content Detector by ACMAS Technologies Pvt Ltd.Water Nickel Content Detector by ACMAS Technologies Pvt Ltd.
Water Nickel Content Detector by ACMAS Technologies Pvt Ltd.
Acmas Technologies Pvt. Ltd.
 
Essential twitter tools
Essential twitter toolsEssential twitter tools
Essential twitter tools
451 Marketing
 
Canadian Open - July 25
Canadian Open - July 25Canadian Open - July 25
Canadian Open - July 25
Adam_Stanley
 
RESEARCH WITH LOW-LITERATE ADOLESCENT & ADULT L2 LEARNERS
RESEARCH WITH LOW-LITERATE ADOLESCENT & ADULT L2 LEARNERS  RESEARCH WITH LOW-LITERATE ADOLESCENT & ADULT L2 LEARNERS
RESEARCH WITH LOW-LITERATE ADOLESCENT & ADULT L2 LEARNERS
Andrea DeCapua
 
Calificaciones finales 1er sem gen 11 12
Calificaciones finales 1er sem gen 11 12Calificaciones finales 1er sem gen 11 12
Calificaciones finales 1er sem gen 11 12
246plug
 
半導體製造業晶圓廠設施安全檢核指引
半導體製造業晶圓廠設施安全檢核指引半導體製造業晶圓廠設施安全檢核指引
半導體製造業晶圓廠設施安全檢核指引5045033
 
Calificaciones 1er Semestre Gen 12 - 13
Calificaciones 1er Semestre Gen 12 - 13Calificaciones 1er Semestre Gen 12 - 13
Calificaciones 1er Semestre Gen 12 - 13
246plug
 
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware
 
Yet Another Three QVT Languages
Yet Another Three QVT LanguagesYet Another Three QVT Languages
Yet Another Three QVT Languages
Edward Willink
 
What fUML can bring to MBSE?
What fUML can bring to MBSE?What fUML can bring to MBSE?
What fUML can bring to MBSE?
RealTime-at-Work (RTaW)
 
Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire
Erradi Mohamed
 
Collaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsCollaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source Projects
Jordi Cabot
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal Perspective
Edward Willink
 
Mix
MixMix

En vedette (20)

Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
les Tests unitaires
les Tests unitairesles Tests unitaires
les Tests unitaires
 
Notes de cours d'ordonnancement
Notes de cours d'ordonnancementNotes de cours d'ordonnancement
Notes de cours d'ordonnancement
 
lpi 101 notes de cours
lpi 101 notes de courslpi 101 notes de cours
lpi 101 notes de cours
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
 
Water Nickel Content Detector by ACMAS Technologies Pvt Ltd.
Water Nickel Content Detector by ACMAS Technologies Pvt Ltd.Water Nickel Content Detector by ACMAS Technologies Pvt Ltd.
Water Nickel Content Detector by ACMAS Technologies Pvt Ltd.
 
Essential twitter tools
Essential twitter toolsEssential twitter tools
Essential twitter tools
 
Canadian Open - July 25
Canadian Open - July 25Canadian Open - July 25
Canadian Open - July 25
 
RESEARCH WITH LOW-LITERATE ADOLESCENT & ADULT L2 LEARNERS
RESEARCH WITH LOW-LITERATE ADOLESCENT & ADULT L2 LEARNERS  RESEARCH WITH LOW-LITERATE ADOLESCENT & ADULT L2 LEARNERS
RESEARCH WITH LOW-LITERATE ADOLESCENT & ADULT L2 LEARNERS
 
Calificaciones finales 1er sem gen 11 12
Calificaciones finales 1er sem gen 11 12Calificaciones finales 1er sem gen 11 12
Calificaciones finales 1er sem gen 11 12
 
半導體製造業晶圓廠設施安全檢核指引
半導體製造業晶圓廠設施安全檢核指引半導體製造業晶圓廠設施安全檢核指引
半導體製造業晶圓廠設施安全檢核指引
 
Calificaciones 1er Semestre Gen 12 - 13
Calificaciones 1er Semestre Gen 12 - 13Calificaciones 1er Semestre Gen 12 - 13
Calificaciones 1er Semestre Gen 12 - 13
 
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
 
Yet Another Three QVT Languages
Yet Another Three QVT LanguagesYet Another Three QVT Languages
Yet Another Three QVT Languages
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
What fUML can bring to MBSE?
What fUML can bring to MBSE?What fUML can bring to MBSE?
What fUML can bring to MBSE?
 
Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire
 
Collaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsCollaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source Projects
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal Perspective
 
Mix
MixMix
Mix
 

Similaire à Visual studio

Initiation r
Initiation rInitiation r
Cours de Matlab
Cours de MatlabCours de Matlab
Mat lab1
Mat lab1Mat lab1
Mat lab1fouadDD
 
Tp1 matlab
Tp1 matlab Tp1 matlab
Tp1 matlab
Wajdi Ben Helal
 
syntax-matlab.pdf
syntax-matlab.pdfsyntax-matlab.pdf
syntax-matlab.pdf
YasmineChihab
 
eExercices corrigesdivers
eExercices corrigesdiverseExercices corrigesdivers
eExercices corrigesdivers
Hajar Yazine
 
Exercicescorrigesdivers
ExercicescorrigesdiversExercicescorrigesdivers
ExercicescorrigesdiversKarim Amane
 
3 vb reference
3 vb reference3 vb reference
3 vb referencekkatia31
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de données
ECAM Brussels Engineering School
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
Shellmates
 
Ebook matlab
Ebook matlabEbook matlab
Ebook matlabN NASRI
 
Presentation Csharp et winforms
Presentation Csharp et winformsPresentation Csharp et winforms
Presentation Csharp et winforms
Christophe Zome
 
langage C++
langage C++langage C++
langage C++
mohamednacim
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptx
LamissGhoul1
 
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
MSDEVMTL
 
Cours programmation en langage C.pdf
Cours  programmation  en  langage  C.pdfCours  programmation  en  langage  C.pdf
Cours programmation en langage C.pdf
khalidmoussaid4
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++
Lilia Sfaxi
 
Université des langages scala
Université des langages   scalaUniversité des langages   scala
Université des langages scala
Fabrice Sznajderman
 

Similaire à Visual studio (20)

Initiation r
Initiation rInitiation r
Initiation r
 
Cours de Matlab
Cours de MatlabCours de Matlab
Cours de Matlab
 
Mat lab1
Mat lab1Mat lab1
Mat lab1
 
Tp1 matlab
Tp1 matlab Tp1 matlab
Tp1 matlab
 
syntax-matlab.pdf
syntax-matlab.pdfsyntax-matlab.pdf
syntax-matlab.pdf
 
Chapitre 2
Chapitre 2Chapitre 2
Chapitre 2
 
eExercices corrigesdivers
eExercices corrigesdiverseExercices corrigesdivers
eExercices corrigesdivers
 
Exercicescorrigesdivers
ExercicescorrigesdiversExercicescorrigesdivers
Exercicescorrigesdivers
 
Chapitre 3 et 4
Chapitre 3 et 4Chapitre 3 et 4
Chapitre 3 et 4
 
3 vb reference
3 vb reference3 vb reference
3 vb reference
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de données
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 
Ebook matlab
Ebook matlabEbook matlab
Ebook matlab
 
Presentation Csharp et winforms
Presentation Csharp et winformsPresentation Csharp et winforms
Presentation Csharp et winforms
 
langage C++
langage C++langage C++
langage C++
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptx
 
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
 
Cours programmation en langage C.pdf
Cours  programmation  en  langage  C.pdfCours  programmation  en  langage  C.pdf
Cours programmation en langage C.pdf
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++
 
Université des langages scala
Université des langages   scalaUniversité des langages   scala
Université des langages scala
 

Dernier

Veille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdfVeille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdf
frizzole
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 
Textes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdfTextes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdf
Michel Bruley
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
BenotGeorges3
 
Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union
 
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
M2i Formation
 

Dernier (7)

Veille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdfVeille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdf
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
 
Textes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdfTextes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdf
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
 
Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
 
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023
 
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
 

Visual studio

  • 1. Programmation évènementielle avec VB ISIGK, 2011 Adel ESSAFI adel.safi@imag.fr http://www.slideshare.net/adelessafi
  • 2. Plan du cours Les bases de VB Les structures conditionnelles Les structures itératives Les structures de données complexes (structures, tableau, collection) Les procedures et les fonction La programmation évènementielle avec VB Les objets de bases Reactions aux évènements
  • 3. génération s'adressaient aux ordinateurs en Langages de programmation langage binaire (des 0 et des 1). Génération II: le langage assembleur, s'adresse au microprocesseur instruction par instruction. Génération III: introduit une syntaxe et des mots réservés, ce sont les langages procéduraux (COBOL, Fortran, BASIC, Pascal, langage C, RPG) ou encore à objets (Java, C++, Eiffel, Python). Génération IV: associée à des bases de données, se situe un niveau au-dessus, en intégrant la gestion de l'interface utilisateur et en proposant un langage moins technique, plus proche de la syntaxe naturelle.
  • 4. Langages de programmation Tendances: oLes langages de programmation Internel oLes langages basé sur XML (markup)
  • 5. Historique du langage Visual Basic Le BASIC (Beginner's All-purpose Symbolic Instruction Code, 1963) Principes de concept: ofacile d'utilisation pour les débutants oun langage généraliste (All-purpose) ; oautoriser l'ajout de fonctionnalités pour les ointeractif ; ofournir des messages d'erreur clairs et conviviaux ; oavoir un délai de réaction faible pour les petits programmes ; oIndépendant du matériel oisoler l'utilisateur du système d'exploitation.
  • 6. Visual Basic Le VB est directement dérivé du BASIC et permet le développement rapide d'applications, la création d'interfaces utilisateur graphiques, l'accès aux bases de données, ainsi que la création de contrôles ou d'objets ActiveX. VB est un langage de haut niveau
  • 7. Framework Un framework (dans notre cas, le framework .NET de Microsoft) est une sorte d'immense bibliothèque informatique contenant des outils qui vont faciliter la vie du développeur Evolution: oVersion 2.0 en 2005 oVersion 3.5 en 2007 oVersion 4 en 2010 Visual studio et framework  oVS 2003 (Framework 1.1), VS 2005 (Framework 2.0), VS 2008 (Framework 3.5) et VS 2010 (Framework 4.0).
  • 8. Premier programme Créer un nouveau projet (application console) Voici le code que nous devons obtenir Module Module1 Sub Main() End Sub End Module Chaque section ce termine par END (end sub, end module) la première chose que ce dernier va faire sera de localiser et de sauter dans la partie appelée « Main »
  • 9. Premier programme (exécution) Exécution très rapide Affichons un message Console.Write("Hello World !") Attendons un évènement Console.Read() Apres l exécution de ce programme, on va avoir un message affiché sur la console. L’application va ensuite attendre une action de l’utilisateur pour se terminer
  • 10. Procédure, objets et fonctions Main(): fonction principale qui sera appelée lors de l’exécution console: objet offrant un ensemble de fonctions relié à l’affichage, la lecture, le BEEP , …… Fonction: ce sont les comportement que offre un objet (la méthode write par exemple permet d afficher sur la console). Une procédure/fonction peut prendre plusieurs arguments
  • 11. Variables Dim MaVariable As type Les types disponibles: oBoolean oInteger oDouble oString oDate Stocke une date et son heure sous la forme « 12/06/2009 11:10:20 ».
  • 12. Variables : exemples d’utilisation Dim MaVariable As Integer MaVariable = 10 Console.Write(MaVariable) Quelques opérations: Addition (+) Soustraction (-) Multiplication (*) Division( /) Division entière () Puissance (^) Modulo (Mod)
  • 13. Les constantes Une constance est un objet dont la valeur ne change pas au cours de l’exécution Déclaration: Const NomConstante As Type = Valeur Const LONGUEURTABLEAU As Integer = 9
  • 14. Structures Une structure est utilisée comme conteneur pour un petit jeu de variables. Permet de regrouper des données de type différent: EXEMPLE:
  • 15. Utilisation La variable MonAdresse contient un numéro qui est dans 'MonAdresse.Numero' un nom de rue qui est dans 'MonAdresse.Rue' un nom de ville qui est dans 'MonAdresse.Ville MonAdresse.Numero=2 MonAdresse.Rue= "Grande rue" MonAdresse.Ville= "Lyon"
  • 16. Utilisation Mot clé With pour ne pas avoir à répéter le nom de la variable With MonAdresse .Rue= "Grande rue" .Ville= "Lyon" End With Structures et tableaux Dim Adresses(99) as Adresse 'Permet de travailler sur un tableau de 100 adresses Adresses(33).Rue="Place de la mairie"
  • 17. La fonction write Write: affiche sans retour à la ligne Writeline : affiche avec retour à la ligne & : concaténer deux chaines
  • 18. Exemple: Que fait ce programme Module Module1 Sub Main() 'Initialisation des variables Dim MaVariable As Integer = 0 Dim MaVariable2 As Integer = 0 Console.WriteLine("- Multiplication de deux nombres -") 'Demande du premier nombre stocké dans MaVariable Console.WriteLine("Veuillez entrer le premier nombre") MaVariable = Console.ReadLine() 'Demande du second nombre stocké dans MaVariable2 Console.WriteLine("Veuillez entrer le second nombre") MaVariable2 = Console.ReadLine() 'Affiche "X x Y = " puis le résultat (multiplication de MaVariable par MaVariable2) Console.WriteLine(MaVariable & " x " & MaVariable2 & " = " & MaVariable * MaVariable2)
  • 19. Structure conditionnelle If - end if : structure classique If – else – end if If –elseif – else - end if
  • 20. La structure select Select Case MaVariable Case 1 'Si MaVariable = 1 Case 2 'Si MaVariable = 2 Case Else 'Si MaVariable <> 1 et <> 2 End Select
  • 21. Structure Do while Do 'Instruction exécutée au moins une fois Loop While MaVariable = 10
  • 22. Structure while While MaVariable = 10 'Exécuté tant que MaVariable = 10 End While
  • 23. La boucle for For x As Integer = 0 to 10 step 2 'Instruction à exécuter 5 fois Next
  • 24. Tableaux  1 dimension oDim MonTableau(4) As Integer  2 dimensions oDim MonTableau(3,4) As Integer  3 dimensions oDim MonTableau(2,3,4) As Integer TAILLE D’UN TABLEAU Le nombre de cases d'un tableau est toujours « indice + 1 ». Réciproquement, l'index de sa dernière case est « taille - 1 ».
  • 25. Les tableaux dans les structures En Visual Basic .NET il y a 2 méthodes pour utiliser un tableau dans une structure: 1-Méthode par initialize Une structure peut comporter une méthode 'Initialize' qui sera exécutée quand on déclare une variable de type structure. Public Structure DriveInfo Dim DriveNumber() As Short 'Noter que le nombre d'élément a disparu. Dim DriveType As String 'maintenant on instance les 25 éléments. Public Sub Initialize() ReDim DriveNumber(25) End Sub End Structure
  • 26. Les tableaux dans les structures 2. Après la déclaration de la variable, on 'Redimensionne' le tableau. Public Structure DriveInfo Dim DriveNumber() As Short Dim DriveType As String End Structure Function AddDrive(ByRef Number As ShorByRef DriveLabel As String) As Object Dim Drives As DriveInfo Redim Drives.DriveNumber(25) Drives.DriveNumber(3)=12 Drives.DriveType = "Fixed" End Function
  • 27. Opérations sur les tableaux: affichage 'afficher les éléments un par un for i=0 to N console.write(t(i)) Next
  • 28. recherche dans un tableau Pour une liste non triée, on n'a pas d'autres choix que de comparer la string cherchée à chaque élément du tableau, on utilisera donc une boucle: N=4 'tableau de 5 éléments. Dim T(N) As String 'élément de 0 à 4 T(0)="vert" T(1)="bleu" T(2)="rouge" T(3)="jaune" T(4)="blanc" Dim i As Integer 'Variable de boucle Dim AChercher As String= "rouge" 'String à chercher For i=0 To N If T(i)=AChercher then Exit For End if Next i
  • 29. opérations sur les tableaux: supprimer si on veut supprimer l'élément d'indice x, on doit copier les élements d'indices i+1 dans l'element d'indice i pour tout i>=x Dim N As Integer Dim T(N) As String 'création d'un tableau de String. Dim i As Integer For i= x To N-1 T(i)=T(i+1) Next i T(N-1)="" 'ne pas oublier de modifier le dernier élément
  • 30. opérations sur les tableaux : insérer un élement pour insérer un element à l'indice x, on doit decaler toutes les cases à partir de x d'une unité et insérer l'élément voulu à l'endroit x Dim N As Integer Dim T(N) As String 'création d'un tableau de String. Dim i As Integer For i= N-1 To x+1 Step -1 T(i)=T(i-1) Next i T(x)="LFSI" 'ne pas oublier d'ajouter
  • 31. Opérations sur les tableaux: recherche d'un élément Pour une liste non triée, on n'a pas d'autres choix que de comparer la string cherchée à chaque élément du tableau, on utilisera donc une boucle: N=4 'tableau de 5 éléments. Dim T(N) As String 'élément de 0 à 4 T(0)="vert" T(1)="bleu" T(2)="rouge" T(3)="jaune" T(4)="blanc" Dim i As Integer 'Variable de boucle Dim AChercher As String= "rouge" 'String à chercher For i=0 To N If T(i)=AChercher then Exit For End if Next i
  • 32. Les collections Les Collections permettent de regrouper des données. Les collections sont très utilisées dans la programmation 'Objet'. Une collection fonctionne plutôt comme un groupe d'éléments dans laquelle il est possible d'ajouter ou d'enlever un élément à n'importe quel endroit sans avoir à se préoccuper de la taille de la collection, ni ou se trouve l'élément. Le nombre d'élément n'est pas défini au départ comme dans un tableau. Dans une collection, il n'y a aucun élément au départ, puis il n'y a que les éléments que l'on a ajouté. Les éléments sont repérés grâce à un index ou avec une Clé unique Les items affichés dans une ListBox donnent une idée concrète de ce qu'est une collection. Types de collections:  Les Listes:ArrayList, List(Of..) VB 2005 ...........................................
  • 33. collection de type array list C'est une 'Liste' d'objets, d'Item: La ArrayList est une collection particulière: On peut y mettre des objets : chaînes, nombres... rien n'empêche que le premier élément soit un entier, le second une chaîne … . Il n'y a pas de clé. Dim L As New ArrayList() 'On crée une collection ArrayList Dim L As ArrayList = ArrayList.Repeat("A", 5) 'On crée une ArrayList de 5 éléments contenant chacun "A" (on répète "A") L.Add("Bonjour") 'On ajoute un élément à la collection
  • 34. arraylist : quelques opérations L.Remove("Bonjour") 'On enlève l'élément de la liste qui contient "Bonjour" L.RemoveAt(0) 'On enlève l'élément 0 de la liste L.Sort() 'Trie la collection L.Clear() 'Efface tous les éléments L.Contains (élément) ' Retourne True si la liste contient élément.
  • 35. arraylist: quelques opération Insert permet d'insérer à un index spécifié: L.Insert( position, Ainserrer)recherche L.Containts (élément) ' Retourne True si la liste contient 'élément'. Recherche d'un élément dans une collection NON TRIEE avec IndexOf: Dim l As New ArrayList Dim i As Integer l.Add("toto") l.Add("lulu") i = l.IndexOf("lulu") MsgBox(i.ToString) 'Affiche 1 qui est l'index de "lulu"
  • 36. Fonction et procédure Une procédure est un ensemble d'instructions qui effectue une fonction précise. En Visual Basic.NET, il existe deux sortes de procédures : les 'sub' et les 'function' . oLes 'sub' commencent par le mot clé 'sub' puis finissent par 'end sub' et ne retournent aucune valeur oLes fonctions qui débutent par 'function' puis finissent par 'end function' et qui retournent une valeur précise.
  • 37. Les fonctions Syntaxe Function NOMF(ByVal Valeur1 As Integer, ByVal Valeur2 As Integer) As Integer Instructions …… Return Resultat End Function
  • 38. Arguments d'une fonction Passage par valeur (ByVal) La procédure utilise alors une copie de la variable. La valeur de la variable ne peut pas être modifiée par la procédure. Passage par référence (ByRef) L'adresse de la variable qui est passée à la procédure et peut donc être modifiée par la procédure.
  • 39. Fonctions/Procedure et Structures Sub AfficheAdresse( ByVal Une Adresse As Adresse) ...Imprimer l'adresse End sub
  • 40. La boucle For each Structure générale : For Each Item In Collection'boucleNext Item Exemple dim tab(10) as integer for each v in tab s=s+v next v
  • 41. Partie II : Programmation événementielle
  • 42. Créer un projet •Créer nouveau projet •Choisir « application windows forms » •Le contrôle de base « form » •Le contrôle de base en Visual Basic est la feuille, ou formulaire, en anglais, Form. •Deux proriétés basiques: •Name: nom de l’objet tel qu’il est géré par l’application •Caption: texte associé à l’objet sur l’écran
  • 43. Autres propriétés •Modal : propriété qui gère le caractère « impératif » ou non de toute Form (on peut cliquer ou non en dehors de la form, sur une autre Form) •Style : propriété qui gère la tête générale de la Form (présence ou non du menu système, tête des bordures, etc.) •Visible : propriété booléenne qui gère, comme son nom l’indique, le caractère visible ou non de la Form (et partant, des autres contrôles qu’elle contient)
  • 44. Form (propriétés) •BackColor: Définis l'arrière plan du contrôle •Text: Le titre de la form •Name: Le nom du contrôle utilisé dans le codage •Enabled: Indique si le contrôle est activé ou pas
  • 46. Un Label Un Label est un contrôle "inerte", qui sert • à afficher un texte sur une Form. •Name : Nom de l’objet •Caption : évidemment •Alignment : qui règle l’alignement du texte (gauche, centré, droite) •BorderStyle : qui désigne le type de bordure
  • 47. Un textbox (zone de texte)
  • 48. Un textbox (zone de texte) Ces zones (de la classe "TextBox" pour VB) peuvent servir à saisir une information (un texte). toute information contenue dans une zone de texte est obligatoirement de type texte ! Propriétés : oText: C’est la propriété qui désigne son contenu. oMultiline : autorise ou non l’écriture sur plusieurs lignes oScrollbars : fait figurer dans la TextBox une barre de défilement horizontale ou verticale (ou les deux) oPasswordChar : crypte le texte entré par le caractère stipulé (généralement, on choisit le caractère *) oMaxLength : limite le nombre de caractères qu’il est possible de saisir dans la zone de texte.
  • 49. Le bouton Le bouton est le composant le plus important puisque c'est grâce à lui que l'utilisateur pourra interagir avec le programme. Un bouton permet essentiellement de valider ou d'annuler une fonction. oText: Le texte du bouton oTextAlign: L'alignement du texte du bouton oEnabled Indique si le contrôle est activé ou pas oVisible Indique si le contrôle est visible ou pas oName Le nom du contrôle utilisé dans le codage oSize La taille du contrôle en pixels
  • 50. Accéder aux objets •Pour accéder aux informations (données) dans le formulaire, on utilise la syntaxe suivante •Nomobjet.propriété •Exemple Somme.text=5 ComboBox1.SelectedIndex=1 ‘pour sélectionner l’element à afficher
  • 52. Les checkbox •Les " cases à cocher " (CheckBox): Elles sont carrées, et indépendantes les unes des autres, si l'utilisateur coche une case , cela n'a pas d'influence sur les autres cases du formulaire, qu'elles soient regroupées dans un cadre pour faire plus joli ou non •Checked: Indique si la case est cochée •CheckState: Indique l'état de la case à cocher
  • 54. Les boutons radios Les " boutons radio " (RadioButton): Ils sont ronds et font toujours partie d'un groupe (Ils sont dans une fenêtre ou dessinés dans un objet GroupBox ). Ce groupe est indispensable, car au sein d'un groupe de RadioButton, un seul bouton peut être coché à la fois : si l'utilisateur en coche un, les autres se décochent
  • 56. La Combobox Les ComboBox sont des menus déroulants. Elles permettent de choisir une option parmi plusieurs oSorted: Indique comment sont triés les éléments de la liste oItems: Permet d'ajouter les éléments dans la liste déroulante
  • 58. La ListBox •Le contrôle ListBox affiche une liste d'éléments (d'objets) dans laquelle l'utilisateur peut faire un ou plusieurs choix. •Exemple de codes •Vider la ListBox •ListBox1.Items.Clear() •Ajouter un ou des éléments •ListBox1.Items.Add(" quelquechose") •Ajouter un tableau oDim t() As String {"Franc", "Norgege", " Thaïlande" } oMe.ListBox1.Items.AddRange(t)
  • 59. procédures événementielles • un événement est un message envoyé par un objet qui annonce que quelque chose s'est produit •A chaque objet créé peuvent correspondre autant de procédures que d’événements possibles survenant sur cet objet •Double click sur l’objet : la procédure gérant l’événement le plus courant pour l’objet considéré vient d’être créée •CODE CREE -> Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged End Sub
  • 60. procédures événementielles • Private signifie que la procédure n’est utilisable que pour la Form considérée (et pas pour d’autres objets situés sur d’autres Form). On peut aussi créer des procédures Public •End Sub marque la fin de la procédure en question (mais pas la fin de l’application). Les évènements, dans le Framework .Net, utilisent tous ou presque, ce type de signature : •Sender représente l’instance qui a lancé cet évènement. •e, de type EventArgs ou héritant d’EventArgs, sert à transmettre des informations supplémentaires.
  • 61. La fonction MessageBox C'est une fonction qui affiche un message dans une boîte de dialogue, attend que l'utilisateur clique sur un bouton (Ok ou Oui- Non..), puis retourne si on le désire, le nom du bouton cliqué par l'utilisateur. On utilise la méthode Show pour afficher la boite. On doit fournir le texte à afficher, on peut aussi fournir le titre dans la barre, le type de bouton , le type d'icône et le bouton par défaut, une option , la présence d'un bouton d'aide.
  • 62. La fonction MessageBox: Exemple •MessageBox.show(Texte,Titre, TypeBouton , Icone, BoutonParDéfaut, Option, Bouton aide) •MessageBox.Show("bonjour", "Programme", MessageBoxButtons.YesNo, MessageBoxIcon.Error, _ MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign, True)
  • 63. InputBox •C'est une fonction qui permet d'ouvrir une fenêtre qui pose une question : •Elle retourne la réponse tapée par l'utilisateur. •Le retour est effectué dans une variable String. •Dim Nom As String Nom = InputBox("Bonjour","Tapez votre nom ?")