Applications des maths Introduction à la programmation en Visual Basic
Applications des maths – Visual Basic Procédures
Chaque contrôle porte un nom qui lui est attribué lors de sa création. La première étiquette placée sur la feuille portera le nom Label1, la seconde Label2 et ainsi de suite. Le 1er bouton placé se nommera Command1, le second Command2; la première zone de texte se nommera Text1, la seconde Text2 …
A chaque propriété correspond une variable nommée contrôle.propriété où contrôle représente le nom du contrôle et propriété celui de la pro-priété. Par exemple, la variable correspondante à la propriété Caption d’un bouton nommé Label1 s’appellera Label1.Caption. Pour modifier une propriété durant l’exécution du programme, il faut modifier la valeur de cette variable en incorporant une instruction Basic du style :
Let contrôle.propriété = valeur ou valeur représente la nouvelle valeur que doit prendre la propriété.
Par exemple, l’instruction basic Let Label1.Caption= »Salut » permet d’affecter la valeur Salut à la propriété Caption du contrôle Label1 donc d’af-ficher le mot Salut à l’emplacement de l’étiquette nommée Label1.
Les instructions basic qui forment un programme sont regroupées en procédures. Une procédure particulière est activée, durant l’exécution du programme, par un clic sur un bouton de commande. Pour créer cette procédure particulière, il faut double-cliquer sur le bouton de commande concerné; on accède ainsi à un éditeur qui permet d’écrire le programme.
L’exemple ci-contre illustre la création d’un petit programme qui, lors d’un clic sur le bouton intitulé Bonjour, affiche Salut sur une étiquette.
1) Dessiner l’étiquette et le bouton sur la feuille puis modifier leurs propriétés.
2) Double-cliquer sur le bouton Command1 (Bonjour) pour accéder à l’éditeur de programme qui propose de compléter la procédure Click() du contrôle Command1.
3) Taper l’instruction Basic Let Label1.Caption= »Salut » qui permet de modifier la propriété caption du contrôle Label1.
L’éditeur de programme peut aussi être appelé par l’option Code du menu Affichage. Deux menus permettent alors de choisir le contrôle et la pro-cédure qui doit être créée.
Exercice 3
Créer un programme comprenant une étiquette et 3 boutons. Un clic sur l’un des boutons doit permettre de changer la couleur de fond et le contenu de l’étiquette.
Indications
1) Les instructions
Let Label1.BackColor=RGB(255,0,0)
Let Label1.BackColor=RGB(0,255,0)
Let Label1.BackColor=RGB(0,0,255)
permettent de colorier le fond de l’étiquette Label1 en rouge, en vert, en bleu.
2) La procédure Command1_Click sera exécutée lors d’un clic de l’utilisateur sur le bouton Command1 alors que la procé-dure Command2_Click sera exécutée lors d’un clic de l’utili-sateur sur le bouton Command2 …
Exercice 4
Créer un programme qui permette de sélectionner le nom d’un élève de la classe dans une zone de liste (ComboBox) puis, par un clic sur un bouton de commande, qui affiche dans une zone d’image, une photo de l’élève sélectionné.
Remarques :
1) La propriété Text d’une zone de liste contient le texte qui est affiché à l’écran.
2) La propriété List d’une liste contient les éléments qui apparaissent dans le menu.
3) La propriété Picture d’une zone d’image définit l’image à afficher.
4) L’instruction Basic Let Picture1.Picture = LoadPicture(« phoebe.jpg ») permet par exemple d’afficher, dans la zone d’image nommée Picture1, l’image phoebe.jpg.
5) L’instruction Basic Let Picture1.Picture = LoadPicture(Combo1.Text & « .jpg ») permet d’afficher, dans la zone d’image nommée Picture1 l’image sélectionnée dans le menu.
6) Dans le programme à réaliser, l’instruction Basic à insérer dans la procédure Click du contrôle Com-mand1 est :
Let Picture1.Picture = LoadPicture(Combo1.Text & « .jpg »)
Attention, l’image doit se trouver dans le même dossier que le programme.
Variables et formules de calculs, zones de texte
Une variable est une zone de mémoire repérée par un nom et pouvant mémoriser une valeur. On connaît déjà les variables qui contiennent les propriétés des contrôles. En plus de ces variables dont le nom est de la forme Contrôle.Propriété, le programmeur peut utiliser d’autres variables dont il décide lui-même du nom. Pour assigner une valeur à une variable nommée par exemple Var, on utilise l’instruction Let Var = valeur.
La valeur peut être un nombre ou une chaîne de caractères (mot ou phrase) délimitée par des guillemets. A la place d’une valeur spécifiée, on peut mettre une formule de calcul. Dans ce cas, la valeur mémorisée est le résultat du calcul indiqué.
Pour écrire une formule de calcul numérique, on utilise les mêmes opérateurs arithmétiques qu’une calculatrice : +, -, *, /, ^ (élévation à une puis-sance) et les fonctions Sqr( ) (racine carrée) et Int( ) (partie entière).
Pour manipuler des chaînes de caractères, on utilise l’opérateur & qui colle deux mots, les fonctions Left(X,N) et Right(X,N) qui prennent N ca-ractères à gauche ou à droite de la chaîne X et la fonction LEN(X) qui donne la longueur de la chaîne X. Exemple :
Let Nom = « Dupont »
Let L = Len(Nom)
Let Affichage = Nom & » comporte » & L & « caractères »
Let Label1.Caption = Affichage
Les zones de texte (TextBox) sont des contrôles qui permettent d’introduire des données (nombres ou chaînes de caractères) dans un programme. Elles affichent un texte qui peut être modifié par l’utilisateur durant l’exécution du programme. La propriété Text contient le texte affiché et la variable TEXT1.TEXT permet donc de connaître ou de modifier le contenu d’une zone de texte appelée TEXT1.
Les étiquettes (Label) ont des contrôles qui permettent d’afficher du texte ou le contenu d’une variable. Pour afficher le contenu d’une variable, il faut donner la valeur de la variable à la propriété Caption de l’étiquette.
Exemple
Cet exemple consiste en un programme de conversion des francs suisses en euros. La feuille contient une zone de texte pour saisir une somme en francs suisses, une étiquette pour afficher la valeur en euros, deux étiquettes pour les libellés CHF et EUR ainsi qu’un bouton de commande pour afficher la somme et un autre pour quitter le programme.
La procédure activée lors d’un clic sur le bouton nommé Command1 (Affiche) est la suivante :
Private Sub Command1_Click() début de la procédure Click
Let Chf = Text1.Text assigne à la variable Chf le contenu de la zone de texte Text1
Let Euro = Chf / 1.67 assigne à la variable Euro le résultat de l’opération
Let Label1.Caption = Euro affiche le contenu de la variable Euro sur l’étiquette Label1
End Sub fin de la procédure Click
La procédure liée au bouton de commande Fin ne contient que l’instruction basic End qui termine le programme.
Exercice 5
Créer un programme qui permette de donner le rayon d’un cercle puis, par un clic sur un bouton de commande, affiche son périmètre et son aire.
Déroulement du programme :
• Une zone de texte permet à l’utilisateur de donner le rayon.
• Le rayon donné dans la zone de texte sera, suite à un clic sur calcule, enregistré dans une va-riable nommée Rayon.
• Le périmètre est calculé et enregistré dans variable nommée Perimetre.
• L’aire est calculée et enregistrée dans une variable nommée Aire.
• Le périmètre et l’aire sont affichés sur les étiquettes correspondantes.
Pour afficher le périmètre, il suffit d’assigner à la variable Label1.Caption la valeur de la variable Perimetre.
L’instruction Let Label1.Caption = Perimetre permet cette assignation.
Exercice 6
Créer un programme qui permette de donner le rayon et la hauteur d’un cylindre puis, par un clic sur un bouton de commande, affiche son vo-lume.
Exercice 7
Créer un programme qui permette de donner le nom de l’utilisateur puis, par un clic sur un bouton de commande affiche, sur une étiquette, Salut suivi du nom donné.
Exercice 8
Créer un programme qui permette de donner une somme en francs suisses puis qui affiche l’équivalent dans différentes monnaies étrangères.
Pour améliorer l’affichage des montants, on pourra recourir à une commande de formatage comme Format(Var, »0.00″) qui force l’écriture de la variable Var avec au moins un chiffre avant la virgule et de 2 après.
Pour les cours du change, voir, par exemple, « http://www.swissinfo.org »
Déclaration des variables
Le type d’une variable est le genre de contenu qu’elle est susceptible de recueillir. Les types les plus utilisés pour les variables sont les entiers, les réels et les chaînes de caractères. Par défaut Visual Basic considère que chaque variable qui n’a pas été déclarée est de type variable (variant) c’est à dire qu’elle peut changer de type lors de l’exécution du programme.
Exemple de types variables :
Let a = 12
Let b = a & a
Let c = 2 * b c = 2424
a contient un nombre entier
les contenus de a et de b sont ici considérés comme des chaînes de caractères
les contenus de b et de c sont ici considérés comme des entiers
Pour rendre le code plus clair et pour éviter les erreurs, il est préférable et parfois indispensable de préciser quel type de donnée sera enregistré dans les variables employées. Cette déclaration se fait dans la partie Déclaration située au début du programme à l’aide de l’instruction Dim dont la syntaxe est la suivante :
Dim Nom de variable As Type
Les principaux types sont :
Integer nombre entier compris entre -32768 et 32767
Long nombre entier compris entre -2 147 483 648 et 2 147 483 647
Single nombre réel à virgule flottante en simple précision
Double nombre réel à virgule flottante en double précision
String chaîne de caractères
Exemple :
Dim a As Integer
Dim b As Single
Dim c As String
déclare la variable a comme entière
déclare la variable b comme réelle
déclare la variable c comme chaîne de caractères
Remarques :
1. Il est indispensable de déclarer une variable si sa valeur doit être utilisée dans plusieurs procédures du projet ou dans plusieurs exécutions de la même procédure car, au début de l’exécution d’une procédure, toutes les variables sont automatiquement mises à zéro.
2. En exécutant le programme ci-contre, avec deux chiffres dans les zones de texte, on constate que ces chiffres sont considérés comme des textes et que le résultat affiché n’est pas celui que l’on attend. Pour corriger ce défaut, il faut soit déclarer les variables x et y, soit complé-ter les affectations des zones de texte par : « Let x = Val(Text1.Text) », qui transforme le contenu Text1.Text en une valeur numérique.