DU LANGAGE VISUAL BASIC: - STRUCTURES DE CONTROLE Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE Cours VB 2007/2008
I. Types variables et constantes Tableaux Types de données spécifiques Cours VB – ISG 2007/2008
I.1 Variables et Constantes Le nom d’une variable doit forcément respecter les règles suivantes : Ne doit pas contenir plus de 40 caractères Peut inclure un mélange de lettres, de chiffres et du symbole « _ » souligné Le premier caractère doit forcément être une lettre Les majuscules et les minuscules sont identiques Les caractères accentués sont autorisés Ne doit pas être un mot réservé de VB Les constantes sont déclarées dans une feuille ou un module à l’aide de l’instruction : Const : pour être utilisée localement Global Const : pour être utilisée globalement Global Const b As Integer = 1 dans un module Cours VB – ISG 2007/2008
I.2 Les types simples prédéfinis Type de données Taille Plage de valeurs Suffixe Byte 1 octet 0 à 255 Integer (Entier) 2 octets -32768 à + 32767 % Long (Entier long) 4 octets -2.147.483.648 à + 2.147.483.647 & Single (Réel simple précision) (-3.042.823)38 à (+3.402823)38 ! Double (Réel double précision) 8 octets (-1.79769313486232)308 à (+1.79769313486232)308 # Currency (Monnaie) -9223372036854775808 à +9223372036854775807 @ Cours VB – ISG 2007/2008
I.2 Les types simples prédéfinis String * N (Chaîne statique de N caractères) 1 octet par caractère 0 à 65 535 caractères $ String (Chaîne dynamique) Au maximum 231 caractères soit 2 milliards de caractères Boolean (Booléen) 2 octets True (1) et False (0) Date 8 octets Jours entre 1 janvier 1000 et 31 décembre 9999 et des heures entre 0:00:00 et 23:59:59 Variant 16 octets pour les nombres et 22 octets + 1 octet par caractères pour les chaînes de caractères Les plages de tous les autres types Cours VB – ISG 2007/2008
I.3 Déclarations de variables en VB Il existe 3 manières différentes pour déclarer les variables : Par défaut (Default) Implicitement (Implicit) Explicitement (Explicit) Rq: Les variables sont initialisées lors de leur déclaration a) Les déclarations par défaut Si une variable n’est pas implicitement ou explicitement déclarée, il lui est assigné le type variant par défaut. Cette variable peut alors contenir des données de type numérique (entier, réel), chaîne de caractères ou Date. Selon ce qu’on écrit : Varaible_1 = 28 ‘ Variable_1 est Integer Varaible_1 = ’’OUI ’’ ‘ Variable_1 est String La fonction VarType permet de connaître la représentation interne d’une variable Variant (retourne un numérique exemple 2 si integer). Si une variable variant contient une valeur invalide, cette valeur correspond à la valeur NULL (valeur nulle). Les fonctions IsEmpty et IsNull permettent respectivement de tester ces conditions. Cours VB – ISG 2007/2008
b) Les déclarations implicites 1er cas : L’instruction DefType indique que les variables commençant par une lettre définie à l’aide de celle-ci sont du type déclaré. Exemples : DefInt A-E Les variables commençant par A ou B ou C ou D ou E sont de type Integer. DefSng X, Y Les variables commençant par X ou Y sont de type Single. DefStr H, L-O Les variables commençant par H ou une lettre de L à O sont de type String. 2ème cas : On peut aussi utiliser le suffixe d’un type pour utiliser une variable sans la déclarer. Compteur% = Compteur% +1 Ch1$ = ’’ Ceci est une chaîne de caractères ’’ on a le droit de ne pas répéter le suffixe à chaque fois à condition de respecter la conformité des types val_majoration% = 25 val_majoration = 98 mais on n'a pas le droit dans la même procédure ou fonction de faire val_majoration = "azerty" val_majoration$ = "azerty" Cours VB – ISG 2007/2008
c) Les déclarations explicites Dim ou Static dans une Procédure/Fonction: variable locale. Dim dans la section Déclarations d’un module (ou d’une feuille), la variable est utilisable par tous les sous programmes du module (ou de la feuille). Global dans la section Déclarations d’un module tous les modules et feuilles de l’application peuvent l’utiliser. =>Pour déclarer explicitement une variable, il faut d’abord connaître sa portée (locale ou globale). Exemple : Dim A As Long Dim Ch_1 As String Static X As Integer Global V As Single Cours VB – ISG 2007/2008
c) Les déclarations explicites Si l’instruction est Dim, les variables sont réinitialisées à 0, ou Empty à chaque appel. Si l’instruction est Static, les variables gardent leur valeur avant l’exécution de celle-ci. Remarque : Il est recommandé de toujours effectuer des déclarations explicites, en les forçant par Option Explicit Exercice: Ecrire un programme qui affiche le nombre de click sur un bouton de commande. Static pour un compteur par exemple si je veux savoir le nombre de clic sur un bouton je déclare une variable static dans la procedure événement i = i+1 l’intilisation de cette variable est au moment du démarrage de l’application. Cours VB – ISG 2007/2008
I.4 Les types structurés a) Tableaux i. Tableaux à une dimension Déclaration: Tous les tableaux en VB doivent être déclarés (pas de déclaration par défaut) La dimension d’un tableau est définie entre parenthèses Par défaut, la limite inférieur d’un tableau est 0 mais peut être modifiée par l’instruction Option Base obligatoirement utilisée dans la section générale des modules. Cette instruction admet uniquement les valeurs 0 ou 1 (Option Base 1) Exemples : Déclarations d’un tableau de 30 entiers Dim test%(29) Dim test(29) As Integer Déclaration d’un tableau de 7 chaînes de caractères Dim Tsemaine(6) As String On pourra alors écrire : Tsemaine(0) = ’’Lundi ’’ Tsemaine(1) = ’’Mardi ’’ ... Tsemaine(6) = ’’Dimanche ’’ Cours VB – ISG 2007/2008
ii. Définition des limites basses et hautes d’un tableau Si on veut fixer les limites supérieures et inférieures d’un tableau, la declaration prend la forme: Dim NomVariableTableau(LimiteInférieure To LimiteSupérieure) As TypeDeDonnées Exemples: Dim Tjours(1 To 31) As Integer Dim Test%(-50 To 30) On peut lire les limites d’un tableau à l’aide des instructions : UBound : donne la limite supérieure du tableau LBound : donne la limite inférieure du tableau Lecture de la limite supérieure LimiteSup% = UBound(NomTableau, NuméroDimension) Lecture de la limite inférieure LimiteInf% = LBound(NomTableau, NuméroDimension) Cours VB – ISG 2007/2008
iii. Tableaux à plusieurs dimensions VB gère des tableaux pouvant aller jusqu’à 60 dimensions. Leur déclaration est similaire à celles des tableaux à une dimension. Les limites basses et hautes peuvent être définies séparément pour chaque dimension. La limite basse est par défaut définie pour chaque dimension à 0 et peut être modifiée à 1 par l’instruction Option Base. Exemples: ‘Deux dimensions: Dim objets%(1 To 34, -23 To 23) ‘Trois dimensions: Dim A$(20, 20, 20) ‘Quatre dimensions: Dim B(1 To 10, 2 To 10, -10 To -5, 0 To 30) As Integer Cours VB – ISG 2007/2008
iv. Redimensionnement d’un tableau Il est possible de redimensionner des tableaux en exécution avec les instructions : ReDim : Dans ce cas, toutes les valeurs seront perdues Exemple : Redim Test%(3) et Redim Preserve : Dans ce cas, on préserve toutes les données déjà affectées Exemple : Redim Preserve Test%(3) Les dimensions du tableaux doivent être initialement vide Cours VB – ISG 2007/2008
L’instruction Public permet de déclarer : v. Portée d’un tableau L’instruction Public permet de déclarer : des tableaux globaux au niveau de la feuille dans la section générale de la feuille ou au niveau du programme, dans la section générale du module L’instruction Private permet de déclarer des tableaux visibles par exemple au niveau d’un module mais pas au niveau du programme. Cours VB – ISG 2007/2008
b) Les types structurés : Types de données spécifiques ou personnalisés Une variable de type personnalisé est déclarée entre les mots-clés : Type … End Type Contrairement aux tableaux, ce type structuré permet de regrouper des données de types différents. TYPE Personne Nom As String * 40 Numéro As Integer Adresse As String DateNaissance As Date End Type Dim Etudiant1 As Personne L’accès individuel aux différents éléments d’une variable personnalisée ou enregistrement peut être fait par l’instruction : NomEnregistrement.NomElement Etudiant1.Nom 'permet d’obtenir le nom de l’Etudiant1 Cours VB – ISG 2007/2008
II. Structures De Contrôle Principaux opérateurs en VB Actions VB: Simples Sélectives Répétitives Types de sous programmes Cours VB – ISG 2007/2008
II.1 Les principaux opérateurs en VB Opérateurs arithmétiques ^ Puissance * / Multiplication et division \ Division entière (tronque la partie décimale) Mod Modulo (reste de la division entière) + - Addition et soustraction Opérateurs de comparaison : <, <=, >, >=, <>, = Opérateur de concaténation de deux chaînes de caractères : &, + Opérateurs logiques : NOT, AND, OR et XOR Cours VB – ISG 2007/2008
II.2 Les actions simples La déclaration Toutes les instructions de déclaration sont considérées comme des actions simples. Le commentaire: Rem ou du symbole ' . Rem Ceci est un exemple de commentaire. ‘ Ceci est un exemple de commentaire. i = i + 1 ‘incrémentation de la variable i L’affectation : Var = Valeur où Var est une variable et Valeur est une valeur ou variable ou expression Les 2 membres d’une affectation doivent être de même type. Si le membre gauche est Variant, celui de droite peut être String, numérique ou Variant. Si le membre de droite est Variant alors celui de gauche est Variant et il peut être String ou numérique selon la valeur. Il existe d’autres instructions simples telles que les appels aux sous programmes. Cours VB – ISG 2007/2008
II.3 Les actions sélectives Le test If If Chif_Aff >= 10000 Then Taux = 0.10 Else Taux = 0.05 End If If jour = “lundi” Then Temp% = 20 Else: If jour =”mardi” Then Temp% = 25 Else: If jour = “mercredi” Then Temp% = 21 Else: If jour =”jeudi” Then Temp% = 19 Else: If jour = “Vendredi” Then Temp% = 20 Else : If jour = “Samedi” Then Temp% = 21 Else Temp% = 20 If Condition1 Then Action1 ElseIf condition2 Then Action21 Action22 Else: If condition3 Then Action3 Else: If condition4 Then Action4 End If Cours VB – ISG 2007/2008
II.3 Les actions sélectives Le test IIf IIf ( Chif_Aff >= 10000 , Taux = 0.10 , Taux = 0.05) L’instruction Choose Index prend les valeurs 1, 2, 3, ... jusqu’au nombre d’expressions désignées (13 au maximum). Exemple : taux = Choose(Ind_1, 0.05, 0.07, 0.1, 0.15) Si Ind_1 = 1 alors taux = 5% Si Ind_1 = 2 alors taux = 7% Si Ind_1 = 3 alors taux = 10% Si Ind_1 = 4 alors taux = 15% Cours VB – ISG 2007/2008
II.3 Les actions sélectives L’instruction Select Select moyenne case 16 To 20 Mention = ’’T. Bien’’ case 14 To 15.99 Mention = ’’Bien’’ case 12 To 13.99 Mention = ’’A. Bien’’ case 10.5 , 11 , 11.5 Mention = ’’Passable ’’ case Else Mention = ’’Sans’’ End Select Cours VB – ISG 2007/2008
II.3 Les actions Répétitives La boucle While... Wend i = 1 Sal_Annuel = 0 While i <= 12 Sal_annuel = Sal_Annuel + Salaire i = i +1 Wend Les boucles Do While et Do Until Remarques : Ces deux formes du Do ... Loop sont identiques à l’instruction While ... Wend. La déffirence entre while et do … c’est qu’on peut sortir à tout moment de la boucle par l’instruction Exit Do. Cours VB – ISG 2007/2008
II.3 Les actions Répétitives Les boucles Do… Loop … condition Dans ces 2 formes, on entre systématiquement dans le corps de la boucle quelque soit l’état de la condition et on répète l’exécution tant que la condition est vérifiée ou jusqu'à ce qu’elle ne le soit plus. Si la condition est fausse, on exécute une fois ACTION est on sort de la boucle. Remarque : On peut sortir à tout instant de ces boucles à l’aide de l’instruction Exit Do. Do Action Loop While Condition Do Action Loop Until Condition Cours VB – ISG 2007/2008
II.3 Les actions Répétitives La boucle For Total_Notes = 0 For i = 1 To 10 Total_Notes = Total_Notes + Note Next Moy = Total_Notes / 10 Par défaut le pas est égale à 1 sinon il est égale à la valeur définie après le mot réservé Step. Remarque : On peut sortir à tout moment d’une boucle For par l’instruction Exit For. Cours VB – ISG 2007/2008
II.4 Les sous programmes b) Fonction a) Procédure Outre les procédures-événements déjà vues (chap 1), il est possible d’écrire des procédures ou des fonctions dites générales Elles ne sont associées à aucun contrôle ou feuille et sont stockées dans un fichier feuille ou module. a) Procédure b) Fonction Elle retourne une valeur contenue dans le nom de la fonction. Il faut préciser le type de la valeur retournée. [Static] [Private] [Public] Sub nom_Sub (Liste d'arguments) Instructions End Sub [Static] [Private] [Public] Function nom_function (Liste d'arguments) As type Instructions nom_function = var End Function Cours VB – ISG 2007/2008
c) Appel Procédure/Fonction Appel de procédure Remarque: La liste d’arguments peut-être vide, auquel cas, dans l’appel, il n’y a que le nom de la procédure qui apparaît. Appel de fonction Remarque: Si la liste d’arguments est vide, les parenthèses sont obligatoires. Cours VB – ISG 2007/2008
d) Remarques Il est tout à fait possible de quitter la procédure/fonction à tout moment par l’instruction : Exit Sub pour la procédure. Exit function pour la fonction, après avoir affecter à la variable nomF le résultat qu’elle doit retourner. Les procédures/fonctions définies Private dans une feuille sont « locales » seulement à celle-ci. Seules les procédures/fonctions de ce fichier peuvent les appeler. Les procédures/fonctions définies dans un module sont globales à l’ensemble de l’application. Sauf si une procédure/fonction est définie avec Private. Cours VB – ISG 2007/2008
II.5 Les fonctions prédéfinies de VB VB dispose de fonctions et procédures qui lui sont propres et qu’on peut appeler dans toute application Fonction Valeur Retournée Abs Valeur absolue d’un nombre (Absolute value) Asc le code ASCII ou ANSI correspondant à un caractère Chr le caractère correspondant à un code ASCII ou ANSI donné Cos Cosinus d’un angle Format Date ou nombre convertis en une chaîne de caractères en indiquant son format Instr Localise une sous chaîne dans une chaîne Left Supprime un certain nombre de caractères à gauche d’une chaîne de caractères Len Taille d’une chaîne de caractères Mid Elimine une portion quelconque d’une chaîne de char Now Donne l’heure et la date système Right Supprime un certain nombre de caractères à droite d’une chaîne de caractères Rnd nombre aléatoire Sin Sinus d’un angle Sqr Racine carrée d’un nombre Str Convertit un nombre en une chaîne de caractères Trim Supprime les espaces à gauche et à droite d’une chaîne de caractères Val Convertit une chaine de caractères numérique en une valeur numérique Cours VB – ISG 2007/2008
77UG7FX Cours VB – ISG 2007/2008