Initiation à la programmation avec VisualBasic
PEIP Polytech'Marseille
Progression :
- Plus petit élément physique constitutif de la mémoire
- Deux états possibles : 0 ou 1
- Un ensemble de n bits permet de coder 2n informations différentes
- Un octet : assemblage de 8 bits è 28 = 256 combinaisons possibles
- Coder une information sur n bits : convention de codage pour représenter une
"information" parmi 2n informations possibles d'un type donné
- Pour un type d'information donné, le nombre d'octets est préalablement fixé par le langage en fct du nombre de valeurs à représenter.
Exemple sur 3 bits pour les entiers dans [ 0, 8 [ et dans [-4, 4 [
|
|
- la même suite sur 1 octet {1001 1011} représente suivant le cas
- -101 pour les entiers relatifs
- +155 pour les entiers naturels
- '€' pour les caractères alphanumériques (code ASCII)
- Sur 2 octets (16 bits), on peut coder tous les entiers dans [-32768, 32767 ]
- Sur 4 octets (32 bits), on peut coder les entiers relatifs sur 9 chiffres
Deux informations à coder :
- la précision (nombre de chiffres) 3.14 3.1415926
- l'exposant (virgule « flottante ») 1. x 10-2 1. x 106
Les réels sont souvent codés sur 32 ou 64 bits, dont 6 pour l'exposant (de -32 à +31)
Chaque caractère est associé à un entier dans [0, 256[ (8 bits) : le code ASCII
'a' : 97
'b' : 98
'A' : 65
'0' : 48
'?' : …
- Suite finie d'instructions non ambiguà«s
- dans un langage pseudo-naturel simple
- permettant de décrire une méthode pour répondre à un problème en un temps fini
- en s'affranchissant des aspects matériels de mise en Å“uvre (type de machine, langage de programmation utilisé, …)
L'étape suivante sera de traduire cet algorithme dans un langage de programmation
« compréhensible » et exécutable par une machine pour un jeu de données connues.
Recette de cuisine Algorithme
Dans le cas d'un programme informatique, les données manipulées peuvent être classées suivant 3 grandes catégories :
o les données numériques (nombres entiers, réels, …)
o les données alphanumériques (lettres, chiffres, caractères spéciaux, …) oles données logiques (vrai, faux)
Premiers points à clairement définir avant de chercher à résoudre un problème :
- Quelles sont les données initiales (nature, domaine) ?
- Quel est le résultat souhaité ?
- ensemble d'actions de haut niveau
- à réaliser de manière séquentielle
- Quelles sont les données initiales (nature, domaine) ?
Recette des crêpes au nutella : I.  Faire une pà¢te à crêpe
III. à‰taler du nutella sur la crêpe
Recette des crêpes au nutella :
III. à‰taler du nutella sur la crêpe
Remarques : certaines actions sont soumises à condition. Exemple Action "Mélanger".
- Tant que le mélange n'est pas homogène
- tourner la pà¢te avec une fourchette - Fin tant-que
Recette de cuisine Algorithme
- ingrédients (farine, beurre, …) données
- récipients (plat, bol, …) variables
- outils (couteaux, …) opérateurs
- instructions simples (verser dans, …) affectation, …
- instructions conditionnelles si-alors-sinon
- instructions répétitives tant-que
On dispose d'une certaine liberté de langage pour décrire un algorithme. On utilisera toutefois les notions suivantes : a)  Déclaration de variables (contenants)
Déclarer des variables : à°â€¯ annoncer au début toutes les variables utilisées (contenants) à° en précisant la nature du contenu (entier, réel, caractère, chaà®ne de caractères…) ex : soient a, b, c trois réels
à°â€¯ pour représenter les échanges homme-machine (du point de vue de la machine)
- lire(variable) homme (clavier) => machine- écrire(variable) homme (écran) <= machine c) Expressions
Elles sont construites à l'aide d'opérateurs à° Expressions arithmétiques avec + , - , x , / , ( ) ex : b2-4ac
à°â€¯ Expressions logiques (seront vues plus tard) : résultat en Vrai/Faux
- Une variable ne peut contenir qu'une seule information à un instant t donné syntaxe : variable <- expression exemple : d <- b2-4ac Remarques :
- une variable à droite de <- : désigne le contenu (la valeur)
- la variable à gauche de <- : désigne le contenant (o๠l'on met l'information)
On distingue :
- l'affectation qui initialise x <- 1
s <- x+1
- l'affectation qui modifie s <- s+x
Remarque : lire(variable) est une forme d'initialisation
Dans les prochains chapitres :
Le Basic (Beginner's All-purpose Symbolic Instruction Code) : - « vieux » langage à l'échelle de l'informatique (1963 ! ) - permet de traduire un algorithme en instructions interprétables par une machine - facile d'accès pour traiter de petites applications
Visual Basic pour Applications (produit Microsoft) : - intégré dans différents logiciels (Excel, …) - largement diffusé - version modernisée de Basic qui introduit notamment :
- la programmation objet (non abordée dans ce cours)
- la gestion d'Interfaces Homme-Machine (boites de dialogue, boutons, …)
VBA est disponible dans l'environnement Excel
- Lancer Excel (accepter les macros !)
- Sous Mac : Outils –> Macro –> VisualBasicEditor - Sous PC : Développeur –> VisualBasic ࢠlance l'environnement VBA
Pour écrire un programme VBA
- Insertion –> Module
à¢â€¯ ouvre une fenêtre d'édition exécution
Sub maProcedure() 'ce programme vous dit bonjour Dim var As String var = InputBox("donnez votre nom :") MsgBox "Hello " & var End Sub |
- permet de déclarer une procédure avec un nom et éventuellement des arguments
- toutes les instructions entre Sub et End Sub constituent le corps de la procédure
- règle de rédaction : on indentera le corps de la procédure
Syntaxe simplifiée de l'instruction Sub :
Sub nom([argument])
[déclaration]
Sub maProcedure() 'ce programme vous dit bonjour Dim var As String var = InputBox("donnez votre nom :") MsgBox "Hello " & var End Sub End Sub b) IdentificateursCe sont les noms que l'on va donner aux variables et aux procédures. ༠Exemples dans le programme précédent : maProcedure : nom de la procédure var : nom d'une variable ༠Syntaxe : lettre[lettre ou chiffre] ༠Exemple : x x1 compteur Peip1 ༠Remarques : - les majuscules sont distinctives des minuscules - les mots réservés de VBA commencent par une majuscule - on choisira des identificateurs mnémoniques c) Les entrées/sorties « simplifiées »- Lecture d'une donnée au clavier (homme => machine) variable = InputBox("donnez votre nom") - Affichage d'un message à l'écran (machine => homme) MsgBox message o๠message est soit : - une chaà®ne de caractère (ex: "Hello " ) - une variable - une expression arithmétique - Plusieurs messages peuvent être concaténés en un seul avec l'opérateur & Exemple : MsgBox "le double de 5 est " & 2*5 3. Les constantesCe sont les valeurs explicites nécessaires au programme. On distingue : - les constantes numériques : 0 1 3.14 314.E-2 - les messages (ou chaà®nes de caractères) : "Bonjour" "Donnez votre nom ?" 4. Les VariablesOn en déclare autant que nécessaire pour l'algorithme a) Caractéristiques d'une variable- porte un nom (identificateur) - désigne un emplacement mémoire spécifique - permet le stockage de valeurs pendant le déroulement du programme - son contenu peut changer dans le temps - plusieurs types possibles (entier, réel, chaà®ne de caractères, …) Il y a une douzaine de types pour déclarer des variables en VBA. Les plus courants : - Integer pour stocker des valeurs entières entre [-32768, 32767] - Long pour stocker des valeurs entières jusqu'à 10 chiffres - Single pour stocker des valeurs décimales à 7 chiffres significatifs - Double pour stocker des valeurs décimales à 15 chiffres significatifs - String pour stocker des chaà®nes de caractères (message) - Variant pour stocker indifféremment des réels, des entiers, des chaà®nes, … Syntaxe de déclaration de variables : Dim variable As type[, variable As type] Exemples : Dim nom As String, prenom As String Dim age As Integer, salaire As Single Conseils de bon programmeur : - N'économisez pas sur le nombre de variables - Chaque variable doit avoir un rà´le bien défini et ne doit pas en changer - Précisez ce rà´le en commentaire pour les plus importantes - Distinguez : - les variables recevant les données initiales - les variables nécessaires aux résultats intermédiaires - les variables qui recevront les résultats - Donnez des noms qui "parlent" (identificateurs mnémoniques)
- Rappel : - l'affectation qui initialise x = 1 s = x+1 - l'affectation qui modifie s = s+x (ce n'est pas une équation mathématique !!!) Remarque : une variable doit toujours être initialisée avant sa première utilisation 5. Expressions arithmétiques- Opérateurs arithmétiques : - ^ Mod \(division entière)- Les opérateurs arithmétiques respectent les priorités admises en mathématiques
Sub test2() Dim a As Integer Dim b As Integer a = 7 b = a/3 b vaut 2 MsgBox "b = " & b b = a/2 b vaut 4 (-4 si a =-7) MsgBox "b = " & b End Sub 6. Précisions sur le type Variant༠Peut contenir indifféremment des nombres, des booléens, des chaà®nes ou des tableaux - Assure une conversion automatique - Accepte les opérations sur ces différents types ༠Permet de construire un message de données hétérogènes pour affichage Sub appliquerTVA() 'calcul du prix TTC Dim prix As Variant prix = InputBox("donnez le prix HT :") prix = prix*1.2 'Opération arithmétique prix = prix & "€ TTC" 'Concaténation de messages MsgBox prix End Sub Conseil : limitez son utilisation au strict nécessaire |