Académique Documents
Professionnel Documents
Culture Documents
VB Et Intro Algo PDF
VB Et Intro Algo PDF
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
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
- 0. Boussaid.
Algorithmique
PREMIRE PARTIE
L'Algorithmique
- 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 :
Spcifications
algorithmiques
Problme
rel
ANALYSE
Traduction
Algorithme
CODAGE
Excution
Programme
Rsultats
- 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".
- 0. Boussaid.
Algorithmique
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.
- 0. Boussaid.
Algorithmique
0.2467
345.876
-12.1
....
note
note
note
note
+
*
/
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'
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'
- 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
B
vrai
faux
vrai
faux
A et B
vrai
faux
faux
faux
B
vrai
faux
vrai
faux
A ou B
vrai
vrai
vrai
faux
- 0. Boussaid.
Algorithmique
11
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 :
- 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.
et
ou
hirarchies des
oprateurs relationnels
>
<
- 0. Boussaid.
13
Algorithmique
exemples :
mauvais identificateurs :
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 ;
o :
ident
: est un identificateur;
- 0. Boussaid.
14
Algorithmique
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;
- 0. Boussaid.
15
Algorithmique
Exemples :
Lire (A, 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;
- 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;
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
- 0. Boussaid.
18
Algorithmique
Boucle Condition
Contrle de la boucle
...
Action compose
...
Fin Boucle
Corps de la boucle
Fin de la boucle
Syntaxe
Tant que Condition faire
...
ACTION
...
Fin Tant que;
- 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 ;
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
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
- 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.
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) :
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)
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 ;
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 :
- 0. Boussaid.
Algorithmique
27
autre exemple :
Var Ouvrage : Livre ;
Ouvrage.Auteur := V. Hugo
Ouvrage.Date.Mois := 10
Ouvrage.Date.Anne := 1995
- 0. Boussaid.
Algorithmique
28
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
Lecture ou Ecriture :
LIRE(Nomfichier, ........) ;
ECRIRE(Nomfichier, ........) ;
AJOUT(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
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.1. La procdure
Une procdure est un sous programme qui peut retourner 0, 1 ou plusieurs rsultats.
dfinition de la procdure :
appel de la procdure :
- 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.
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
Exemple (suite) :
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.
- 0. Boussaid.
Algorithmique
35
- 0. Boussaid.
Algorithmique
36
DEUXIME PARTIE
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
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
- 0. Boussaid.
39
Algorithmique
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
$ 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 :
- 0. Boussaid.
Algorithmique
41
- 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 : !
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
- 0. Boussaid.
Algorithmique
44
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
- 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.
Tsemaine(0) = Lundi
Tsemaine(1) = Mardi
...
Tsemaine(6) = Dimanche
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 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
- 0. Boussaid.
47
Algorithmique
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
Then
x = y /a
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
Exemples:
IIf ( Chif_Aff >= 10000 , Taux = 0.10 , Taux = 0.05)
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
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
'
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
- 0. Boussaid.
Algorithmique
52
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]]...
- 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
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
Exemple :
Close
Ou
Ou
Close #num
Close num
- 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.
- 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")
- 0. Boussaid.
Algorithmique
60
- 0. Boussaid.
Algorithmique
61
- 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.
- 0. Boussaid.
Algorithmique
63
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.
- 0. Boussaid.
Algorithmique
65
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
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
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
- 0. Boussaid.
Algorithmique
68