Vous êtes sur la page 1sur 20

Initiation la programmation en Basic

Table des matires


1. INTRODUCTION................................................................................................... 2
1.1. OBJECTIFS DU COURS ......................................................................................... 2
2. LANGAGES INTERPRETES OU COMPILES ................................................. 3

3. INSTALLATION DE QBASIC ............................................................................. 4

4. LENVIRONNEMENT DE PROGRAMMATION QBASIC ............................ 5

5. CONCEPTS FONDAMENTAUX DE PROGRAMMATION ........................... 6


5.1. LES VARIABLES .................................................................................................. 6
5.2. TYPES DE VARIABLES ......................................................................................... 6
5.3. DCLARATION DE VARIABLES ............................................................................ 6
5.4. NOMS DES VARIABLES ....................................................................................... 7
5.5. ASSIGNATIONS ................................................................................................... 7
5.6. OPRATEURS...................................................................................................... 7
Exercices ................................................................................................................. 7
5.7. ENTRES / SORTIES ............................................................................................ 9
PRINT ....................................................................................................................... 9
INPUT ....................................................................................................................... 9
Exercices ................................................................................................................. 9
6. STRUCTURES DE PROGRAMMATION ........................................................ 10
6.1. PROGRAMMATION STRUCTURE....................................................................... 10
6.2. LES TROIS STRUCTURES DE BASE ..................................................................... 10
6.3. LALTERNATIVE ............................................................................................... 11
IF . . . THEN . . . ENDIF ......................................................................................... 11
SELECT CASE . . . .................................................................................................. 11
6.4. LES BOUCLES ................................................................................................... 12
DO . . . LOOP ......................................................................................................... 12
FOR . . . NEXT ........................................................................................................ 12
Exercices ............................................................................................................... 13
7. LES TABLEAUX ET LES TYPES STRUCTURES ......................................... 14
7.1. TABLEAUX ....................................................................................................... 14
7.2. LES TYPES STRUCTURS ................................................................................... 14
Exercices ............................................................................................................... 15
8. PROCEDURES ..................................................................................................... 16
8.1. LA PROCDURE SUB........................................................................................ 16
8.2. LA PROCDURE FUNCTION ........................................................................... 16
8.3. FONCTIONS INTERNES ...................................................................................... 17
Fonctions mathmatiques ....................................................................................... 17
Fonctions pour manipuler les chanes de caractres ............................................. 17
9. INDEX.................................................................................................................... 20

http://www.courstechinfo.be/Programmation/InitProg.pdf 1
1. Introduction
1.1. Objectifs du cours
Le but du cours nest pas dappendre un langage particulier. Il est de donner des notions
gnrales de programmation utilisables avec diffrents logiciels et diffrents langages.
Nous nous y attacherons apprendre la logique de programmation plutt que dtudier
une syntaxe bien prcise.
Ceci dit, nous sommes bien obligs de choisir un langage pour cet apprentissage. Ce
choix entrane aussi le choix dun environnement de programmation.
Le langage choisi est driv du langage Basic (Beginners All-purpose Symbolic
Instruction Code) parce que cest un langage pour dbutant et quil permettra par la
suite ceux qui auront suivi ce cours de lutiliser dans le cadre de lutilisation des
logiciels bureautiques les plus courants (Word, Excel et Access). Nous utiliserons le
langage Basic sous trois formes diffrentes : le QBasic, le QuickBasic et le VisualBasic.
Le QBasic et le QuickBasic seront utiliss dans un premier temps pour se familiariser
la programmation procdurale. Ces environnements de programmations, dj anciens
puisquils datent du milieu des annes 80, conviennent cependant trs bien pour
dcouvrir un langage de programmation, aborder les notions de variables (types,
dclarations, assignations) et la logique de programmation (structures de tests, boucles,
fonctions et procdures).
Nous ferons avec ces langages de la programmation procdurale dans un environnement
DOS. Ces outils de programmation QB fonctionnent en mode invite de commande.
Le QBasic tient sur une sur une seule disquette et est interprt. Le QuickBasic est une
version plus complte qui permet la cration de fichiers excutables pouvant
fonctionner indpendamment de lenvironnement de programmation mais toujours en
mode invite de commande .

Ds que les notions fondamentales de programmation procdurales seront vues, nous


passerons la programmation vnementielle avec le Visual Basic. De nouvelles
notions apparatront alors : objets, proprits, mthodes, vnements

Ce mme langage pourra aussi tre utilis pour lcriture de script en VbScript dans
diffrents contextes dexcution :
des pages Web (lisibles uniquement sur Internet Explorer)
en utilisation directe sous Windows dans lenvironnement de programmation de
WSH Windows Scripting Host
ou encore pour programmer certaines fonctions avances dans les applications
de Microsoft Office : VBA Visual Basic for Applications

http://www.courstechinfo.be/Programmation/InitProg.pdf 2
2. Langages interprts ou compils
Pour tre excutable un programme doit tre comprhensible par lordinateur qui ne
peut dcoder que des 1 et des 0. Ce code, le langage machine, est loin de notre langage
de tous les jours. Notre langage parl est riche, nuanc mais trop ambigu pour
lordinateur qui ne dispose pas de lintuition ncessaire pour le comprendre.
Il nous faut donc un langage artificiel utilisable par lhomme et la machine. Les
langages de programmation sont nombreux mais il est inutile dtre polyglotte en la
matire pour tre un expert en programmation. Tous ces langages ont de nombreux
points communs, cest ceux-ci que nous nous intresserons. Nous insisterons sur les
principes transposables dun langage de programmation lautre en laissant de ct les
particularits trop spcifiques aux langages que nous utilisons pour notre apprentissage.
Le langage de programmation ressemble donc notre langage parl.
Le code crit dans ce langage est appel code source. Il doit tre traduit en langage
machine pour pouvoir tre excut par lordinateur. Il y a deux manires de raliser
cette traduction : la compilation et linterprtation.
Compilation Le code source est entirement traduit pour donner un code binaire,
appel code objet 1 Il se prsente alors sous la forme dun fichier
dont lextension est souvent .obj Diffrents fichiers objets
obtenus partir de diverses compilations de fichiers sources ( qui
nont pas ncessairement t crits dans le mme langage) sont
alors rassembls pour former un code excutable ( extension
.exe )
Interprtation Chaque ligne du code source est interprte puis excute
immdiatement avant de passer linterprtation de la suivante.
Cette mthode est plus lente mais elle est aussi plus facile pour le
dbutant puisque le programme sexcute instantanment sans
devoir passer par les tapes de la compilation. Ces tapes
constituent une difficult qui sajoute celle de lapprentissage du
langage.
Le QBasic est un langage interprt. Le QuickBasic et le VisualBasic peuvent la fois
tre interprt et compils.

1
Le mot objet na rien voir ici avec la programmation oriente objet.

http://www.courstechinfo.be/Programmation/InitProg.pdf 3
3. Installation de QBasic
Le QBasic tient dans seulement deux fichiers. Vous les trouverez dans les CD-ROM
dinstallation de Windows 95 dans le rpertoire \OTHER\OLDMSDOS ou dans le
CDROM dinstallation de Windows 98 dans le rpertoire \TOOLS\OLDMSDOS.
Il sagit des fichiers QBASIC.EXE et QBASIC.HLP. Les deux fichiers runis ne font
pas plus de 329 Ko. Ctait avant les manigances de lalliance Windows-Intel pour nous
pousser la consommation en produisant des logiciels toujours plus volumineux et
sassurer ainsi que nos ordinateurs seront toujours plus vite obsoltes !
Copiez ces deux fichiers dans votre rpertoire Windows ou WINNT suivant ce que vous
avez comme systme dexploitation.
Passez alors en mode invite de commande.
Crez un rpertoire o vous enregistrerez vos projets en QBasic.
Placez-vous ensuite dans ce rpertoire pour appeler QBasic.

C:\
C:\>MD QB
C:\
C:\>CD QB
C:\
C:\QB>QBasic

http://www.courstechinfo.be/Programmation/InitProg.pdf 4
4. Lenvironnement de programmation QBasic
Lenvironnement de programmation sert la fois dditeur de programme,
dinterprteur et de debuger (programme de mise au point).
Cet environnement vous donne accs 3 types de fentre.

- La fentre daide dont le fond est noir se referme en pressant la touche ESC.
- La fentre de programmation dont le titre est sans-nom tant que le programme qui
sy trouve na pas t sauv sous un autre nom.
- La fentre immdiate partir de laquelle nous testerons des instructions une une.
Les fentres peuvent tre redimensionnes en faisant glisser la barre de sparation
laide de la souris ou en pressant les touches Alt + ou Alt pour les agrandir ou les
rduire.

http://www.courstechinfo.be/Programmation/InitProg.pdf 5
5. Concepts fondamentaux de programmation
5.1. Les variables
Les donnes sont stockes dans des variables. Ces variables sont des emplacements
dans la mmoire de lordinateur. Elles ont un nom et un type (fixes) elles contiennent
une valeur qui elle peut varier.
Le nom dune variable permet de retrouver son emplacement en mmoire. Il quivaut
son adresse.
Le type de la variable dtermine lespace lui rserver en mmoire et les traitements
qui lui sont appropris. Une addition entre nombres entiers ne se fait pas avec les
mmes algorithmes que si ces nombres sont en format virgule flottante .

5.2. Types de variables


Nous rencontrerons ici trois types de variables: les entiers, les rels et les chanes de
caractres.
Nom du type Taille Min et max
Entier INTEGER 2 octets -32 768 + 32 767
LONG 4 octets - 2 147 483 648 + 2 147 483 647
Rel SINGLE 4 octets 1.40 10-45 3.40 10+38
DOUBLE 8 octets 4.94 10-324 1.79 10+308
Chane de caractres STRING

Les types de variables diffrent dun langage lautre. Tous ont des types entier et
rel Par contre, en langage C par exemple il ny a pas de type chane de caractre.
Dautres langages tels que le VisualBasic supportent des types supplmentaires comme
les types DATE et BOOLEAN.

5.3. Dclaration de variables


Dclarer une variable, cest lui rserver un emplacement en mmoire auquel on donne
un nom et en indiquant son type (autrement dit sa taille et la faon de la traiter).
Voici comment dclarer ces variables en BASIC :
DIM NomVariable AS type
Exemples :
DIM Age AS INTEGER
DIM Nom AS STRING
DIM Candidat AS STRING
DIM Rue AS STRING, Numero AS INTEGER, Localite AS STRING

NB : La dclaration des variables est facultative en QB mais il est pourtant parfois


ncessaire de faire la distinction entre les variables de type numrique et celles qui
contiennent des chanes de caractres.
Le QuickBasic permet de faire cette distinction implicitement en ajoutant au nom de la
variable un caractre de terminaison $, %, &, ! ou # selon que le type de la variable est
une chane de caractre($), un entier court (%), un entier long (&), un rel single ( !) ou
un rel double (#). Ces dclarations implicites sont dpasses et ne sont jamais utilises
dans ces notes. Elles sont cependant mentionnes ici car vous risquez de les rencontrer
en recopiant des programmes tlchargs sur dautres sites.

http://www.courstechinfo.be/Programmation/InitProg.pdf 6
5.4. Noms des variables
A ce sujet encore, chaque langage a ses propres conventions. Dune manire gnrale,
un nom de variable commence toujours par une lettre et est suivi dautres lettres et/ou
de chiffres. Certains langages autorisent dautres types de caractres. Le caractre
soulign est gnralement admis mais les autres caractres spciaux sont soit
interdits ou ont des significations trs particulires. Le mieux, est donc de ne jamais
utiliser de caractres spciaux (ponctuation, #, $ etc.) ni de caractres accentus.
Les noms dinstructions sont rservs, ils ne sauraient convenir comme nom de variable.
La taille maximum des noms des variables varie aussi dun langage lautre. En QB,
cette taille est limite 40 caractres cest bien suffisant.

5.5. Assignations
Assigner une valeur une variable, cest crire cette valeur dans lemplacement
mmoire rserv cette variable.
AGE = 19 assignation avec une valeur constante
Nom = "Lambert" la valeur est ici une chane de caractres
Candidat = Nom la valeur est issue dune autre variable
N1 = (N1 + N2)/2 la valeur est ici une expression

5.6. Oprateurs
Oprateur Description Exemple Rsultat
+ Addition 3 + 7 10
- Soustraction 7.5 5 2.5
* Multiplication 2.54 * 2 5.08
/ Division 5.2 / 2 2.6
\ Division entire 17 \ 3 5
MOD Reste de la division entire 17 MOD 3 2
2 ^ 10 1024
^ Elvation la puissance
25 ^ (1/2) 5
+ Concatnation de chanes Bart + Bart Simpson
Simpson

Exercices
Ex 5a Les noms de ces variables sont-ils valides ?
Variables Oui / Non Pourquoi ?
Num007
4000LIEGE
Tartempion
Jean-Paul
Cls
Nom
Prnom
N

http://www.courstechinfo.be/Programmation/InitProg.pdf 7
Ex 5b Dterminez les valeurs de A, B et C aprs excution des instructions suivantes :
DIM A AS INTEGER, B AS INTEGER, C AS INTEGER
A = 2
B = 3
C = A + B
A = C + 2 * B
B = (C + B) ^ 2
C = C \ 3

http://www.courstechinfo.be/Programmation/InitProg.pdf 8
5.7. Entres / Sorties
Considrons prsent quun programme est une moulinette o entrent des donnes
et do sortent des rsultats.

Donnes Programme Rsultats

La premire chose faire pour exprimenter un langage est donc dapprendre comment
entrer une donne et sortir un rsultat lcran.
PRINT
Instruction Rsultat
PRINT "Salut Herv" Salut Herv
PRINT " 3 + 4 " 3 + 4
PRINT 3 + 4 7
PRINT Age + 1 20
PRINT "Bonjour " + Nom Bonjour Lambert
PRINT "Age = " ; Age Age = 19
NB. Le point-virgule [;] sert de sparateur dans la commande PRINT pour imprimer
plusieurs donnes les unes la suite des autres. Il se met aussi la fin de la commande
PRINT quand on souhaite que celle-ci ne soit pas suivie dun retour la ligne.
INPUT
INPUT "Quel est ton nom ? ", Nom
Cet exemple suffit pour montrer comment inviter lutilisateur entrer une information
et comment est prcis le nom de la variable qui va recevoir cette donne.
NB. Beaucoup de choses pourraient encore tre dites sur cette instruction INPUT mais
tous ces dtails ne nous intressent pas. Concentrons-nous sur la logique de
programmation plutt que sur les spcificits du QBasic.

Exercices
Ex 5c Ecrivez et testez un petit programme qui vous demande votre nom puis votre prnom. Il
vous salue ensuite comme suit :

Quel est ton Nom ? Lambert


Quel est ton prnom ? Grard
Bonjour Grard Lambert

Ex 5d Aprs vous avoir demand votre nom, le programme vous demande votre ge. Il conclut
en vous indiquant le nombre dannes quil vous reste avant de profiter de votre retraite.

Quel est ton Nom ? Tartempion


Quel est ton ge ? 20
Dans ce cas il te reste 45 ans avant la retraite.

Ex 5e Variante pas bien plus complique du mme exercice ( faites la tout de mme)
Quel est ton Nom ? Tartempion
Bonjour Tartempion, quel est ton ge ? 20
Dans ce cas il te reste 45 ans avant la retraite.
Courage !

http://www.courstechinfo.be/Programmation/InitProg.pdf 9
6. Structures de programmation
6.1. Programmation structure
Un programme est un ensemble dinstructions excutes par lordinateur. Les langages
tels que le BASIC possdent depuis longtemps des instructions telles que le GOTO qui
permette de faire des sauts dun endroit lautre dans un programme. Grce ces sauts
combins avec linstruction IF on sait demander au programme de changer sa marche
suivre en fonction des valeurs que prennent les variables. On a bidouill ainsi pendant
de nombreuses annes en sautant comme bon semblait dun point lautre du
programme. Ctait le temps de la programmation spaghetti .
Les programmes crits de la sorte pour peu quils ne soient pas abandonns en cours de
route finissent parfois par marcher mais sont difficiles modifier et faire voluer.
Depuis des thoriciens ont dmontr que trois structures suffisent pour crire nimporte
quel programme. On est entr dans laire de la programmation structure. Les
instructions de type GOTO sont depuis considres comme des abominations par tout
programmeur qui se respecte et les langages structurs tels que le Pascal et le C sont
apparus.
Un programme se doit dtre un ensemble structur dinstructions.

6.2. Les trois structures de base


La programmation structure repose sur les trois structures suivantes :
La squence : un simple enchanement dinstructions
Lalternative : choix entre deux squences
Les boucles : rptitions dune mme squence

Voici comment ces structures de programme sont reprsentes schmatiquement dans


un organigramme :
Squence Alternative Boucles

http://www.courstechinfo.be/Programmation/InitProg.pdf 10
6.3. Lalternative
IF . . . THEN . . . ENDIF
Le QBasic comme la plupart des langages de programmation possde une instruction IF
pour changer le cours de lexcution dun programme en fonction du rsultat dun test
de comparaison. La syntaxe varie dun langage lautre, voici comment il conviendrait
dcrire ces structures de dcision en QBasic :

Syntaxe Exemples
IF condition THEN IF n = 0 THEN
Squence dinstructions Print "Valeur nulle"
ENDIF ENDIF
IF condition THEN IF Age >= 18 THEN
Squence dinstructions A PRINT "Majeur"
ELSE ELSE
Squence dinstructions B PRINT "Mineur"
ENDIF ENDIF
IF condition THEN IF Age < 25 THEN
Squence dinstructions A PRINT "Tarif Jeunes"
ELSEIF condition 2 ELSEIF Age >= 60
Squence dinstructions B PRINT "Tarif Seniors"
ELSE ELSE
Squence dinstructions C PRINT "Tarif plein"
ENDIF ENDIF

Les conditions sont exprimes au moyen doprateurs > plus grand


relationnels >= plus grand ou gal
< plus petit
Les oprateurs logiques tels que AND, OR et XOR <= plus petit ou gal
rendent possibles les combinaisons de plusieurs = gal
conditions. <> diffrent
IF (Sexe = "M") AND (Age >= 18)THEN

SELECT CASE . . .
Linstruction SELECT CASE convient mieux ds quil y a plus de trois conditions
tester
SELECT CASE expression
CASE liste_de_valeurs_1 Les listes de valeurs peuvent se prsenter
Squence dinstruction 1 comme suit :
CASE liste_de_valeurs_1 2 = une valeur
Squence dinstruction 2 12, 15, 21 = plusieurs valeurs
10 TO 20 = une plage de valeurs
CASE ELSE IS > 12 = au-del dune valeur
Squence dinstruction N
END CASE

http://www.courstechinfo.be/Programmation/InitProg.pdf 11
6.4. Les boucles
DO . . . LOOP
Le nombre de rptitions est contrl par un test relationnel qui est soit
plac au-dessus de la boucle soit en fin de boucle.
Dans le premier cas, puisque le test est fait en premier lieu, la squence
dinstructions pourrait trs bien ne jamais tre excute.
Par contre, la squence qui prcde est toujours excute au moins une fois
quand le test est mis en fin de boucle.
Les conditions de rptitions sont introduites par WHILE ( = tant que )
ou avec une condition inverse par UNTIL ( = jusqu ce que )
Le mot LOOP a ici le sens de boucler / rpter

DO WHILE condition DO UNTIL condition


| |
LOOP LOOP

DO DO
| |
LOOP WHILE condition LOOP UNTIL condition

FOR . . . NEXT
La boucle FOR . . . NEXT offre une notation plus concise pour les rptitions gres
par un compteur.
CLS
FOR i = 0 to 6 Affiche tous les nombres de 1 6
PRINT i
NEXT i
Linstruction NEXT au bas de la boucle incrmente la valeur du compteur. La valeur de
celui-ci est ensuite teste pour dterminer si la boucle doit tre rpte.
Lincrmentation ( le comptage) est par dfaut dune unit chaque passage moins
quun pas diffrent ne soit prcis en ajoutant une instruction STEP:
CLS
FOR i = 0 to 6 STEP 2 Affiche les nombres pairs de 0 6
PRINT i
NEXT i
Plantage dune boucle
Une cause de plantage frquent est d au problme de terminaison dune boucle.
Une condition darrt qui nest jamais vrifie fera boucler le programme indfiniment.
La seule solution pour en sortir alors sera de presser les touche Ctrl+Break
Exit
Linstruction EXIT permet de commander la sortie prmature dune boucle quand on
saperoit que les rptitions ultrieures deviennent inutiles
Suivant le type de boucle on crira EXIT DO ou EXIT FOR

http://www.courstechinfo.be/Programmation/InitProg.pdf 12
Exercices
Ex 6a Le prix dentre dune attraction est fix comme suit :
En semaine Le week-end
Enfants de moins de 10 ans Gratuit Gratuit
Moins de 18 ans et plus de 60 ans 2 Euros 4 Euros
Prix plein 3 Euros 6 Euros
Ecrivez un petit programme qui indique le prix du billet en fonction de lge du
visiteur et du moment du jour de la visite ( demi-tarif en semaine)
Ex 6b Ecrivez un petit programme qui demande un nombre entier puis qui affiche les
10 premiers multiples de ce nombre.
Exemple : Donnez un nombre entier : 12
1 x 12 = 12
2 x 12 = 24
. . .

Ex 6c Ecrivez un petit programme qui boucle en vous demandant si vous voulez


continuer. Il vous rprimande si vous ne rpondez pas par oui ou par non !
Ce programme sachvera ds que vous le demanderez
Voulez-vous continuer ? oui
Voulez-vous continuer ? bof
Veuillez rpondre par oui ou par non !
Voulez-vous continuer ? non

Ex 6d La fonction Timer rend le nombre de secondes coules depuis minuit en


indiquant jusqu 8 chiffres derrire la virgule. Si on demande laffichage de
cette valeur dans une boucle laide de la commande PRINT on saperoit que
la valeur du timer ne change pourtant que 18 fois par seconde. La boucle tant
courte, le programme sexcute rapidement et laffichage rpte de nombreuses
fois la mme valeur. Faites le test.

Modifiez ensuite le programme pour quil boucle en affichant les valeurs


successives de la fonction Timer sans jamais rpter deux fois de suite la mme
valeur

Ex 6e La fonction RND rend un nombre alatoire compris entre 0 et 1. Ecrivez un


programme qui affiche un nombre alatoire compris entre 0 et 100.

Ex 6f Cette fois au lieu dafficher ce nombre, le programme vous demande de le


deviner.

Jai choisi un nombre entre 1 et 100


Quel est ce nombre? 36
Trop petit
Quel est ce nombre? 75
Trop grand
. . .
. . .
Quel est ce nombre? 58
Vous avez trouv !

http://www.courstechinfo.be/Programmation/InitProg.pdf 13
7. Les tableaux et les types structurs
7.1. Tableaux
Nous avons vu ce quest une variable. Elle possde un nom et un type. Elle contient une
valeur. Un tableau possde lui aussi un nom et un type mais il est destin contenir
plusieurs valeurs. Chaque valeur est dsigne par le nom du tableau suivi dun ou de
plusieurs indices mis entre parenthses.

La ligne suivante dclare un tableau destin contenir les noms dune vingtaine
dtudiants. Ce tableau comportera en ralit 21 lments, les indices pouvant aller de 0
20.
DIM Etudiants(20) AS STRING

Les tableaux plusieurs dimensions sont aussi possibles. Voici par exemple comment
on dclare un tableau pour y noter 10 ctes pour 20 tudiants.
DIM Cotes( 20, 10) AS INTEGER
Chaque lment dun tableau est du mme type que le tableau. Pour enregistrer des
informations de types diffrents, il faudrait recourir des tableaux parallles. Les
informations correspondantes y seraient repres par un mme indice mais rparties
dans les tableaux de diffrents types.

7.2. Les types structurs


Le Basic permet de dfinir des structures de donnes composes de variables de types
lmentaires.
Exemple :
TYPE Inscription
Nom AS STRING
Prenom AS STRING
Code AS INTEGER
END TYPE

Ici Inscription nest pas une variable mais un nouveau type de donne que nous
venons de dfinir pour regrouper une famille dinformations. Il peut servir rassembler
les informations sur un tudiant :

DIM Etudiant AS Inscription

Etudiant.Nom = "Lambert"
Etudiant.Prenom = "Grard"

Nous pouvons mme crer un tableau dont le type est notre type personnalis :
DIM Classe(25) AS Inscription

Classe(1).Nom = "Lambert"
Classe(1).Prenom = "Grard"

http://www.courstechinfo.be/Programmation/InitProg.pdf 14
Exercices
Ex 7a Ecrire un programme qui vous demande un chiffre de 0 9 et vous laffiche en
toutes lettres.

http://www.courstechinfo.be/Programmation/InitProg.pdf 15
8. Procdures
Ce que nous appelons les procdures en QBasic ou en VisualBasic sappellent dans
dautres contextes des sous-programmes ou encore des sous-routines . Ce sont
des morceaux de programme crits sparment pour subdiviser les dveloppements en
sous-ensembles plus simples. Plus un programme est subdivis et plus il sera facile
apprhender et faire voluer et ceci pour deux raisons :
- Les procdures peuvent tre crites et testes indpendamment du reste du
programme dont la complexit devient sans cela plus que proportionnelle la taille.
- Les procdures sont crites une fois pour toute puis peuvent tres rutilises dans
dautres programmes.

On distingue en QBasic deux types de procdures : les procdures SUB et les


procdures FUNCTION La diffrence entre les deux est minime : une fonction rend
une valeur, une procdure nen renvoie pas.

8.1. La procdure SUB


Lorsquune mme suite dinstructions se retrouve en plusieurs endroits du programme,
on spargne le fait de devoir la rcrire en les plaant dans une procdure SUB
laquelle on donne un nom. Il suffira dappeler cette procdure chaque fois que
lexcutions de ces instructions seront ncessaire.
Exemple : Imaginons une procdure SUB appele Bienvenue qui aurait comme
paramtre un nom et qui afficherait un message de bienvenue lattention de ce nom.
Cette procdure mme si elle nest appele qu un seul endroit du programme aurait le
mrite de le dcouper en entits logiques qui en simplifieraient le programme.
Voici comment cette procdure serait dfinie et comment ailleurs dans le programme
elle serait appele :
SUB Bienvenue( Nom As String)
PRINT Soit le bienvenu + Nom
END SUB
Lappel cette procdure se fait alors avec linstruction CALL : (To call = appeler)
CALL Bienvenue(Lon)
Ou encore plus simplement comme ceci (sans linstruction CALL ni parenthses)
Bienvenue Lon
Cette dernire forme est plus simple. Cest un peu comme si on avait ajout au langage
une instruction Bienvenue qui sutilise presque comme linstruction PRINT.

8.2. La procdure FUNCTION


Une fonction est une procdure qui a un rle supplmentaire : nous retourner une
valeur. Imaginer par exemple une fonction que nous appellerons Maxi dont le but
serait de nous retourner la valeur la plus grande de deux nombres.
Commenons par dfinir ce que fait la fonction :
FUNCTION Maxi( N1 AS LONG, N2 AS LONG) AS LONG
IF N1 > N2 THEN
Maxi = N1
ELSE

http://www.courstechinfo.be/Programmation/InitProg.pdf 16
Maxi = N2
END FUNCTION
Voici comment elle sutilise prsent :
MeilleurScore AS LONG
MeilleurScore = Maxi( Score1, Score2)

8.3. Fonctions internes


Un certain nombre de fonctions ont t prvues par les concepteurs du langage BASIC
pour faire des tches qui ont toutes les chances de vous tre utiles.

Remarque Certains noms de fonctions son termins par le caractre spcial $. Ce


caractre avait une fonction spciale en QBASIC dont nous navons pas
encore parl car il sagit dune particularit trop spcifique au Qbasic. Le
suffixe $ sert distinguer les variables de type STRING sans devoir les
dclarer explicitement.
Les fonctions dont le nom se termine par le caractre $ sont donc des
fonctions qui rendent une chane de caractres.
Ces mmes fonctions existent aussi en Visual Basic mais sans ce $.

Fonctions mathmatiques
ABS( n) valeur absolue de n
ABS( -5.7) 5.7
CINT( n) conversion du nombre n en entier ( arrondi)
CINT( -5.7) -6
FIX( n) Partie entire tronque de n
FIX( -5.7) -5
INT( n) partie entire de n
INT( -5.7) -6
CLNG( n) conversion du nombre n en LONG
CSNG( n) conversion du nombre n en SINGLE
CDBL( n) conversion du nombre n en DOUBLE

RND donne un nombre alatoire compris entre 0 et 1

HEX$( n) chane de caractre reprsentant n en hexadcimal

Fonctions pour manipuler les chanes de caractres


LEN( chane) nombre de caractres de cette chane

LEFT$( chane, n) n premiers caractres de la chane


RIGHT$( chane, n) n derniers caractres de la chane
MID$( chane, p, n) n caractres partir de la position p

LCASE$( chane) met la chane en minuscules (lower case)

http://www.courstechinfo.be/Programmation/InitProg.pdf 17
UCASE$( chane) met la chane en majuscules ( upper case)

ASC( chane) code ASCII du premier caractre de la chane


CHR$( c) caractre qui a c pour code ASCII
STRING$( n, c) chane de n caractres ayant c pour code ASCII

STR$( n) chane de caractres reprsentant la valeur numrique n


VAL( chane) valeur numrique si la chane ne contient que des
chiffres

LTRIM$( chane) la chane dbarrasse dventuels espaces gauche


RTRIM$( chane) la chane dbarrasse dventuels espaces droite
INSTR(dbut, chane, cc) recherche la suite de caractre cc depuis la position
dbut de la chane

http://www.courstechinfo.be/Programmation/InitProg.pdf 18
http://www.courstechinfo.be/Programmation/InitProg.pdf 19
9. Index
MID$ ......................................................... 15
A
PRINT ......................................................... 7
Assignation ....................................................... 6 RIGHT$ ..................................................... 15
RND........................................................... 14
B RTRIM$ .................................................... 15
Boucles ........................................................... 10 STR$ .......................................................... 15
STRING$ ................................................... 15
C UCASE$ .................................................... 15
Compilation ...................................................... 3 VAL ........................................................... 15
D I
Dclaration Instruction
Dclaration d'une vaiable ............................. 5 DO ... LOOP .............................................. 10
EXIT DO ................................................... 10
E EXIT FOR ................................................. 10
Entres/Sorties .................................................. 7 FOR ... NEXT ............................................ 10
IF ... THEN ... ELSE ................................... 9
F SELECT ... CASE ... END CASE ............... 9
Fonction interne UNTIL ....................................................... 10
ABS ............................................................ 14 WHILE ...................................................... 10
ASC ............................................................ 15 Interprtation .................................................... 3
CDBL ......................................................... 14 O
CHR$ ......................................................... 15
CINT .......................................................... 14 Oprateur .......................................................... 6
CLNG ......................................................... 14 T
CSNG ......................................................... 14
FIX ............................................................. 14 Tableaux ......................................................... 12
HEX$ ......................................................... 14 Type
INPUT .......................................................... 7 Types de variables ....................................... 5
INSTR$ ...................................................... 15 Types structurs ......................................... 12
INT ............................................................. 14 V
LCASE$ ..................................................... 15
LEFT$ ........................................................ 15 Variable ............................................................ 5
LEN ............................................................ 15
LTRIM$ ..................................................... 15

http://www.courstechinfo.be/Programmation/InitProg.pdf 20