PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II PRO-1024
Contenu du Chapitre III u Visual Basic.NET (VB.NET) –VB et premier programme –Introduction à la programmation-objet –Applications Windows –Manipulations de fichiers –Dessins et images
VB.NET ( Introduction à la programmation-objet ) u Nous avons vu qu'un programme VB de type Application Windows était défini à l'aide d'une classe appelée Form1. u Cette section introduit les concepts de la programmation-objet dans le contexte de VB.NET. u Tous les langages de programmation modernes utilisent la programmation-objet. Bien que la notation puisse varier d'un langage à l'autre, les principes fondamentaux sont toujours les mêmes. u En fait la programmation-objet est basée fondamentalement sur le concept de classe.
VB.NET ( Introduction à la programmation-objet ) u Une classe est caractérisée par: –La définition d'une structure de données qui représente un nouveau type de données; un ensemble d’attributs; cette structure de données mémorise l'état d'un objet ou instance (un élément du nouveau type); les objets sont toujours désignés par des variables et nous pouvons référer aux éléments de la structure comme suit: nom_variable_objet. nom_élément_de_la_structure –La définition d'un ensemble de procédures (appelées des méthodes) qui sont spécialisées pour manipuler les structures de données du nouveau type; ces procédures s'appliquent uniquement dans le contexte d'un élément du nouveau type : nom_variable_objet. nom_procédure( paramètres... )
VB.NET ( Introduction à la programmation-objet ) u Éléments de bases de la programmation VB –Cette section décrit les éléments (ex: types de données) déjà définis dans VB et la syntaxe de base des instructions. u Les types primitifs de Visual Basic:
VB.NET ( Introduction à la programmation-objet ) u À partir des types de base, nous pouvons construire d'autres types de données plus complexes appelés des objets. u La description formelle de ces objets est appelée une classe. Visual Basic offre aussi un ensemble de classes (d'objets) contenu dans la librairie.NET (.NET Framework SDK (system development kit)). u Dans les versions précédentes de VB, nous retrouvions le type Variant qui était le type de données par défaut. Ce type qui pouvait contenir toutes sortes de valeurs n'existe plus avec.NET. Il est remplacé par le type Object qui est le type fondamental de toutes les données, sous.NET. u Autrefois, nous retrouvions le type Currency qui servait à représenter les valeurs monétaires. Ce type n'existe plus. Il est remplacé par le nouveau type Decimal qui est un nombre fractionnaire à point fixe sur 128 bits et qui supporte 29 chiffres significatifs. La position du point étant fixé, le type Decimal n'a pas l'imprécision des types Single et Double qui ont le point flottant.
VB.NET ( Introduction à la programmation-objet ) u Traitement simple des données –Cette section présente un exemple de programme en VB qui convertit un nombre de 3 bits en 1 chiffre octal. Ce programme sert aussi à expliquer les éléments que nous retrouvons dans un programme d'ordinateur. Nous expliquons d'abord ces éléments, et ensuite présentons le programme. u Variable –Une variable est un nom associé à une zone de mémoire. Cette variable a aussi un type qui détermine le type des données que la mémoire peut contenir. Le type détermine aussi la taille de la mémoire en bits (ou en octets). –Les commentaires dans un programme apparaîssent à droite d’une apostrophe. –L'énoncé de programme Dim sert à définir des variables. –* est l'opérateur de multiplication; autres opérateurs: +, -, / (addition, soustraction et division) Dim x as Integer ' on déclare que x est une variable contenant un entier x=3 ' mettre 3 dans la variable x; on appelle cette opération ' l'affectation; 3 est une constante de type integer (entier) Dim y as Integer y=x*5 ' x*5 est une expression arithmétique; si x contient 3, ' alors x*5 vaut 15; puis 15 est mis dans la variable y;
VB.NET ( Introduction à la programmation-objet ) u String –Les Strings sont des chaînes de caractères (des séquences). Une String est de longueur variable, i.e. que le système s'occupe de changer la taille de la mémoire requise selon nos besoins. Dim s as String' ici, s est une string de longueur variable Dim var ' les variables qui n'ont pas de type sont du type ' par défaut Object; ce type permet de s'adapter ' et de contenir les autres types s="ceci est une constante de type string" ' initialiser s avec une constante s="ceci est" s=s+" une constante de type chaine" ' le plus permet de concatener ' ensemble des chaines u En général, nous devons spécifier les types des variables. Ceci permet d'éliminer plusieurs erreurs de programmation dès le départ.
VB.NET ( Introduction à la programmation-objet ) u Procédures –Une procédure est un groupe d'instructions qui possède un nom. Nous pouvons alors demander d'exécuter ces instructions en utilisant le nom de la procédure. Il existe 2 types de procédures en VB, les Sub (subroutines) et les Function (fonctions). Par exemples: ' ici, définisons deux Sub qui s'appellent add3byRef et add3byVal ' et qui ont un paramètre x Public Sub add3byRef(ByRef x as Double) ' x entre et sort x=x+3 'ajouter 3 à x end sub Public Sub add3byVal(ByVal x as Double) ' x entre uniquement x=x+3 'ajouter 3 à x end sub
VB.NET ( Introduction à la programmation-objet ) u Procédures ' exemple d'utilisation de la Sub dans un autre programme Dim y as Double y=10 call add3byVal(y) 'ici y vaut 10 y=10 call add3byRef(y) 'ici y vaut 13
VB.NET ( Introduction à la programmation-objet ) u Procédures: –La procédure précédente incrémente une variable de 3. –Le paramètre x est une variable locale à la Sub, i.e. ce x n'est pas visible par les instructions en dehors de la Sub. Les paramètres servent à créer un lien de communication entre l'utilisateur (l’appelant) et la Sub. –Dans l'exemple précédent avec "call add3byRef(y)", x devient y et l'addition de 3 est réalisée. La variable y est alors modifiée. –Par contre, dans "call add3byVal(y)", x reçoit la valeur de y et les modifications de la variable x n'affectent en rien la variable y. –En d'autres termes, ByRef signifie que l'information entre et sort, tandis qu'avec ByVal l'information ne fait qu'entrer.
VB.NET ( Introduction à la programmation-objet ) u Les fonctions sont identiques aux Sub avec en plus un mécanisme pour retourner une valeur. u Ceci permet de faciliter l'écriture des instructions. Par exemple: Public Function mul4(ByVal x as Double) as Double' retoune un nombre mul4=x*4 ' on retourne x*4 End Function ' utilisation de la fonction précédente y=mul4(12) ' on afffecte y avec le résultat de 12*4=48
VB.NET ( Introduction à la programmation-objet ) u Plusieurs fonctions et procédures sont définies par Visual Basic (voir Help).
VB.NET ( Introduction à la programmation-objet )
u Voici une description de certaines de ces fonctions. Dim s as String Dim x, y as Double ' x et y contiennent des nombres s="1234" x=Val(s) ' la chaîne de caractères s est convertie en nombre ' x contient le nombre 1234 Dim longueur as Integer longueur=Len(s) ' longueur contient 4 (Length) x=29 y=x mod 3 ' mod (modulo) est le reste de la division de x par 3 ' y vaut 2 s=Str(1234) ' convertir en chaîne; s vaut "1234" x=9.87 y=Int(x) ' conversion en Integer avec troncature de la fraction ' y vaut 9
VB.NET ( Introduction à la programmation-objet ) u Voici une description de certaines de ces fonctions. Dim ss as String ' ss contiendra une chaîne de caractères s=" " ss=Mid(s,4,3) ' extraire une sous-chaîne de la chaîne s; 4 est la position ' du premier caractère à extraire, et 3 est le nombre de ' caractères à extraire; ss vaut "456"
VB.NET ( Introduction à la programmation-objet ) u Tableau –Un tableau est une variable qui comportent plusieurs emplacements de mémoire d'un type donné. Par exemple: Dim tabI(7) as integer ' tabI est un tableau qui contient 8 entiers tabI(0)=10 tabI(1)=20 u Les 8 entiers sont stockés dans les emplacements de mémoire donnés par: tabI(0), tabI(1),tabI(2), tabI(3),tabI(4), tabI(5), tabI(6), tabI(7),. u Le numéro de la mémoire qui apparaît entre les parenthèses représente "l'indice" du tableau tabI
VB.NET ( Introduction à la programmation-objet ) u Exemple de programme: Conversion d’un nombre binaire de 3 bits en 1 chiffre octal u Voici un exemple dans lequel nous faisons la conversion d’une chaîne de 3 bits (bits) en une chaîne de 1 caractère octal correspondant aux bits. D'abord, construisons la fenêtre (Form) qui interagit avec l'utilisateur:
VB.NET ( Introduction à la programmation-objet ) u Nous avons positionné deux TextBox, un bouton et 2 Label pour les titres en noir. u Le TextBox de gauche s'appelle "TextBoxBINAIRE", celui de droite "TextBoxOCTAL" u Le bouton "ButtonConvertir" permet d’activer la conversion. u Nous n’avons pas besoin de donner des noms particuliers aux Label parce que nous ne les utilisent pas dans le code.
VB.NET ( Introduction à la programmation-objet ) u Voici le code de la forme que vous devriez avoir:
VB.NET ( Introduction à la programmation-objet )
u Dans le code précédent, la procédure "Form_load" est appelé au démarrage du programme. Nous remplissons alors le tableau "octal" avec toutes les combinaisons possibles de 3 bits. u La procédure "ButtonConvertir_Click" qui répond à l'événement "Click" sur le bouton extrait le texte du TextBox "TextBoxBINAIRE" et le place dans la variable "te". u Ensuite, la procédure "convertir3bits" est appelée, elle trouve le texte correspondant au chiffre octal découlant de la conversion du nombre binaire de trois bits.
VB.NET ( Introduction à la programmation-objet ) u Dans la procédure "convertir3bits", les paramètres sont appelés "bits" et "o". Ces noms sont des variables locales à la procédure et n'ont de sens qu'à l'intérieur de la procédure "convertir3bits". Le type de ces variables est String. u Dans l'appel de la procédure, nous avons utilisé "te" et "r". u Dans la Sub "convertir3bits", les mots "For... Next" délimitent une séquence de lignes d'instructions qui sont répétées pour toutes les valeurs de i de 0 à 7. u Dans ces lignes, nous comparons les bits reçus avec chaque entrée du tableau octal. Si nous trouvons une égalité, nous convertissons alors i en chaîne de caractère (Str()) qui est déposée dans o, et la sub se termine ainsi (Exit Sub).
VB.NET ( Introduction à la programmation-objet ) u Si nous ne trouvons pas de correspondance entre les bits et leur chiffre octal dans le tableau octal, cela signifie que l'entrée bits est invalide. u Nous affichons alors un message d'erreur avec un MsgBox. u Note sur les tableaux: –Les tableaux en VB sont des structures de données qui contiennent entre autres une description de leurs dimensions. –Les fonctions UBound, LBound permettent d'obtenir les limites des indices des tableaux. –Évidemment, ces tableaux peuvent avoir plusieurs dimensions.
VB.NET ( Introduction à la programmation-objet ) u Le Debugger –Le "debugger" est très utile pour trouver les erreurs dans un programme et aussi pour comprendre le déroulement d'un programme. –D'abord, nous clickons dans la zone grise à gauche d'une ligne, ce qui insère un point d'arrêt (break point).
VB.NET ( Introduction à la programmation-objet )
u Cela signifie que si durant l'exécution, le programme rencontre une ligne avec un break point, l'exécution s'y arrêtera. u A ce moment, on peut examiner le contenu des variables en positionnant le curseur sur une variable. u Par exemple, nous pouvons démarrer le programme de conversion précédent.
VB.NET ( Introduction à la programmation-objet )
u Notez que "Start" va enclencher un processus de vérification de toute la syntaxe de votre programme avant de le démarrer comme tel. S'il y a une erreur, VB va vous donner un message. Vous devez au préalable corriger ces erreurs. Puis, entrez par exemple les bits "011" et clicker le bouton Convertir:
VB.NET ( Introduction à la programmation-objet ) u Le debugger stoppe sur le point d’arrêt:
VB.NET ( Introduction à la programmation-objet ) u Avec le menu "Debug/Step Over" nous pouvons exécuter la ligne suivante et le programme s'arrête de nouveau. Avec "Step Into" nous pouvons suivre le déroulement dans la procédure "convertir3bits":
VB.NET ( Introduction à la programmation-objet ) u L'option du menu "Debug/Quick Watch" permet d'examiner le contenu d'un objet. Ici nous avons sélectionné le tableau "octal" et le bouton Add Watch:
VB.NET ( Introduction à la programmation-objet ) u L’opération ADD WATCH permet d’observer le contenu d’un objet. Vous pouvez alors observer au bas à gauche, le contenu de la variable sélectionnée dans la section "Watch 1":
VB.NET ( Introduction à la programmation-objet ) u En faisant les touches de raccourcis "F10" plusieurs fois (Step Over), nous pouvons remarquer que la procédure copie la chaîne " 3" dans la variable "o" et sort de la procédure pour revenir dans la procédure appelante, après "call convertir3bits(te,r)".
VB.NET ( Introduction à la programmation-objet ) u Instructions de contrôle: Voici un programme qui illustre la plupart des instructions de contrôle. Le programme reprend l'exemple de programme précédent:
VB.NET ( Introduction à la programmation-objet )