Vous êtes sur la page 1sur 68

- 0. Boussaid.

Algorithmique

PREMIERE PARTIE : L'ALGORITHMIQUE

......................................................................................................................................................
1. MTHODOLOGIE DE PROGRAMMATION ................................................................................................... 5
1.1. La dmarche ..................................................................................................................................... 5
1.2. Dfinitions :....................................................................................................................................... 6
2. LES LMENTS DE BASE ............................................................................................................................. 6
2.1. Les donnes....................................................................................................................................... 6
2.1.1. Les types numriques ............................................................................................................... 7
2.1.2. Les types alphanumriques ..................................................................................................... 8
2.1.3. Le type logique .......................................................................................................................... 9
2.2 Les expressions................................................................................................................................ 11
2.2.1. expressions arithmtiques...................................................................................................... 11
2.2.2. expressions logiques ............................................................................................................... 12
2.3. Les actions ...................................................................................................................................... 12
2.3.1. l'action de dclaration............................................................................................................. 12
2.3.2. L'action d'affectation............................................................................................................... 13
2.3.3. Lecture/Ecriture des donnes ............................................................................................... 14
2.3.4. Les actions simples et composes ......................................................................................... 15
2.3.5. L'action slective ..................................................................................................................... 16
2.3.6. L'action itrative ...................................................................................................................... 18
2.4. Les autres types de donnes ......................................................................................................... 22
2.4.1 Les types construits.................................................................................................................. 22
2.4.1.1. Le type numr............................................................................................................... 22
2.4.1.2. Le type intervalle.............................................................................................................. 22
2.4.2. Les types structurs ................................................................................................................ 23
2.4.2.1. Les tableaux ...................................................................................................................... 23
2.4.2.2. Les enregistrements ........................................................................................................ 25
2.4.3. Les Fichiers............................................................................................................................... 27
2.5. La notion de sous programmes .................................................................................................... 31
2.5.1. La procdure............................................................................................................................ 31
2.5.2. La fonction ............................................................................................................................... 32
2.5.3. La porte des donnes ............................................................................................................ 34
2.5.4. Le passage des paramtres entre sous programmes ........................................................... 35

- 0. Boussaid.

Algorithmique

DEUXIEME PARTIE : Introduction au Visual Basic

1. GNRALITS .......................................................................................................................................... 36
1.1. Programmation objet, visuelle, vnementielle ......................................................................... 36
1.2. Composition dune application VB.............................................................................................. 37
1.2.1. La forme visuelle..................................................................................................................... 37
1.2.2. Les programmes VB................................................................................................................ 38
1.2.3. Les fichiers dune application VB ......................................................................................... 39
1.2.3. Les fentres de VB................................................................................................................... 40
2. ELMENTS DE BASE DU VB...................................................................................................................... 41
2.1. Les variables ................................................................................................................................... 41
2.1.1. Les identificateurs ................................................................................................................... 41
2.1.2. Les types................................................................................................................................... 42
2.1.3. Les dclarations ....................................................................................................................... 44
2.1.3.1. Les dclarations explicites............................................................................................... 44
2.1.3.2. Les dclarations implicites.............................................................................................. 44
2.1.3.3. La dclaration des tableaux ............................................................................................ 45
2.1.4. La porte des variables........................................................................................................... 45
2.1.5. Les constantes .......................................................................................................................... 46
2.2. Les actions ....................................................................................................................................... 46
2.1.1. Les actions simples.................................................................................................................. 46
2.1.2. Les actions slectives .............................................................................................................. 47
2.1.2.1. Les tests simples ............................................................................................................... 47
2.1.2.2. Les tests en cascade.......................................................................................................... 47
2.1.2.3. Le test IIf............................................................................................................................ 48
2.1.2.4. Les choix multiples .......................................................................................................... 48
2.1.2.3. Linstruction Choose...................................................................................................... 49
2.1.3. Les actions rptitives............................................................................................................. 49
2.1.3.1. La boucle While... Wend ................................................................................................. 49
2.1.3.2. Les boucles Do ... Loop.................................................................................................. 50
2.1.3.3. La boucle For .................................................................................................................... 51
3. LES SOUS PROGRAMMES .......................................................................................................................... 52
3.1. Dfinition dune Procdure/Fonction......................................................................................... 52
3.2. Appel dune Procdure/Fonction................................................................................................ 52
4. LES FICHIERS ........................................................................................................................................... 54
4.1. Les fichiers squentiels .................................................................................................................. 54
4.2. Les fichiers daccs direct.............................................................................................................. 55
4.3. Les fichiers binaires........................................................................................................................ 56
5. ELMENTS VISUELS .................................................................................................................................. 58

- 0. Boussaid.

Algorithmique

5.1. Les feuilles....................................................................................................................................... 58


5.1.1. La feuille................................................................................................................................... 58
5.1.2. Les fentres prdfinies.......................................................................................................... 59
5.2. Les contrles ................................................................................................................................... 60
5.2.1. La zone de texte....................................................................................................................... 61
5.2.2. Ltiquette ................................................................................................................................ 62
5.2.3. Le bouton de commande........................................................................................................ 62
5.2.4. Le cadre .................................................................................................................................... 63
5.2.5. Le bouton doption.................................................................................................................. 63
5.2.6. Les cases cocher.................................................................................................................... 64
5.2.7. Les listes ................................................................................................................................... 65
5.2.7.1. La liste simple ....................................................................................................................... 65
5.2.7.2. La liste combine.................................................................................................................. 66
5.2.8. La grille..................................................................................................................................... 66

- 0. Boussaid.

Algorithmique

PREMIRE PARTIE

L'Algorithmique

Ecrire un programme, ce n'est pas seulement connatre le langage de dialogue entre


l'ordinateur et vous. Un programme est un discours adress l'ordinateur, et comme
tout discours, il prsente deux aspects : un contenu et une forme, un sens et une
grammaire.
Pour l'ordinateur, il suffit que le discours soit correct au niveau de la forme. A partir
de ce moment, il effectue les manipulations qu'on lui demande d'effectuer. Le
contenu est pour l'ordinateur purement syntaxique. Si l'on fait une erreur de syntaxe,
l'ordinateur affichera un message d'erreur. L'apprentissage de la programmation est
donc ce niveau fortement dpendante du langage que l'on utilise. Mais la cohrence
du programme, c'est dire du contenu, n'est pas value.
Cette cohrence et cette pertinence de l'analyse du problme traiter sont donc un
pralable tout exercice de programmation. On doit fixer l'objectif du programme,
tablir la liste donnes et des oprations excuter, et les ordonner. "La description
de la suite des oprations lmentaires ordonnes capables de rsoudre le problme
pos constitue l'algorithme ".

- 0. Boussaid.

Algorithmique

1. Mthodologie de programmation
1.1. La dmarche
L'criture d'un programme n'est qu'une tape dans le processus de programmation
comme le montre le schma suivant :

- Les diffrentes tapes du processus de programmation.

Spcifications
algorithmiques
Problme
rel

ANALYSE
Traduction
Algorithme

CODAGE

Excution
Programme
Rsultats

L'analyse d'un problme pos consiste dfinir les diffrentes tapes de sa


rsolution. C'est la partie essentielle dans le processus de programmation. Elle
permet de dfinir le contenu d'un programme en termes de donnes et dactions.
Une dmarche descendante permettrait de dcomposer le problme initial en sous
problmes , plus simples rsoudre. A chacun de ces derniers sera associ une

- 0. Boussaid.

Algorithmique

spcification formelle ayant des conditions d'entre et le(s) rsultat(s) que l'on
souhaiterait obtenir. L'ensemble de ces spcifications reprsente l'algorithme1 .
La phase suivante consiste traduire lalgorithme dans un langage de
programmation donn. Ce travail, quoiquil semble facile, exige le respect strict de la
syntaxe du langage.
Lors de ltape dexcution, soit des erreurs syntaxiques sont signales, ce qui
entrane des corrections en gnral simples effectuer, soit des erreurs smantiques
plus difficiles dceler. Dans le cas derreur syntaxique, les retours vers le
programme peuvent tre frquents. Dans le cas derreur smantique, le programme
produit des rsultats qui ne correspondent pas ceux escompts : les retours vers
lanalyse (algorithme) sont alors invitables.
1.2. Dfinitions :
Un algorithme est une suite d'actions que devra effectuer un automate (un
ordinateur), en un temps fini, pour arriver un rsultat, partir d'une situation
donne.
Un algorithme est une suite finie d'instructions indiquant de faon prcise l'ordre
dans lequel doit tre effectu un ensemble d'oprations pour obtenir la solution
dun problme.
Avant de prsenter les diffrentes oprations utilises dans l'criture d'un
algorithme, il faut d'abord dcouvrir les lments sur lesquels elles portent, nomms
"donnes".

2. Les lments de base


2.1. Les donnes
Une donne peut tre considre comme une bote, portant une tiquette (nom),
d'une certaine forme (type) et qui contient une information (valeur).
Une donne peut tre :
- soit une constante si sa valeur ne change jamais durant lexcution du
programme ;
- soit une variable si sa valeur est susceptible de changer durant lexcution du
programme.
Nous pouvons classer les donnes selon 3 grandes classes en fonction de la nature
des valeurs qu'elles peuvent prendre :
1

Algorithme : du nom du clbre mathmaticien du IX sicle El-Kharawazmi..

- 0. Boussaid.

Algorithmique

- les donnes numriques


- les donnes alphanumriques
- les donnes logiques.

2.1.1. Les types numriques


Le type numrique caractrise les valeurs entires ou relles (et parfois complexes),
Entier : De manire gnrale une variable est caractrise par un nom appel
identificateur et un contenu reprsentant une valeur d'un type donn.
Cette dernire peut changer durant lexcution du programme.
Une variable est dite entire si elle prend ses valeurs dans Z (ensembles
des nombres entiers relatifs) et qu'elle peut supporter les oprations
suivantes :
addition
note +
soustraction
note multiplication
note *
division entire
note div
n div p = q : la division entire de n par p donne la
partie entire du quotient q.
division modulo
note mod
n mod p = r : la division modulo de n par p donne le
reste r.

exemples:
12 div 3 = 4
13 div 3 = 4
12 mod 3 = 0
13 mod 3 = 1
Il existe plusieurs types d'entiers reprsentant chacun un ensemble
particulier de valeurs. Cette diffrenciation de types rsulte du mode de
stockage des informations selon le langage de programmation utilis.

Rel : il existe plusieurs types de rels reprsentant chacun un ensemble


particulier de valeurs prises dans R (ensembles des nombres rels). Ici
encore, cette diffrenciation se justifie par le mode de stockage des
informations.

- 0. Boussaid.

Algorithmique

Il existe deux reprsentation des rels :


la forme usuelle avec le point comme symbole dcimal.
exemples :

0.2467

345.876

-12.1

....

la notation scientifique ayant la forme suivante : aE+b, o :


a est la mantisse, qui s'crit sous une forme usuelle,
b est l'exposant reprsentant un entier positif.
exemple :

247 = 2.47E2 = 0.247E+3 = 2470E-1 = ...

Oprations dfinies sur les rls :


addition
soustraction
multiplication
division

note
note
note
note

+
*
/

2.1.2. Les types alphanumriques


Le type alphanumrique caractrise les valeurs caractre (notes Car) ou chane de
caractres (notes Chane)
Caractre : sa valeur est un caractre quelconque. Un caractre peut appartenir au
domaine des chiffres de 0 9, des lettres de A Z (majuscules
ou minuscules) et des caractres spciaux (+ - , ; . ( { [
] } ) $ %...). Un caractre sera toujours not entre des
apostrophes. Le caractre blanc (espace) scrit , le caractre
apostrophe .
Les oprations quon dfinit sur les donnes de type caractre sont :
gal
diffrent
suprieur ou gal
suprieur
infrieur ou gal
infrieur

note
note
note
note
note
note

>

<

Les quatre dernires reprsentent un ordre entre les caractres qui est le suivant :

- 0. Boussaid.

Algorithmique

< 0 < 1 < ... < 9 < A < B < ... < Z < a < b < ... < z
Cet ordre est dtermin par la codification ASCII.
Remarque :
Les minuscules et les majuscules sont considrs comme des caractres
diffrents.
Chane : sa valeur est une suite finie de caractres quelconques. Ce type n'est pas
toujours pr-dfini et doit faire l'objet d'un paramtrage , en fonction
de sa longueur (le nombre de caractres).
Une variable chane peut tre vide, si elle est de longueur nulle, et sera
note : ' ' . Si cette dernire est gale 1, la variable est considre aussi
comme Car.
Exemples :
'BONJOUR'

'CECI EST UN EXEMPLE'.

Les oprations dfinies sur les variables de type Chane sont celles des variables de
type Car.
ChaneA < ChaneB : si le mot contenu dans ChaneA est 'infrieur' celui de ChaneB
dans le sens du dictionnaire; (infrieur : avant ; suprieur : aprs).
Exemples:
'BAL' < 'BALLES' < 'BALLON' < 'BAR' < 'Bar' < 'bar'
De plus, il existe une autre opration dfinie sur les variables chane, la
concatnation (note ||). Elle cre une nouvelle en juxtaposant deux ou plusieurs
mots.
Exemple :
TELE'||'VISION'

'TELEVISION'

2.1.3. Le type logique


Une valeur logique (ou boolenne) est l'une des deux valeurs 'vrai' ou 'faux'. Elle
intervient dans l'valuation d'une condition.

- 0. Boussaid.

10

Algorithmique

Les oprations dfinies sur les variables de type logique sont la ngation, l'intersection
et l'union.
- la ngation (note : , non)
Soit A une variable boolenne :
A
vrai
faux

A
faux
vrai

- l'intersection (note : , et, .)


Soient A et B : deux variables boolennes :
A
vrai
vrai
faux
faux

B
vrai
faux
vrai
faux

A et B
vrai
faux
faux
faux

- l'union (note : , ou, +)


Soient A et B : deux variables boolennes :
A
vrai
vrai
faux
faux

B
vrai
faux
vrai
faux

A ou B
vrai
vrai
vrai
faux

- 0. Boussaid.

Algorithmique

11

2.2 Les expressions


Ceux sont des combinaisons entre des variables et des constantes l'aide
d'oprateurs. Elles expriment un calcul ou une relation, selon qu'elles sont
arithmtiques (algbriques) ou logiques.
2.2.1. expressions arithmtiques

Exemple :
Var1 * 54.5 /(2+pi)
Lordre selon lequel se droule chaque opration du calcul est important. Afin
d'viter les ambiguts dans l'criture, on se sert des parenthses et dune hirarchie
entre les diffrents oprateurs arithmtiques.
Hirarchie des oprateurs arithmtiques :
12345-

( )
^
* /
+ -

oprateur unaire
parenthses
puissance
multiplication ou division
addition ou soustraction

Remarque :
En cas de conflit entre deux oprateurs de mme priorit, on commence
par celui situ le plus gauche.
Exemples :
a+b-c :
a/b*c :

on fait d'abord a + b, ensuite - c


on fait d'abord a / b, ensuite * c

soit l'expression suivante :


(( 3 * a ) - x^2 ) - ((( c - d) / ( a / b )) / d )
1
2
4
5
3
6
7

- 0. Boussaid.

12

Algorithmique

8
Soit l'expression algbrique suivante :
(3-yx)2 - 4ac
2x-z
sa forme algorithmique est la suivante :
(( 3 - y * x ) ^ 2 - 4 * a * c ) / ( 2 * x - z )
2.2.2. expressions logiques
Ceux sont des combinaisons entre des variables et des constantes l'aide
d'oprateurs relationnels (=, <, =<, >, >=, ) et/ou des combinaisons entre des
, et, ou).
variables et des constantes logiques l'aide d'oprateurs logiques (
De la mme faon, on utilise les parenthses et des hirarchies entres les diffrents
oprateurs pour rsoudre les problmes de conflits.

hirarchie des oprateurs


logiques

et
ou

hirarchies des
oprateurs relationnels
>

<

2.3. Les actions


Toutes les primitives algorithmiques que nous allons utilises seront prsentes en
pseudo-code, un mlange convenable de locutions franaises aussi peu ambigus
que possible et de notations algbriques et assimiles pour autant qu'elles soient
ncessaires ou commodes.
2.3.1. l'action de dclaration
Il est ncessaire de dclarer tout donne utilise dans un algorithme et de prciser
son type.
Une constante ou une variable est dsigne par un nom : l'identificateur. Celui-ci est
une suite de caractres alphanumriques, dont le premier est ncessairement une
lettre (en gnral, on n'utilise que des lettres et des chiffres).

- 0. Boussaid.

13

Algorithmique

exemples :
mauvais identificateurs :

Ident1, Ident2, A10, B,...


5ABC, 35, a+b, ...

Remarques :
la suite des caractres n'est pas ncessairement limite .
Les majuscules et les minuscules ne sont pas distinctes.
Donner des identificateurs parlants pour faciliter la relecture de
lalgorithme.

Exemple:
VAR1 est identique Var1 et var1 .

Syntaxe :
Var liste des identificateurs : Type;

Exemple :
Var
Rponse : boolen;
Chain1 : Chane[30] ; (Chain1 est une chane de 30 caractres)
Rep : Car ;
i, j
: entier ;
a, b, c : rel ;

2.3.2. L'action d'affectation


syntaxe :
ident := expression

o :
ident

: est un identificateur;

- 0. Boussaid.

14

Algorithmique

expression : valeur ou variable ou expression.


Avant d'utiliser toute variable, la premire fois dans un calcul, il faut l'initialiser : lui
affecter une valeur de dpart, moins de lui affecter le rsultat obtenir.
Dans la notation d'affectation, l'lment gauche du symbole est une variable qui
reoit une valeur ou le contenu d'une variable ou le rsultat d'une expression (partie
de droite).
Autre notation de l'affectation : ident expression
exemples :
A := 10;
B := A;
C := C + 1;

mauvais exemples :
a + 1 := 3;
A := 3B;
(3B n'est pas un identificateur;
n'est pas non plus une
expression )

Exemple
Soit un algorithme qui permet de calculer la moyenne de 3 notes et
de lafficher.
Algorithme Moyenne ;
Const Note1 = 12 ; Note2 := 7.5 ; Note3 := 14 ;
Var Som, Moy : rel ;
dbut
Som := Note1
Som := Som + Note2
Som := Som + Note3
Moy := Som / 3
Afficher ( La moyenne est de : , Moy) ;
fin;

2.3.3. Lecture/Ecriture des donnes


Les actions dEntre/Sortie (ou de Lecture/Ecriture) permettent dintroduire des
donnes dans un programme ou dafficher des rsultats partir de celui-ci.

- 0. Boussaid.

15

Algorithmique

Exemples :
Lire (A, B) :

Entrer 2 valeurs stocker


dans les variables A et B.

Afficher( Le rsultat est : , Moyenne) :

le message Le rsultat est


saffichera suivi de la
valeur de la variable
Moyenne.

2.3.4. Les actions simples et composes


! On appelle action simple, toute action de dclaration, d'affectation, d'appel
une procdure, ou de Lecture/Ecriture.

exemples d'actions simples :


Var i1,i2 : entier;
Som := Som + 1;
Lire (Age);
Age
CALCUL (A,B)
B
Afficher (A,B)

lire une valeur et la stocker dans


procdure qui fait un calcul sur A et
crire les valeurs de A et de B.

! Une action compose est un ensemble fini d'actions simples (ou composes).

syntaxe :
dbut :

fin;

Action 1;
Action 2;
.......
Action p;

- 0. Boussaid.

Algorithmique

16

Exemple :
Dbut
Var A,B : rel;
A := B +1;
Lire (A,B);
CALCUL (A,B);
Afficher (A,B)
fin;

2.3.5. L'action slective


Supposons qu'on veut connatre le plus grand de 2 nombres a et b.
algorithme plusgrand(a,b)
Var a, b, pgran : entier;
dbut
Lire (a, b);
pgran := a;
Si b > a alors pgran := b
finsi
fin;

- Ou encore :
algorithme plugrand(a,b)
Var a, b, pgran : entier;
dbut
Lire (a,b);
Si a > b alors pgran := a
sinon pgran := b
finsi
fin;
Nous pouvons schmatiser les actions de slection dans ces 2 algorithmes de la
manire suivante :

Syntaxe :
1ier cas :
SI Condition ALORS action0 FINSI;

- 0. Boussaid.

Algorithmique

17

Syntaxe
2ime cas :
SI Condition ALORS action1
SINON action2
FINSI;

1ier cas) - Si la condition est vrifie, on excute action0, et on passe la suite de


l'algorithme. Si la condition ne l'est pas, alors on passe la suite de
l'algorithme.
2ime cas) - Si la condition est vrifie, on excute action1 et on passe la suite de
l'algorithme; sinon on excute action2 et on passe la suite de
l'algorithme.

Il existe une autre forme de l'action slective, qu'on appelle le choix multiple :

Syntaxe
SELON
variable
dbut
val 1 : action 1;
val 2 : action 2;
...
val N : action N
fin;

Sinon : action

Si variable est gale val i , on excute action i , et on passe la suite de l'algorithme,


sinon on excute action et on passe la suite de lalgorithme.

- 0. Boussaid.

18

Algorithmique

2.3.6. L'action itrative


Lorsqu'on a plusieurs actions qui se rptent, on crit celles-ci dans une mme action
compose et lon ritre plusieurs fois lexcution. Le nombre d'itrations peut tre
connu a priori ou pas. Dans ce dernier cas cest lexcution de laction itrative qui
dterminera son arrt.
Structure dune action itrative :

Boucle Condition

Contrle de la boucle

...
Action compose
...
Fin Boucle

Corps de la boucle
Fin de la boucle

Il existe plusieurs faons d'exprimer une action itrative.


La boucle Tant que :

Syntaxe
Tant que Condition faire
...
ACTION
...
Fin Tant que;

ACTION : peut tre une action simple, compose, slective ou itrative

Tant que la condition est vrifie on excutera le corps de la boucle, on s'arrtera ds


que la condition nest plus vrifie.

- 0. Boussaid.

Algorithmique

19

Exemple :
Algorithme Moyenne ;
Var Note, Moyenne, Som : rel ;
nb : entier ;
dbut
Som := 0; nb := 0 ;
Lire( Entrer une note : , Note) ;
Tant que Note < 0 faire
nb := nb +1 ;
Som = Som + Note ;
Lire( Entrer une note : , Note) ;
Fin Tant que
Moyenne = Som / nb
Afficher ( La moyenne des , nb notes est de : , Moyenne);
fin.
La boucle Rpter
La boucle Rpter permet de rentrer dans la boucle quelque soit la condition et
ritre lexcution jusqu' ce que la condition soit vrifie.
Syntaxe :

Rpter
...
ACTION
...
Jusqu' Condition ;

exemple :
Algorithme Moyenne ;
Var Note, Moyenne, Som : rel ;
nb : entier ;
dbut
Som := 0; nb := 0 ;
Rpter
Lire( Entrer une note : , Note) ;
nb := nb +1 ;
Som = Som + Note ;
Jusqu' Note < 0 faire
Moyenne = Som / nb
Afficher ( La moyenne des , nb notes est de : , Moyenne);
fin.

- 0. Boussaid.

Algorithmique

20

Dans cet algorithme, la boucle Rpter comptabilise tout de mme la note ngative et
arrte ensuite laction itrative. Pour corriger cette lacune il suffit dcrire :
Si Note 0 Alors Som = Som + Note
Fin Si;

Remarques :
Quelque soit l'tat de la condition, dans la 2ime forme, on excutera au
moins une fois le corps de la boucle. Tandis que dans la 1ire forme, si la
condition n'tant pas vrifie au dpart on n'excutera pas la boucle.
Dans ces deux formes, le nombre d'itrations nest pas connu priori. Il
dpend de la condition.
Dans le corps de la boucle, il doit exister une variable - dite de contrle qui sera modifie pour faire voluer l'tat de la condition. En gnral, cette
variable de contrle doit tre initialise avant l'entre dans la boucle.
Le choix de la forme de la boucle doit rpondre au problme rsoudre.
La boucle Pour

Syntaxe :
3ime forme
Pour i := val_initiale
...
ACTION
...
Fin Pour ;

val_finale, Val_pas faire

Du fait que le nombre d'itrations est connu, on se sert d'un compteur ( ici i ) qui sera
initialis automatiquement la valeur initiale et sera incrment de la valeur du pas,
jusqu' la valeur finale.
Dans le corps de la boucle il est interdit de modifier la valeur du compteur i, mme si
on peut s'en servir.

- 0. Boussaid.

21

Algorithmique

Exemple:
Algorithme Salaires ;
Var
Sal_annuel, Sal_mensuel : rel ;
i : entier ;
Dbut
Sal_annuel := 0 ;
Pour i := 1 12 faire
Lire (Entrer le salaire mensuel : , Sal_mensuel)
Sal_annuel:= Sal_annuel + Sam_mensuel ;
Fin Pour ;
Afficher (Le salaire annuel est de : , Sal_annuel) ;
Fin ;
Remarque :
Dans le corps dune boucle, on peut avoir une ou plusieurs autres
boucles. Limbrication des boucles doit suivre les rgles suivantes :
Imbrications autorises

Imbrications interdites
Boucle 1

Boucle 1

Boucle 2

Boucle 2
Boucle 4

Boucle 4

Fin Boucle 4
Fin Boucle 2
Boucle 3

Fin Boucle 2
Fin Boucle 4
Boucle 3

Fin Boucle 3
Fin Boucle 1

Fin Boucle 1

Fin Boucle 3

- 0. Boussaid.

Algorithmique

22

2.4. Les autres types de donnes


Certaines donnes peuvent avoir un nombre limit de valeurs. Leurs types sont
dfinis partir dautres types lmentaires.

2.4.1 Les types construits


2.4.1.1. Le type numr
On dfinit en extension toutes les valeurs que peuvent prendre les variables de ce
type. Les valeurs doivent tre ordonnes. Elles sont en nombre fini.

Exemple :
Jour = (lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche)
On peut crire :
Var j1, j2 : jour ;
j1 := mardi ;
j2 := dimanche ;
Les oprateurs relationnels (<, , >, , =, ) sappliquent sur les diffrentes valeurs
de ce type.
Exemple :
lundi < mardi < mercredi < jeudi < vendredi < samedi < dimanche

2.4.1.2. Le type intervalle


On dfinit en comprhension toutes les valeurs que peuvent prendre les variables de
ce type. Les valeurs doivent tre ordonnes et on ne prcisera que le minimum et le
maximum.

- 0. Boussaid.

23

Algorithmique

Exemple :
Chiffre = 0 .. 9
Lettre = A .. Z
Jour_ouvr = lundi .. vendredi
Remarque :
Les valeurs appartenant un intervalle sont ncessairement de type dj
dfini. Bien que les types numr et intervalle sont peu utiliss, ils
permettent nanmoins daccrotre la lisibilit des algorithmes et facilitent
les contrles.

2.4.2. Les types structurs


Il peut y avoir traiter des lots de donnes qui peuvent tre toutes de mme type ou
de types diffrents. Elles sont stockes alors dans une variable multiple laquelle on
donne un nom (identificateur) qui dsignera lensemble des donnes et une autre
information permettra de dsigner individuellement chacune delles.
Lorsque leur type est le mme, les donnes sont ranges dans un tableau, sinon elles
sont reprsentes dans un enregistrement.
2.4.2.1. Les tableaux
Cest un type structur constitu dun nombre fini dlments obligatoirement de
mme type. Celui-ci peut tre simple ou structu.
Exemple :
Supposons que lon dispose des chiffre dinflation pour chaque
mois. Pour calculer linflation annuelle, il suffit de calculer la
somme des donnes mensuelles.
On stockera alors les donnes dans un tableau de 12 lments : Tab_Inflation .
Tab_Inflation :
0.05
1

0.1
2

0.6
3

0.7
4

-0.4
5

-0.2
6

0.2
7

0.8
8

0.6
9

0.4
10

0.3
11

-0.2
12

Pour dfinir un tableau, il faut prciser un nom commun pour toutes ces donnes (ici
Tab_Inflation ) et un indice - variable entire pouvant prendre des valeurs entre 1 et

- 0. Boussaid.

Algorithmique

24

le nombre dlments du tableau - (par exemple, i entre 1 et 12). Cet indice indiquera
le rang de llment dans le tableau.

Exemple :
Tab_Inflation(1) :
Tab_Inflation(6) :
Tab_Inflation(10) :

le chiffre de linflation du mois de janvier.


le chiffre de linflation du mois de juin.
le chiffre de linflation du mois de octobre.

Pour dclarer un tableau, il faut :


dclarer le type commun aux lments du tableau
le type de lindice, gnralement un intervalle.

Exemple :
Type Tab = TABLEAU(1..12) de rel ;
Var Tab_Infaltion : Tab ;
Ou alors :
Var Tab_Infaltion = TABLEAU(1..12) de rel ;

Si on utilise une variable entire i comme indice, celle-ci est de type 1..12
Un tableau est caractris par sa taille (nombre dlments quil peut contenir). En
gnral, lorsque ce nombre dlments nest pas connu, on prvoit une taille
suffisamment grande pour contenir tous les lments (mme si ceux-l sont en
nombre infrieur la taille dclare).
Si le tableau contient une seule srie de donnes, on dira que sa dimension est gale
1 (il sagit dun vecteur ou tableau-colonne ou tableau-ligne). Sil contient 2 sries, sa
dimension est gale 2, cest une matrice.

- 0. Boussaid.

25

Algorithmique

Exemple :
Considrons les chiffres mensuels de linflation , du chmage et des prix la
consommation. Nous stockerons ces 3 sries de donnes dans une matrice (tableau
2 dimensions) :
0.05
0.03
0.1

0.1
0.2
0.005

0.6
0.5
0.03

0.7
0.3
0.2

-0.4
0.2
0.1

-0.2
0.1
0.07

0.2
-0.3
0.03

0.8
0.1
0.3

0.6
0.1
0.2

0.4
0.2
0.4

0.3
0.1
0.3

-0.2
0.3
0.3

Pour exploiter ce tableau, on aura besoin dun premier indice i pour parcourir les
lignes du tableaux (chaque srie de donnes) et dun deuxime indice j pour les
colonnes (chiffre du mois).
Soit le tableau suivant :
Type Tablo = TABLEAU(1..3 , 1..12) de rels ;
Var Tab_chiffres : Tablo ;
On crira :
Tab_Chiffres(1,9)
septembre ;
Tab_Chiffres(2,9)
septembre ;
Tab_Chiffres(3,9)

pour le taux dinflation du mois de


pour le taux de chmage du mois de
pour le taux de la hausse des prix la
consommation du mois de septembre ;

2.4.2.2. Les enregistrements


Contrairement aux tableaux, ce type structur permet de regrouper des donnes de
types diffrents.

Exemple :
On identifie un ouvrage par un code, un titre, un ou plusieurs auteurs, un
diteur et ventuellement la date de parution :

Ouvrage :

Code
Titre
Auteur
Editeur
Date

- 0. Boussaid.

Algorithmique

26

Ouvrage est une variable de type enregistrement ; chacune des ses 5 donnes, est un
champ, pouvant tre simple ou structur.

Syntaxe :
Type Nom_Enreg = Enregistrement
Champ 1 : type ;
Champ 2 : type ;
Champ 3 : type ;
...
Champ n : type ;
fin ;

La variable Ouvrage se dclare ainsi :


Type Livre = Enregistrement
Code : entier ;
Titre : Chane[20] ;
Auteur : Chane[40] ;
Editeur : Chane[25] ;
Date = Enregistrement
Mois = 1..12 ;
Anne = 1900..1999 ;
fin ;
fin ;
Var Ouvrage : Livre

Remarque :
Le champ Date est lui-mme un enregistrement.
Exemple :
pour exprimer une date sous la forme suivante : lundi 23
Septembre 1996, on dclare la structure denregistrement
suivante :

Type Date = Enregistrement

- 0. Boussaid.

Algorithmique

27

Jour = (lundi, mardi, mercredi, jeudi, vendredi, samedi,


dimanche) ;
Quantime = 1..31 ;
Mois = (janvier, fvrier, mars, avril, mai, juin, juillet, aot,
septembre, octobre, novembre, dcembre) ;
Anne = 1900..1999 ;
fin ;

Pour rfrencer un champ, on prfixe le nom de celui-ci avec le nom


de lenregistrement auquel il appartient :
Var Dat1 : Date ;
Dat1.jour := lundi
Dat1.quantime := 27
Dat1.Mois := septembre
Dat1.anne := 1996

autre exemple :
Var Ouvrage : Livre ;
Ouvrage.Auteur := V. Hugo
Ouvrage.Date.Mois := 10
Ouvrage.Date.Anne := 1995

2.4.3. Les Fichiers


Un fichier est un ensemble de donnes. Il peut servir soit la lecture, pour rentrer
des informations dans un programme , soit lcriture pour sauvegarder les rsultats
obtenus.
Les fichiers sont caractriss par deux notions :
le mode dorganisation : comment sont organises les donnes dans le fichier
(squentiel, index,...) ;
le mode daccs : comment sont accdes les donnes dans le fichier (squentiel,
direct, binaire,...).

- 0. Boussaid.

Algorithmique

28

Ces caractristiques sont troitement lies aux langages de programmation utiliss.


Chacun de ces derniers offre diffrents types de fichiers.
En algorithmique, nous nous limiterons par souci de facilit aux fichiers texte et aux
fichiers denregistrements.
Lutilisation dun fichier se fait selon les phases suivantes :
Ouverture du fichier.
Traitement du fichier.
Fermeture du fichier.
! Les fichiers texte
Les fichiers de type Texte sont des fichiers squentiels (mode
dorganisation squentielle). Les informations sont disposes de faon
squentielle, les unes la suite des autres. Elles ne sont ni en ligne ni en
colonne ! Elles sont repres par un pointeur. Leur organisation est squentielle
et leur accs ne peut tre que squentiel .
Trois oprations sont dfinies sur ce type de fichiers :

La lecture : Lors de louverture du fichier, le pointeur pointe sur la 1

information, quelque soit son type. A chaque accs (Lire), le pointeur se


dplace sur linformation suivante, (mode daccs squentiel). Si on veut lire
une information en amont du pointeur, il faut fermer le fichier, le rouvrir et
lire jusqu linformation dsire.

Lcriture : un fichier non vide ouvert en criture perd tout ce quil possde. En
effet, ds son ouverture le pointeur est positionn sur la premire ligne. Seules
les oprations dcriture sont autorises.
Lajout : cette opration permet de rajouter de nouvelles donnes la fin du
fichier sans dtruire ce quil y avait auparavant. Le pointeur est positionn sur
la marque de fin de fichier qui est dcale dune position aprs chaque rajout.
Exemple :
Var Fich1 : FICHIER texte
Pour i := 1 100 faire
Lire (Fich1, Tab(i))
fin Pour
Les donnes du fichier Fich1 sont lues et stockes dans la tableau Tab.

- 0. Boussaid.

Algorithmique

29

Ecrire (Fich1, Le salaire annuel est de : , Sal_Annuel) ;


Ces informations sont stockes dans Fich1 lendroit o se trouve le pointeur lors de
cette action.
Ajout (Fich1, Le salaire annuel est de : , Sal_Annuel) ;
Ces informations sont rajoutes la fin de Fich1 et le pointeur reste sur la marque de
fin de fichier.
Il ny a que la fin du fichier qui est marque par un symbole repr par la
fonction EOF(Nomfichier), qui rend la valeur vraie si elle le rencontre, la valeur
faux sinon.
Un fichier squentiel ne peut tre ouvert quon lecture ou en criture. Aprs
louverture dun fichier, la premire opration (Lire, Ecrire ou Ajout) indique si
le fichier est accessible en lecture ou en criture.
Ecrire et Ajout sont des oprations dcriture, leur seule diffrence et due
au fait que pour Ecrire, le pointeur se place en dbut du fichier, alors que pour
Ajout, il se place en fin du fichier.

Toute manipulation dun fichier ncessite 3 phases :


" Ouverture du fichier :
OUVRIR (Nomfichier)
" Traitement du fichier :

Lecture ou Ecriture :
LIRE(Nomfichier, ........) ;
ECRIRE(Nomfichier, ........) ;
AJOUT(Nomfichier, ........) ;

" Fermeture du fichier :


FERMER(Nomfichier)

Remarques :
La fonction EOF(Fich1) permet de tester si le pointeur est sur la fin du
fichier Fich1.
Lutilit des fichiers est la sauvegarde les donnes.

- 0. Boussaid.

Algorithmique

30

Il est prfrable dutiliser Ecrire la place dAfficher, quand on


utilise les fichiers.

! Les fichiers denregistrements


Cest un ensemble denregistrements (ou darticles) de type structur que lon dj
dfini.
Exemple :
Type Etudiant = Enregistrement
Numro : entier ;
NomPrnom : Chane[30]
Discipline : Chane[25]
Anne_Inscrip : 1950..2000
fin ;
Var E1 : Etudiant
Fich_Etudiant : FICHIER de Etudiant ;
E1.Numro := 134561 ;
E1.NomPrnom := Dupont Lionel ;
E1.Discipline := Sciences conomiques ;
E1.Anne_Inscrip := 1996
Afficher(Fich_Etudiant, E1) ;
On peut traiter un fichier denregistrements de manire squentielle, mais son intrt
et de permettre un accs direct aux donnes.

Lors de louverture dun tel fichier, le pointeur est positionn sur le premier
enregistrement. On peut se dplacer directement sur nimporte quel enregistrement
avant une opration de lecture ou dcriture laide de laction :
Positionner(Fichier, Nenregistrement)

Remarques :
Contrairement aux fichiers squentiels, un fichier denregistrements peut
tre ouvert en lecture et en criture.
La taille dun fichier de ce type est le nombre de ses enregistrements.

- 0. Boussaid.

Algorithmique

31

2.5. La notion de sous programmes


Dans la rsolution dun problme, on peut constater qu'une suite d'actions revient
plusieurs fois. Dans ce cas il serait judicieux de l'crire une seule fois, et de l'utiliser
autant de fois que c'est ncessaire, en effectuant des calculs avec des donnes
diffrentes.
Cette suite d'actions sera dfinie dans un sous programme, qui peut prendre soit la
forme dune procdure, soit la forme dune fonction.
Dautre part, on peut observer que certains groupes dactions se rapportent des
traitements prcis et diffrents. Il est souhaitable alors de reprsenter chacun deux
dans un sous programme, ce qui permettra damliorer la conception du programme
et sa lisibilit. On peroit alors un programme comme un ensemble de
procdures/fonctions. La structuration dun programme par morceaux (modules) est
la base de la programmation structure et modulaire.

2.5.1. La procdure
Une procdure est un sous programme qui peut retourner 0, 1 ou plusieurs rsultats.
dfinition de la procdure :

Procdure nom (listes d'arguments :type);


dbut
corps de la procdure
fin;

La premire ligne sappelle len-tte (ou la signature) de la procdure. La liste


darguments est une suite de donnes changer avec dautres programmes.

appel de la procdure :

nom-de-la-procduer (liste d'arguments);

- 0. Boussaid.

Algorithmique

32

Remarques :
Si une liste darguments apparat dans la dfinition dun sous-programme,
lors de lappel ce dernier, elle doit galement apparatre dans laction
dappel.
Les listes d'arguments dans la dfinition dun sous-programme et dans
son appel doivent se correspondre. C'est dire, il doit y avoir le mme
nombre d'arguments dans les deux listes. Lordre dapparition des
arguments dans les deux listes doit tre le mme. Chaque argument d'une
liste doit tre de mme type que son homologue de l'autre liste.
La liste d'arguments dans la dfinition dun sous-programme contient le
type de chaque argument. Ce nest pas le cas de celle de lappel.

exemple :
On veut crire un algorithme qui calcule le salaire des commerciaux dune
entreprise. Celui-ci est compos dun fixe diffrent dun employ un autre et
dune prime dintressement de 10% du chiffre daffaire ralis si celui-ci dpasse
les 50 000 F, de 3% sinon.

# On isolera la suite d'actions qui permet de rentrer les salaires fixes de chacun
ainsi que leur chiffre daffaire.
Procdure Saisie( Var Sal , CA : entier) ;
dbut
fin.

Lire (Entrer le salaire du commercial : , Sal) ;


Lire (Entrer son chiffre daffaire : , CA) ;

2.5.2. La fonction
Une fonction est un sous programme qui retourne obligatoirement une valeur. Cette
dernire sera stocke dans une variable qui porte le mme nom que la fonction.
dfinition de la fonction :
Fonction nom (liste d'arguments : type) : type;
dbut
corps de la fonction
fin;

- 0. Boussaid.

Algorithmique

33

Le nom de la fonction est utilis comme identificateur dune variable, on dclare


alors le type de cette dernire.
appel de la fonction :

var := expression ( ... fonction(liste d'arguments.) ... )

Exemple (suite) :

# De la mme manire, on isole les actions permettant de calculer la commission


de chaque commercial.
Fonction Commission(Montant : rel) : rel ;
Const plafond = 50000 ;
Var taux : rel ;
dbut
Si Montant plafond Alors taux := 0,1
Sinon taux := 0,03
Fin Si ;
Commission := Montant * taux ;
fin.

# On peut construire un troisime sous-programme qui calculera le salaire de


chacun.
Procdure Calcul_Salaire ;
Var Salaire, Sal_fixe, Chif_Aff : rel ;
dbut
Saisie(Sal_fixe, Chif_Aff) ;
Salaire := Sal_fixe + Commission(Chif_Aff )
Afficher( Le salaire est de : Salaire) ;
fin.

Commentaires :
Les listes darguments sont optionnelles.
La procdure Calcul_Salaire est le programme appelant. La procdure Saisie et
la fonction Commission sont les programmes appels.

- 0. Boussaid.

Algorithmique

34

Nimporte quel sous-programme peut tre appelant ou appel (il faut viter les
appels circulaires).
Les arguments des Procdures/Fonctions appeles sont les paramtres formels
(ou fictifs). Ils peuvent porter les mmes noms (ou des noms diffrents) que
leurs correspondants des programmes appelant qualifis de paramtres rels
(ou effectifs).
Dans la procdure Calcul_Salaire, lappel de la procdure Saisie, les
paramtres rels Sal_fixe, Chif_Aff sont vides (ou contiennent plutt nimporte
quoi). Au retour du sous programme, ils possderont respectivement le salaire
et le chiffre daffaire ralis.
Dans lappel la fonction Commission (action qui calcule le salaire), le paramtre
rel Chif_Aff possde dj la valeur du chiffre daffaire retourne par Saisie. Au
retour de cette fonction la variable commission contiendra la valeur de la prime.

2.5.3. La porte des donnes


Les sous programmes communiquent entre eux par des paramtres. Une
Procdure/Fonction peut avoir des variables internes qui ne sont pas visibles par les
autres. Il sagit de variables locales. Elles ne sont accessibles que par le sousprogramme o elles sont dfinies. Par consquent, diffrents sous-programmes
peuvent avoir des variables locales portant le mme nom ventuellement. Celles-ci
nauront pas la mme signification pour chacun deux. On dira galement que la
porte dune variable locale est le sous-programme o elle a t dfinie.
Exemple :
Sal_fixe et Chif_Aff sont des variables locales Calcul_Salaire.
Si une variable doit tre accessible par tous les sous-programmes, il faut la dfinir
comme une variable globale. Ce qui veut dire quelle est visible par tout sousprogramme et que sa valeur peut tre utilise ou modifie nimporte o. La porte
dune variable globale est lensembles des sous-programmes pouvant lutiliser.
Remarques :
La dclaration des variables globales dpend du langage de
programmation utilis. Certains les dfinissent dans le programme
principal (programme dappel aux Procdures/Fonctions) ; dautres dans
une section spciale.
La notion de porte sappliquent galement aux constantes et aux types.
Exemple :
Dans la fonction Commission, plafond est une constante locale.

- 0. Boussaid.

Algorithmique

35

2.5.4. Le passage des paramtres entre sous programmes


Lors de lchange de donnes entre sous-programmes, on peut soit autoriser, soit
interdire la modification des valeurs.
Il existe deux modes de passage de paramtres :
passage par valeur : dans les sous-programmes appels, les valeurs
des paramtres transmis sont utilises sans quil soit possible de les
modifier. Les paramtres formels contiennent une copie des valeurs
des paramtres rels.
Exemple :
Dans la fonction Commission, la valeur initiale du paramtre
montant est conserve.
passage par adresse : les sous-programmes appels peuvent modifier
les valeurs des paramtres rels transmis. Les paramtres formels
contiennent ladresse des paramtres rels. Les modifications de
valeurs effectues dans le programme appel seront effectives au
retour dans le programme appelant.
Exemple :
Dans la procdure Saisie, les valeurs affectes aux paramtres formels Sal et CA
seront disponibles dans le programme appelant Calcule_Salaire.

- 0. Boussaid.

Algorithmique

36

DEUXIME PARTIE

Introduction au Visual Basic

1. Gnralits
1.1. Programmation objet, visuelle, vnementielle
La programmation daujourdhui est par objet, visuelle, vnementielle... Mais que
reprsentent tous ces concepts ? quelle est la dmarche suivre pour construire une
application ?
Nous allons tenter de rpondre simplement ces questions. Quoiquil existe toute
une thorie sur la conception des programmes orients objet, nous nous contentons
de donner une dfinition simple dun objet afin de le situer dans ce contexte de
travail, sans verser dans les dtails prcis des notions telles lhritage,
lencapsulation , le polymorphisme....
Un objet est un ensemble de donnes : quon appelle attributs ou proprits permettant de le caractriser ; et de programmes : quon appelle mthodes -, servant
ente autres modifier les proprits. Construire un programme-objet revient
dfinir un ensemble dobjets. Souvent lutilisateur fait appel des objets dj pr
dfinis dans le langage utilis, en les personnalisant par modification des valeurs des
proprits et/ou en adaptant les mthodes la logique de son application.
Un programme visuel est fondamentalement constitu dune partie communication
consquente. Celle-ci reprsente une interface conviviale facilitant le discours avec
lutilisateur mme non initi loutil utilis. Elle est forme dlments graphiques
simples crer et faciles lire, auxquels sont associs des actions, programmes par
lutilisateur. Ce dernier dclenche ces traitements selon sa propre logique de
rsolution (comme, lorsquil utilise un logiciel de bureautique). Ces dclenchements ou vnements - sont provoqus en appuyant sur une touche du clavier ou en
manipulant la souris ou tout simplement lorsquune variable est dans un tat donn.

- 0. Boussaid.

Algorithmique

37

Un programme constitu dobjets visuels et excut laide dvnements est un


programme visuel et vnementiel.
Visual Basic est un langage de programmation visuelle et vnementielle. Il permet
de construire des applications en trois phases :
Conception de linterface graphique. Cela consiste construire des fentres et
dautres objets graphiques laide doutils de dessin.
Affectation des valeurs certaines proprits des ces objets graphiques.
Ecriture du code des actions associer aux objets graphiques.
1.2. Composition dune application VB
1.2.1. La forme visuelle
Une application est forme dune feuille (ou plusieurs), reprsentant une fentre

- Fig.1 : Une Feuille VB

dans laquelle on dispose des contrles : tiquettes, zones de saisie, listes, boutons de
commandes ou doptions, cases cocher, etc ...
La feuille et les contrles sont des objets possdant des proprits ayant dj des
valeurs et des mthodes, qui souvent sont des cadres vides que lutilisateur peut
remplir par des bouts de programmes .
Tout objet (feuille ou contrle) a une liste de proprits ayant une valeur lors de sa
construction. Lutilisateur peut modifier certaines dentre elles pour changer la taille,
la couleur, le titre, le contenu, lemplacement... afin de personnaliser lobjet. Ces
modifications peuvent avoir lieu lors da la construction de la forme visuelle. Cest

- 0. Boussaid.

Algorithmique

38

dire de faon statique, avant lexcution du programme, ou alors en cours de celui-ci


de manire dynamique.
Avant de dvelopper le code des diffrentes actions, il faut dores et dj penser aux
diffrents vnements qui vont associer les objets visuels aux programmes. Leur rle
consiste permettre le dclenchement des diffrents traitements.
La conception de la forme visuelle : cration de la feuille et des contrles, valorisation
des proprits, dtermination des vnements, ncessite une analyse portant sur la
partie communication entre lutilisateur et lapplication. Cest une rflexion qui se
distingue de lalgorithmique classique.
1.2.2. Les programmes VB
Le code dans une application VB est reprsent par des sous-programmes crits dans
des procdures ou des fonctions. Il existe plusieurs types de procdures.
Les procdures-vnements : ceux sont des procdures associes aux diffrents contrles
ou feuilles par les vnements, do leur nom. Elles sont toujours stockes dans un
fichier feuille. Chaque contrle ou feuille possde une liste dvnements pr dfinies
auxquels correspondent des procdures-vnements. En fait, ces dernires sont des
cadres vides dans lesquels lutilisateur crit du code pour programmer une action
donne. Rappelons quune action est une suite dinstructions.
" Les procdures gnrales : ceux sont des procdures classiques que
lutilisateur pourra crire pour isoler un traitement ou viter de le rpter
plusieurs fois. Elles sont appeles soit par des procdures-vnements, soit
par dautres procdures gnrales. Elles peuvent prendre forme dune
fonction si elles retournent toujours un rsultat. Elles sont toujours
stockes dans un fichier feuille ou dans un fichier module.
" Les fonctions VB : VB met la disposition de lutilisateur une librairie de
fonctions ou instruction pr dfinies pouvant servir dans les diffrents
traitements. Nous pouvons citer :
les fonctions mathmatiques
les fonctions financires
les fonctions de conversions des donnes
les fonctions de traitements de chanes de caractres
les fonctions de dates/heures
les fonctions daccs aux fichiers, aux rpertoires et disques
....
Contrairement un programme classique, lutilisateur conoit une application VB en
une forme visuelle et un ensemble de programmes dont une partie est affecte aux
diffrents objets (contrles ou feuilles).

- 0. Boussaid.

39

Algorithmique

1.2.3. Les fichiers dune application VB


Fichier feuille

Fichier feuille

Contrles

Contrles

Dclarations

Dclarations

Procduresvnements

Procduresvnements

Procdures
gnrales

Procdures
gnrales

Feuille_1.FRM

Feuille_2.FRM

Fichier module

Dclarations
Procduresvnements
Procdures
gnrales

Fichier projet

Feuille_1.FRM
Feuille_2.FRM
Fmod_1.BAS

Procdures
gnrales

Fmod_1.BAS

Fic_Proj.Vbp

- Fig.2 : Les fichiers dune application VB.


Une application VB peut tre compose dun ou plusieurs fichiers feuille et/ou dun
ou plusieurs modules et toujours dun fichier projet.

$ Le fichier feuille : On y stocke tous les objets graphiques (feuille, contrles) avec
toutes leurs proprits et les procdures-vnements qui sont dfinies. On peut
galement y mettre des procdures gnrales. Cependant, celle-ci sont
locales aux procdures du fichier. Elles ne sont pas visibles des autres
fichiers de lapplication. Toutes les variables, constantes et types prsents dans
la section Dclarations sont galement accessibles lensembles des procdures
de ce fichier.

% Les fichiers module : On y trouve que les procdures gnrales qui de plus sont
globales lensemble de lapplication. Il en est de mme pour les donnes
(variables, constantes et types) dclares dans la section Dclarations. Les types
spcifiques (enregistrement, par exemple) ne sont dfinis que dans les
dclarations dun module.

& Les fichiers projet : Cest un fichier rpertoire. Il ne contient que les noms des
fichiers feuilles et/ou modules qui composent une application. Lors de
louverture dune application, il suffit de charger le fichier projet.

- 0. Boussaid.

40

Algorithmique

Remarque :
Lorsquon sauvegarde une application, il faut sauvegarder chacun de ses
fichiers.
1.2.3. Les fentres de VB
VB dispose de plusieurs fentres de travail pour crer une application :

- Fig.3 : Fentre des proprits.

- Fig.4 : Fentre des outils de dessin.

La cration dune forme visuelle se fait interactivement. Lutilisateur slectionne des


contrles dans la bote outils (fig.4) et les dpose sur la feuille (fig.1) . Il les
personnalise en modifiant les valeurs des proprits laide de la fentre des
proprits(fig. 3).
Quant lcriture des programmes, elle se fait dans la fentre code dun fichier
feuille :

- 0. Boussaid.

Algorithmique

41

- Fig.5 : Fentre de code dun fichier feuille.


La fentre objet : contient la liste de tous les objets (feuille et contrles) de lapplication
(ici lobjet est le contrle bouton de commande Command1).
La fentre Proc contient la liste de toutes les procdures-vnements des contrles et
de la feuille (ici la procdure-vnement Click du contrle Command1 nomme
Command1_Click .
Il existe un objet Gnral contenant la section Dclarations et toutes les procdures
gnrales cres par lutilisateur.
La fentre code dun module a la mme apparence que celle dune feuille, sauf
quelle ne possde que lobjet Gnral.
Enfin la fentre projet permet de grer tous les fichiers feuille et/ou modules qui
composent lapplication :

- Fig.6 : Fentre de projet dune application.


2. Elments de base du VB
2.1. Les variables
2.1.1. Les identificateurs
Ils servent rfrencer les variables (les constantes et les types aussi). Ils sont
constitus de chanes de caractres (mlange de lettres et de chiffres et le symbole
_ ) dont le premier est une lettre et de longueur infrieure ou gale 40. Les
majuscules et les minuscules sont identiques. Les caractres accentus sont autoriss.

- 0. Boussaid.

Algorithmique

42

Exemples :
Le_rsultat
M1
Var1
...
2.1.2. Les types
VB possde plusieurs types
" Numriques
Entiers
INTEGER : stocks sur 2 octets (-32768 +32767) ; entiers positifs ou
ngatifs.
Suffixe : %
LONG : stocks sur 4 octets (-2,147 +2,147 milliards)
Suffixe : &
Rels
SINGLE : stocks sur 4 octets (-3,402E38 -1,40E-45 pour les valeurs
ngatives et 1,40E-45 3,40E38 pour les valeurs positives) ; nombres avec
partie dcimale.
Suffixe : !

DOUBLE : stocks sur 8 octets (-1,797D308 -4,94D-324 pour les


valeurs ngatives et 4,94D-324 1,797D308 pour les valeurs
positives) .
Suffixe : #

CURRENCY : rels virgule fixe ayant 4 dcimales, pour les chiffres


financiers.

Suffixe : @
" Chanes de caractres
STRING : pour stocker du texte. Elles peuvent avoir une taille jusqu 65
000 caractres. La longueur dune chane est soit variable : elle sadapte
son contenu ; soit fixe dclare initialement.
Suffixe : $

- 0. Boussaid.

43

Algorithmique

Exemples :
Ch1 As String * 20
Ch2 As String
" Le type Variant
Le type dune variable Variant peut changer selon le contexte. Il peut
sagir dun nombre, dune chane ou une date/heure. VB effectue
automatiquement les conversions ncessaires.
Suffixe : pas de suffixe.
" Les types spcifiques
Linstruction TYPE sert dfinir les enregistrements.
Exemple :
TYPE Personne
Nom As String * 40
Numro As Integer
Adresse As String
End Type

Remarque :
Il existe dautres types dans VB pour dclarer les variables objet ou
autres...
Par dfaut, le type est Variant.
Exemple :
Dim Variable_1
Selon ce quon crit :
Varaible_1 = 28
Varaible_1 = OUI

Variable_1 est Integer ;


Variable_1 est String ;

La fonction VarType permet de connatre la reprsentation interne dune


variable Variant.
Initialement une variable Variant est Empty (vide), on peut lui affecter la
valeur NULL (valeur nulle).
Les fonctions IsEmty ou IsNull permettent de tester ces conditions.

- 0. Boussaid.

Algorithmique

44

2.1.3. Les dclarations


On peut dclarer explicitement ou implicitement toutes les donnes utilises
(variables, constantes ou types).
2.1.3.1. Les dclarations explicites
Cest laide des instructions Dim, Static ou Global quon fait une dclaration.
Exemples :
Dim A As Long
Dim Ch_1 As String
Static X As Integer
Global V As Single

Remarques :
Lors de la premire excution de lune de ces instructions, les variables
sont initialises 0 , vide ou Empty, selon le cas. Cependant sil y a
dautres excutions (par exemple, lors des appels de sous programmes) :
Si linstruction est Dim, les variables sont r initialises 0 , vide
ou Empty.
Si linstruction est Static, les variables gardent leur valeur avant
lexcution de celle-ci.
2.1.3.2. Les dclarations implicites
1ier cas :
Linstruction DefType indique que les variables commenant par une lettre dfinie
laide de celle-ci sont du type dclar.
Exemples :

DefInt A-E
DefSng X, Y
DefStr H, L-O

Les variables commenant par A ou B ou C ou D ou E sont


Integer.
Les variables commenant par X ou Y sont Single.
Les variables commenant par H ou une lettre de L O sont
String.

- 0. Boussaid.

Algorithmique

45

2ime cas :
On peut aussi utiliser le suffixe dun type pour utiliser une variable sans la dclarer.
Exemple :
Compteur% = Compteur% +1
Ch1$ = Exemple

Remarque :
Il est recommand dutiliser des dclarations explicites, en les forant par
Option Explicit.

2.1.3.3. La dclaration des tableaux


Exemple :
Dim Tjours(1 To 31) As Integer
Dim Tsemaine(6) As String
On pourra crire :

Tsemaine(0) = Lundi
Tsemaine(1) = Mardi
...
Tsemaine(6) = Dimanche

On peut galement utiliser un tableau 2 dimensions pour stocker des tempratures


par exemple.
Exemple :
Dim Tdate(1..31 , 1..12) As Single
Si on crit :

TDate(10,9) = 20
Cela veut dire que le 10 septembre il a fait 20.
Remarque :
La borne infrieure dun tableau est par dfaut gale 0.
On peut avoir jusqu 60 dimensions .
2.1.4. La porte des variables
Si une variable est dclare laide de Dim ou Static dans une
Procdure/Fonction, elle est locale.
Si elle est dclare laide de Dim dans la section Dclarations dun module (ou
dune feuille), elle est utilisable par tous les sous programmes du module (ou de

- 0. Boussaid.

Algorithmique

46

la feuille). Elle est globale pour les Procdures/Fonctions du module ou de


la feuille.
Si elle est dclare dans la section Dclarations dun module laide de Global,
tous les feuilles et modules de lapplication peuvent lutiliser.
2.1.5. Les constantes
Les constantes sont dclares laide de linstruction Const dans une feuille ou un
module, pour tre utilise localement ; ou globalement laide de Global Const .
2.2. Les actions
2.1.1. Les actions simples

' La dclaration
toutes les instructions de dclaration du chapitre prcdent sont considres comme
des actions simples.
' Le commentaire
Cest une instruction non excutable et sert faciliter la lisibilit du programme.
Il scrit sous plusieurs formes ( laide de Rem ou du symbole ).
Exemples :
Rem
Ceci est un exemple de commentaire.
Ceci est un exemple de commentaire.
i=i+1
incrmentation de la variable i

' Laffectation
Syntaxe :

Var = Valeur

Var est une variable


Valeur est une valeur ou variable ou expression
Les 2 membres dune affectation doivent tre de mme type.
Si le membre gauche est Variant, celui de droite peut tre String, numrique ou
Variant.
Si le membre de droite est Variant alors celui de gauche peut tre String ou
numrique ou Variant.
Il existe dautres instructions simples telles lappel aux sous programmes.
o

- 0. Boussaid.

47

Algorithmique

2.1.2. Les actions slectives


2.1.2.1. Les tests simples
Syntaxe :
If Condition Then
Else
End If

Action_1
Action_2

Exemples:
If

Chif_Aff >=

10000 Then
Else

Taux = 0.10
Taux = 0.05

End If
If

x >

y Then
Else

End If
If
a <> 0
End If

Rep$ = x est plus grand que y


Rep$ = y est plus grand que x

Then

x = y /a

2.1.2.2. Les tests en cascade


Syntaxe :
If Condition_1 Then
Action_1
Else If Condition_2 Then
Action_2
Else If Condition_3 Then
Action_3
...
Else If Condition_n Then
Action_n
Else Condition_n+1 Then
Action_n+1
End If

Exemple :
If
jour = lundi Then
Temp% = 20
Temp% = 25
Else If
jour = mardi Then
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
End If

- 0. Boussaid.

Algorithmique

2.1.2.3. Le test IIf


Syntaxe :
IIf (Condition , Si_Vrai , Si_Faux)

Exemples:
IIf ( Chif_Aff >= 10000 , Taux = 0.10 , Taux = 0.05)

2.1.2.4. Les choix multiples


Syntaxe :
Select variable_1
Case Liste_1
Action_1
Case Liste_2
Action_2
...
Case Liste_n
Action_n
Case
Action
End Select

Exemples:
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

48

- 0. Boussaid.

Algorithmique

49

2.1.2.3. Linstruction Choose


Syntaxe :
Choose (Index , Exp_1 , Exp_2, ... )

Index prend les valeurs 1, 2, 3, ... jusquau nombre dexpressions


dsignes (13 au maximum).
Exemples:
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%

2.1.3. Les actions rptitives

( Le nombre ditrations peut tre inconnu au dpart.


2.1.3.1. La boucle While... Wend
Syntaxe :

While Condition
ACTION
Wend

Dans cette forme, si la condition est vraie au dpart, on entre dans la boucle et on
excute son corps (ACTION) tant quelle est vrifie. Dans le cas contraire, on saute
simplement toute laction While.
Dans ACTION, il doit y avoir une instruction qui modifie la condition pour quelle
puisse changer dtat et permettre la sortie de la rptition.
Exemple :
i = 1
Sal_Annuel = 0
While i <= 12
Sal_annuel = Sal_Annuel + Salaire
i = i +1
Wend

- 0. Boussaid.

50

Algorithmique

2.1.3.2. Les boucles Do ... Loop

'

1ier cas :
Syntaxe :
Do While Condition
ACTION
Loop

Do Until Condition
ACTION
Loop

Dans ces 2 formes, Si la condition est vraie ds le dpart, on entre dans le corps de la
boucle et on rpte lexcution tant que la condition est vrifie ou jusqu' ce quelle
ne le soit plus. Dans le cas contraire, on saute simplement laction de rptition.
Ces deux formes du Do ... Loop sont identiques linstruction While ... Wend.

'

2ime cas :
Syntaxe :
Do

ACTION
Loop While Condition

Do

ACTION
Loop Until Condition

Dans ces 2 formes, on entre systmatiquement dans le corps de la boucle quelque soit
ltat de la condition et on rpte lexcution tant que la condition est vrifie ou
jusqu' ce quelle ne le soit plus. Si la condition est fausse, on excute une fois
ACTION est on sort de la boucle.
Exemples :
i = 1
Sal_Annuel = 0
Do While i <= 12
Sal_annuel=Sal_Annuel+Salaire
i = i +1
Loop

i = 1
Sal_Annuel = 0
Do Until i <= 12
Sal_annuel=Sal_Annuel+Salaire
i = i +1
Loop

i = 1
Sal_Annuel = 0
Do
Sal_annuel=Sal_Annuel+Salaire
i = i +1
Loop While i <= 12

i = 1
Sal_Annuel = 0
Do
Sal_annuel=Sal_Annuel+Salaire
i = i +1
Loop Until i <= 12

- 0. Boussaid.

Algorithmique

Remarque :
On peut sortir tout instant de ces boucles laide de linstruction
Do.

51

Exit

2.1.3.3. La boucle For

Le nombre ditrations peut tre connu au dpart.


Syntaxe :
For Compt = Val_dbut To Val_fin [Step pas ]
ACTION
Next [ Compt ]

On compte de la valeur Val_dbut la valeur Val_fin avec un pas gal 1 (par


dfaut) ou la valeur pas dfinie par Step. A chaque valeur du compteur Compt, on
excute une itration de ACTION. La variable de contrle (ici le compteur) est
incrmente automatiquement et vrifie quelle ne dborde pas la valeur finale.
Les clauses entre crochets sont optionnelles.
Exemple :
Total_Notes = 0
For i = 1 To 10
Total_Notes = Total_Notes + Note
Next
Moy = Total_Notes / 10
Remarque :
On peut sortir tout moment dune boucle For par linstruction Exit For.

- 0. Boussaid.

Algorithmique

52

3. Les sous programmes


Outre les procdures-vnements dj vues, il est possible dcrire des
procdures/fonctions dites gnrales - cest dire, quelles ne sont associes aucun
contrle ou feuille -, quon stockerait dans un fichier feuille ou module.
3.1. Dfinition dune Procdure/Fonction
Pour la procdure :
Syntaxe :
[Static] [Private] Sub nom_Sub (Liste darguments)
...
Corps de la procdure
...
End Sub

Pour la fonction :
Syntaxe :
[Static] [Private] Function nom_Sub (Liste darguments) : As type
...
Corps de la procdure
...
End Sub
Syntaxe :

Liste darguments : [ByVal] variable_1 [As type] [,[ByVal] variable_1 [As type]]...

3.2. Appel dune Procdure/Fonction


Pour la procdure :
Syntaxe :
nom_procdure [Arg_1, Arg_2...]
ou
Call nom_procdure[(Arg_1,Arg_2,...)]
Remarque :
La liste darguments peut-tre vide, auquel cas dans lappel, il ny a que le
nom de la procdure qui apparat.

- 0. Boussaid.

Algorithmique

53

Pour la fonction :
Syntaxe :
var_1 = nom_fonction [Arg_1,Arg2,...]

Remarque :
Si la liste darguments est vide, les parenthses sont quand mme
obligatoires.
Il est tout fait possible de quitter la procdure/fonction tout moment
par linstruction :
Exit Sub

pour la procdure.

nom_F=rsultat
Exit function

pour la fonction, aprs avoir affecter la


variable nom_F le rsultat quelle doit
retourner.

Les procdures/fonctions dfinies dans une feuille sont locales seulement celleci. Seules les procdures/fonctions de ce fichier peuvent les appeler.
Les procdures/fonctions dfinies dans un module sont globales lensemble de
lapplication. Sauf si une procdure/fonction est dfinie avec Private.
VB dispose de fonctions et procdures qui lui sont propres et quon peut appeler
dans toute application.

- 0. Boussaid.

Algorithmique

54

4. Les Fichiers
Lorsquon veut sauvegarder des donnes produites par une application ou rentrer
des informations dj existantes : on utilise des fichiers.
VB permet de pratiquer 3 types de fichiers :
) Les fichiers squentiels
) Les fichiers daccs direct
) Les fichiers binaires.
4.1. Les fichiers squentiels
Ce type est utilis pour les fichiers texte. Chaque ligne est limite par les symbole
CR-LF (Retour Chariot et Fin de Ligne). A chaque accs, on traite la ligne dsigne
par un pointeur et on passe la ligne suivante. Les lignes contiennent des caractres
alphanumriques.
Comme en algorithmique, un fichier est dabord ouvert, ensuite il est trait puis enfin
ferm.
Cest linstruction Open qui permet douvrir un fichier. Les fichiers squentiels sont
ouverts soit en Input : en lecture seule ; soit en Output : en criture partir du dbut,
le fichier est alors rinitialis, il perd son contenu sil en avait ; Soit en Append : on
rajoute des informations partir de la fin sans perdre ce quil contient dj.
Syntaxe :
Open Nom_Fichier For Input As #1
Open Nom_Fichier For Output As #1
Open Nom_Fichier For Append As #1

Les noms de fichiers obissent aux rgles du DOS ; La longueur est limite 8
caractres maximum et une extension de 3 caractres au maximum.
VB numrote les fichiers ouverts. As #1 affecte le n 1 au fichier. Cest par ce numro
quon dsigne le fichier dans les instructions.
La fonction FreeFile retourne un numro disponible pour louverture dun fichier.
Exemple :
num = FreeFile
Open Fich_1.txt For Input As #num
Linstruction Line Input # permet de lire une ligne dun fichier squentiel.

- 0. Boussaid.

Algorithmique

55

Exemple :
Dim Ch_1 As String
Line Input #num, Ch_1

On lit dans le fichier num


(c..d. Fich_1.txt) une ligne
quon stocke dans la chane
Ch_1.

Input$ sert aussi dinstruction de lecture.


Lorsque des fichiers squentiels sont ouverts en Output ou Append, linstruction
dcriture utiliser est Print # .
Exemple :
Dim Ch_2 As String
Ch_2 = Cette information est sauvegarder
num = FreeFile
Open Fich_2.txt For Output As #num
Print #num , Ch_2
Close
Lorsquon finit de travailler avec un fichier il faut le fermer avec linstruction Close.
Syntaxe :
Close [#] [num]

Exemple :
Close
Ou
Ou

Close #num
Close num

4.2. Les fichiers daccs direct


Ceux sont des fichiers denregistrements. On peut les ouvrir on criture et en lecture
laide de linstruction Open. Ils sont par consquent en mode Random. On doit
prciser la longueur des enregistrements.
Syntaxe :
Open nom_fichier For Random As [#] num Len =Len(enregistrement)

On peut crire ou lire nimporte quel enregistrement quon accde directement


laide de linstruction Seek.

- 0. Boussaid.

Algorithmique

56

Syntaxe :
Seek [#] num, num_enregistrement

Exemple :
Seek num, num_erg
positionne le pointeur dans le fichier numro num lenregistrement num_erg.
Les instruction Get et Put permettent respectivement la lecture et lcriture de ce type
de fichiers.
Exemple :
Type Etudiant
Numro As intger
NomPrnom As String * 30
Discipline As String * 25
Anne_Inscrip As Integer
End Type
Lenregistrement Etudiant doit tre dclar dans un module.
Dim E_1 As Etudiant
Dim E_1 As Etudiant
Open Fic_Etud For random As 1 Len =Len(E_1)
...
E1.Numro = 134561 ;
E1.NomPRnom = Dupont Lionel ;
E1.Discipline = Sciences conomiques ;
E1.Anne_Inscrip = 1996
...
Put 1, E_1
...
Get 1, E_2
...
4.3. Les fichiers binaires
Les fichiers binaires nont pas de structure propre. Ils contiennent des suites doctets.
Ils sont utiles lorsque les autres types ne conviennent pas au problme trait. Ils sont
accs direct et souvrent laide de Open.

- 0. Boussaid.

Algorithmique

57

Syntaxe :
Open nom_fichier For Binary As [#] num
On lit et on crit laide des instructions respectives Get et Put. Ils sont ouverts en
lecture et en criture.

- 0. Boussaid.

Algorithmique

58

5. Elments visuels
5.1. Les feuilles
5.1.1. La feuille
Une feuille est le cadre dans lequel tous les autres lments d'une application VB sont
placs : contrles (boutons de commandes, zones de texte, listes, ...), affichages de
texte ou de dessin d'images ou de figures gomtriques.
La feuille, tout comme les contrles, dispose de proprits et d'vnements. Les
proprits peuvent tre modifies lors de la conception de la forme visuelle. Les
vnements peuvent servir pour modifier la forme de la feuille ou contenir des
instructions traduisant une partie de la logique du programme.

- Fig.7 : Feuille de travail..


Les lments systmes d'une feuille sont grs par des proprits. Ils comprennent:
- Titre (Caption)
- Menu systme (ControlBox)
- Case de rduction en icne (MinButton)
- Case d'extension plein cran (MaxButton)
- Bordure (BorderStyle)
La proprit Name permet d'identifier la feuille. Les proprits Left, Top, Width et
Height permettent de positionner ou de dimensionner une feuille. La proprit
WindowState dtermine l'tat de la fentre lors de son affichage. Elle peut prendre
l'une des 3 valeurs :
0 : Normal (par dfaut)
1 : Rduit en icne.
2 : Agrandit en plein cran.
Lors du lancement de VB, une feuille est cre par dfaut. Elle sera considre
comme feuille principale de l'application. Il est possible de rajouter d'autres feuilles
en utilisant la commande Nouvelle feuille du menu Fichier. L'application sera alors
multifeuille. Les diffrents contrles seront alors rpartis sur les diffrentes feuilles. Il

- 0. Boussaid.

Algorithmique

59

faudrait cependant indiquer VB la feuille de dmarrage (c'est dire celle qui sera
affiche lors de l'excution du programme) dans longlet Projet de la commande
Options du menu Outils.
Il existe des mthodes (Show, Hide,...) et des instructions (Load, Unload,... )
permettant de manipuler les feuilles d'une application.
Des vnements (Load, Resize, Activate, Paint,... ) peuvent servir pour exprimer la
logique du programme. Load est souvent utilis pour initialiser des variables dans le
programme.
5.1.2. Les fentres prdfinies
Il est possible de faire appel des fentres prdfinies pour saisir ou afficher du
texte.
a) Saisie de texte :
C'est la fonction InputBox qui affiche une bote de saisie et retourne une chane de
caractre :
Syntaxe :
Var1 = InputBox("Entrer un texte : " , "Application N 1" , "Valeur par dfaut")

- Fig.8 : Exemple dune bote de saisie.


La valeur retourne par InputBox dans Var1 est de type Variant.
b) Affichage de message :
C'est la fonction MsgBox qui affiche une bote avec un texte comme message, un ou
plusieurs boutons de commande et ventuellement une icne.
Syntaxe :
Var2 = MsgBox ("Voulez-vous arrter le programme" , MB_OKCANCEL ,
"Application N 2")

- 0. Boussaid.

Algorithmique

60

- Fig.9 : Exemple dune bote de message.

L'argument MB_OKCANCEL permet d'afficher le bouton de commande OK.


On peut se servir de cet outil pour afficher le rsultat dun programme.
5.2. Les contrles
Les contrles sont des objets d'interaction grce auxquels l'utilisateur construit un
dialogue. Ce dernier s'articule sur des affichages et/ou des saisies de donnes, des
ordres de calculs... Comme pour les feuilles, des proprits et des vnements sont
associs aux contrles. La valorisation des proprits peut se faire statiquement lors
de la conception de la forme visuelle ou dynamiquement dans les procdures.
Il existe diffrents types de contrles :
" de texte pour l'affichage ou la saisie de donnes : zone de texte, tiquette.
" les boutons de commande pour le dclenchement d'actions, de radio pour
les choix d'options, les cases cocher pour les rponses oui/non.
" les listes, sous diffrentes formes : simples, modifiables (ou combines),
droulantes, d'units de disques, de rpertoires, de fichiers.
" les barres de dfilement horizontales et verticales.
" de dessin : image ou forme et ligne.
" le cadre pour regrouper d'autres contrles.
" de donnes pour l'accs aux bases de donnes.
" personnaliss : grille, bote de dialogue, OLE....
En gnral, l'ensemble des ces contrles sont prsents dans la bote outils.
Remarques :
l'ensemble de ces contrles ont quelques proprits communes, telles que :
Name : pour dfinir leur identificateur ;
BackColor et ForeColor : pour dterminer la couleur de fond et de
caractre ou de dessin.;
Caption ou Text : pour dfinir le titre ou le contenu pour la zone de texte;
Visible : pour rendre le contrle visible ou masqu (True ou False).

- 0. Boussaid.

Algorithmique

61

5.2.1. La zone de texte


La zone de texte est un champ de saisie. Elle peut tre monoligne (maximum 2048
caractres), la proprit MultiLine est False , ou multiligne (maximum 32 Ko),
MultiLine est alors True. Dans ce dernier cas, on peut rajouter des barres de
dfilement (proprit ScrollBars). La donne saisie dans une zone de texte est de
type String et est contenue dans la proprit Text. Cependant on peut la rcuprer et
la convertir si besoin est.
Exemple :
ZT1.Text = 1234
Var1%= Val(ZT1.Text)
La fonction Val convertit un texte en nombre. Ici la variable entire Var1 contiendra
le nombre entier 1234.
Si on veut afficher le nombre 4567 dans une zone de texte ZT2, on crira :
Exemple :
ZT2.Text = Str(4567)
La fonction Str convertit le nombre 4567 en la chane de caractre 4567.
Pour effacer le contenu dune zone de texte, il suffit daffecter le caractre la
proprit Text.
La proprit MaxLength permet de limiter le nombre de caractres pouvant tre saisi.
Alors que PasswordChar masque les caractres saisis laide dun caractre affect
cette proprit.
La slection est la partie choisie du texte affich dans une zone de texte. On peut
indiquer le dbut de la slection dans la chane par SelStart , savoir sa longueur par
SelLength et son contenu par SelText.
Ds quon clique dans une zone de texte, le focus (ce qui indique quun contrle est
actif) est situ sur celle-ci. Un vnement GotFocus est alors gnr. Lorsquon quitte
une zone de texte, lvnement LostFocus est alors produit. La mthode SetFocus
permet de maintenir le focus sur un contrle.
Exemple :
ZT1.SetFocus
Le focus est positionn dans la zone de texte ZT1.
Ds lappui sur une touche lvnement KeyPress est gnr suivi par Change
lorsque ce premier caractre est trait.
A ces vnements peuvent tre associs des actions que lon programme dans les
procdures-vnement correspondantes.

- 0. Boussaid.

Algorithmique

62

5.2.2. Ltiquette
Cest un contrle qui permet dafficher un texte. Il accompagne gnralement la zone
de texte pour prciser son utilisation. La proprit Caption contiendra le texte
afficher.

- Fig.10 : Zone de texte associe une tiquette..


La mthode Print permet galement dafficher un texte sur une feuille. Il faut
prciser son emplacement, dfinir son format etc.
Exemple
Form1.Print Texte du message afficher :

5.2.3. Le bouton de commande


Le bouton de commande est utilis pour signifier une commande dutilisateur pour
dclencher une action excuter. Lorsquon clique sur un bouton de commande un
vnement Click est gnr. Cest dans la procdure-vnement relative celui-ci
quest crit le programme correspondant laction excuter.
Dans la proprit Caption, on dfinit le texte afficher sur le bouton. Il est possible
de modifier la police et la taille des caractres, mais pas la couleur ni celle du fond,
qui sont fixes par Windows (voir le fichier Win.ini).

- 0. Boussaid.

Algorithmique

63

- Fig.11 : Zone de texte associe une tiquette et bouton de commande.


On peut galement appliquer la mthode SetFocus pour slectionner le bouton. La
proprit Default, si elle est True , indique lors de lexcution que le bouton a le
focus. Lappui sur la touche Entre gnre lvnement Click. De mme la proprit
Cancel, si elle est True, lappui sur la touche Echap gnre lvnement Click.

5.2.4. Le cadre
Le cadre est utilis pour regrouper dautres contrles : des cases options (boutons
radio) ou cocher.

- Fig.12 : Exemple de cadre regroupant des boutons doption et des cases cocher.
5.2.5. Le bouton doption
Ce contrle permet de choisir une option parmi plusieurs. Plusieurs boutons doivent
tre dfinis pour matrialiser le choix. Ils doivent tre placs dans un contenant qui
peut tre soit une feuille, soit une image soit alors un cadre. Deux proprits sont
essentiels : Caption pour libeller loption et Value qui prend la valeur False ou la
valeur True.

- 0. Boussaid.

Algorithmique

64

Dans une srie de boutons doption, seul un bouton peut tre slectionn (Value
True), ds lors les autres ont leur proprit Value mise False par VB. A chaque
changement de Value, un vnement Click est produit et pourra tre exploit
immdiatement ; ou alors ltat de chaque bouton sera examin dans une autre
procdure pour traiter la logique dune application.

- Fig.13 : Exemple de boutons doption et des case cocher.


Diffrents boutons doption peuvent tre dfinis dans un groupe (Copier et Coller du
premier bouton doption dans le mme contenant) et porter ainsi le mme nom. Cest
par la proprit Index quon les distinguera. Cette mthode permet de tester ltat de
chaque bouton dans une instruction rptitive.
5.2.6. Les cases cocher
Contrairement au contrle prcdent, on peut effectuer plus dun choix laide des
cases cocher. Celles-ci peuvent tre dans un tat coch ou non coch et parfois mme
dans un troisime cas (coch gris) pour indiquer quon ne peut pas dterminer ltat
de la case. Un simple click avec la souris permet de passer dun tat un autre. Le
changement dtat dune case gnre un vnement click pouvant tre exploit
immdiatement ou trait dans une autre procdure conformment la logique dune
application. Les proprits Value, Caption, Index et Name sont les plus utiliss.

- 0. Boussaid.

Algorithmique

65

5.2.7. Les listes


Une liste permet de prsenter plusieurs lments et le choix dun dentre eux. Il
existe plusieurs types de listes :
les listes simples
les listes combines
les listes de fichiers
les listes de rpertoires
les listes dunits de lecteurs

5.2.7.1. La liste simple


La liste simple contient une suite ditems ( lments de la listes : chanes de
caractres). La liste peut tre initialise en remplissant la proprit List par une suite
de chanes de caractres qui seront les items initiaux de la liste. Ces derniers peuvent
tre tris en mettant Sorted True. Le premier item de la liste a le rang (ou indice) 0 .
Le nombre ditems dune liste est dtermin par la proprit ListCount. La proprit
ListIndex contient lindice de litem slectionn. La mthode AddItem rajoute un item
la liste.

Exemple
L1.AddItem lm 8
Litem lm 8 est rajout la liste L1.
Pour enlever un item dune liste on indique son indice la mthode RemoveItem.
Exemple
L3.RemoveItem 3
Litem lm 23 est supprim de la liste L3.
La mthode Clear permet deffacer tous les lments de la liste.
Exemples de listes simple et combines :

- 0. Boussaid.

Algorithmique

66

- Fig.14 : Les diffrents types de liste.

5.2.7.2. La liste combine


Une liste modifiable (ou combine) est une combinaison de liste et dune zone de
texte. Il existe 3 sortes de listes combines quon dfinit laide de la proprit Style
:
Liste combine droulante (Style = 0) : Comprend une liste droulante et une
zone de texte. L'utilisateur peut slectionner un item dans la liste ou taper ce
qui convient dans la zone de texte.
Liste combine simple (Style = 1) : Comprend une zone de texte et une liste non
droulante. L'utilisateur peut slectionner un item de la liste ou taper ce qui
convient dans la zone de texte. Augmentez la valeur de la proprit Height
pour afficher une plus grande partie de la liste.
Liste combine droulante sans saisie (Style = 2) : Ce style permet seulement
l'utilisateur de slectionner une option dans la liste droulante, sans pouvoir
saisir de nouveaux items dans la liste.
Les mmes proprits et mthodes permettent, en gnral, de manipuler les listes
simples et combines. Les vnements Change, Click, DblClick, etc, peuvent tre
utiliss pour appliquer des actions aux listes.

5.2.8. La grille
Cest le contrle qui permet dafficher un tableau 2 dimensions. Les proprits Cols
et Rows dfinissent le nombre de colonnes et de lignes. Il est possible de fixer des
colonnes et des lignes est prcisant la quantit dans les proprits FixedCols et
FixedRows. Les largeurs de colonnes et les hauteurs de lignes sont stockes dans des

- 0. Boussaid.

Algorithmique

67

tableaux reprsents respectivement par les proprits ColWidth et RowHeight . les


coordonnes de la cellule active sont dfinir dans les proprits Col et Row.

La procdure suivante remplit le tableau de la figure 14.

Private Sub Form_Load( )


Dim i
Dim j
G.Row = 0
G.Col = 1
For i = 1 To G.Cols - 1
G.ColAlignment(i) = 2
G.ColWidth(i) = 980
Next
G.Text = "Franais"
G.Col = 2
G.Text = "Economie"
G.Col = 3
G.Text =
"Mathmatiques"
G.Col = 4
G.Text = "Informatique"
G.Col = 0
G.ColWidth(0) = 1000

For i = 1 To G.Rows - 1
G.Row = i
G.Text = "Eleve " + Str(i)
Next i
For i = 1 To G.Cols - 1
G.Col = i
For j = 1 To G.Rows - 1
G.Row = j
G.Text = i + 5 + j
Next j
Next i
G.Col = 2
G.Row = 2
End Sub

Les proprits Text et Picture permettent de lire ou modifier le contenu de chaque


cellule du tableau. Clip permet de lire ou modifier le contenu des cellules
slectionnes. Les proprits SalStartCol, SelStartRow, SelEndCol, SelEndRow et
SelChange traitent la slection de cellules.
Lalignement des donnes dans une colonne se fait aide de la proprit
ColAlignment.

- 0. Boussaid.

Algorithmique

- Fig.15 : Tableau reprsent par une grille.

68

Vous aimerez peut-être aussi