INITIATION à la PROGRAMMATION STRUCTUREE Quest-ce quun programme ? Les règles de la programmation...

Post on 03-Apr-2015

111 views 0 download

Transcript of INITIATION à la PROGRAMMATION STRUCTUREE Quest-ce quun programme ? Les règles de la programmation...

INITIATION à la PROGRAMMATION STRUCTUREE

• Qu’est-ce qu’un programme ?

• Les règles de la programmation structurée

• Définitions

Définitions

•C ’est un ensemble de commandes, écrit dans un langage de programmation, qui permet de matérialiser un certain traitement, conformément à un cahier des charges.

•En programmation structurée son déroulement est séquentiel.

•Il peut contenir et/ou utiliser des procédures et fonctions, qui sont elles-mêmes construites comme des programmes.

Les quatre règles de la programmation structurée

concernent

la convivialité

la modularité

la lisibilité

la programmation

La convivialité

Pensez à soigner les interfaces UTILISATEUR

• donnez lui envie d ’utiliser vos programmes

• ne posez pas de questions ambiguës

• aidez le, mais ne le sous-estimez pas

• informez le des possibilités contextuelles

• faites un effort de présentation des résultats

La modularité

On n ’écrit plus de gros programmes

Un programme doit être décomposé en petits

modules, qu’on appelle des procédures ou

fonctions, tous bien définis et individualisés, dont

la longueur ne dépasse pas une page A4

Ceci facilite énormément la compréhension, la

maintenance, et l ’exécution du programme

La lisibilité des programmes

Indispensable à la mise au point et à la maintenance des programmes

• il faut documenter le programme en ajoutant

des commentaires judicieux pour en faciliter la

compréhension rapide

• la mise en page des instructions doit en faciliter

la délimitation et la compréhension

La lisibilité des programmes (suite)

• on ne doit surtout pas personnaliser les

programmes : les noms de procédures,

fonctions, variables, doivent évoquer sans

ambiguïté leurs rôles respectifs, pour quiconque

Exemple d ’un programme insupportable

Private Sub P1_AfterUpdate()If P1.Value <> "" Thenn = n + 1r = Val(P1.Value)If r = (nb1 * nb2) ThenA.ForeColor = 16711680A.Caption = "bravo"Else:e = e + 1A.ForeColor = 255A.Caption = "faux" & " : déja " & e & " erreurs"End IfEnd IfEnd Sub

Le même programme : supportable

Private Sub Reponse_AfterUpdate() If reponse.Value <> "" Then nbfois = nbfois + 1 rep = Val(reponse.Value) If rep = (nb1 * nb2) Then bilan.ForeColor = 16711680 bilan.Caption = "bravo" Else: err = err + 1 bilan.ForeColor = 255 bilan.Caption = "faux" & " : déja " & err & " erreurs" End If End IfEnd Sub

La Programmation Orientée Objet(POO)

Elle a été conçue pour pallier aux problèmes de

maintenance évolutive que pose la

programmation fonctionnelle descendante.

Nous n ’aborderons en LO10 que quelques

notions de la POO nécessaires à la

programmation en Visual Basic

Contrairement à la programmation

classique qui sépare les données des

programmes, la POO repose sur des

entités, nommées OBJETS, dans

lesquelles sont combinées données et

code de programmation.

Les objets qui partagent les mêmes

propriétés et les mêmes méthodes sont

regroupés dans une classe.

Le concept d ’OBJET

Il est issu de l ’objectif suivant :

regrouper dans une entité unique

• les données décrivant l ’objet : ce sont ses propriétés

•et les procédures/fonctions permettant de manipuler l ’objet : ce sont ses méthodes

Exemple d ’objet

Dans VBA il existe un objet appelé CommandButton

Il a comme propriétés :

son nom

une taille

un intitulé : par exemple « IMPRIMER »

une couleur

etc...

Cet objet a comme méthode une procédure correspondant à son rôle.

La procédure sera déclenchée lorsqu ’un certain événement se produira.

C ’est le programmeur qui choisit et programme la méthode.

Pour le bouton « IMPRIMER » la procédure va faire imprimer le document.

L ’événement déclencheur sera un « click » de l ’utilisateur sur ce bouton.

La programmation VBA est composée en majeure partie d ’objets que l ’on peut manipuler conjointement de 2

façons :

• en définissant, modifiant, testant, ou mémorisant ses propriétés

• en utilisant les méthodes de l ’objet que l ’on complète par du code

Conventions de lecture écriture des instructions

Dans une ligne de code on peut :

• soit définir une propriété

• soit mémoriser une propriété dans une variable

• soit faire exécuter une méthode

Mais on ne peut pas faire deux de ces traitements à la fois sur la même ligne

Quelques propriétés très utilisées

CAPTION pour les objets Intitulé (Label), bouton de commande (CommandButton)

Désigne le texte qui apparaît dans le bouton à l’écran

TEXT pour les objets Zone de Texte (TextBox)

Désigne le texte affiché ou modifié par l’utilisateur

VALUE pour les objets barre de défilement (ScrollBar) , toupie (SpinButton), bouton d’option

Désigne la valeur choisie par l’utilisateur

Quelques propriétés très utilisées (suite)

MAXLENGTH pour les objets Zone de Texte (TextBox)

Désigne le nombre maximum de caractères acceptés à la saisie

PASSWORDCHAR pour les objets Zone de Texte

Désigne le caractère qui sera affiché pour masquer à l’écran chaque caractère tapé au clavier par l’utilisateur

ENABLED pour les objets Zone de Texte , bouton de commande, etc.

Propriété booléenne, qui lorqu’elle vaut False, rend le bouton inutilisable par l’utilisateur

Quelques propriétés très utilisées (suite)

dans presque tous les types d’objets

BACKCOLOR couleur de fond

FONT Désigne la police à utiliser

CONTROLTIPTEXT

Contient le texte à afficher en info bulle

VISIBLE propriété booléenne qui, lorsqu’elle vaut False, permet de rendre un bouton temporairement invisible

Fenêtres de l ’éditeur Visual-Basic

Afficher le code

Liste des propriétés

propriétés

Afficher l ’objet

Liste des méthodes

Explorateur de projet

Dim nb1, nb2 As Integer

Private Sub UserForm_Initialize() Randomize nombre1.Caption = Int(Rnd * 8) + 2 nombre2.Caption = Int(Rnd * 8) + 2 nb1 = nombre1.Caption nb2 = nombre2.Caption

End Sub

Code du test des multiplications

Code du test des multiplications (suite)

Private Sub validez_Click() If validez.Caption <> "FIN" Then Dim rep As Integer rep = Val(reponse.Value) If rep = (nb1 * nb2) Then MsgBox ("bravo") Else: MsgBox ("faux") End If validez.Caption = "FIN" reponse.Locked = True Else: End End IfEnd Sub