Vous êtes sur la page 1sur 50

COURS DE BASIC

G1 Info 2018 - 2019


Dr. J.D. BATUBENGA et al.
Plan du Cours : 1ère Partie : QBASIC
Chap. 0. GENERALITES
Introduction, Structure de QBASIC et Environnement de BASIC
Chap. I. DONNEES, EXPRESSIONS ET MOTS-CLES
Types de données
(Une constante, Une variable)
Types d’expressions
(arithmétique et conditionnelle)
Les principaux mots-clés
(INPUT, PRINT, LPRINT et LET)
Exercices
Chap. II. STRUCTURES DE CONTRÔLE
Rupture de séquence
Structures Conditionnelles
(IF… THEN … ELSE, Select Case, ON … GOTO)
Schémas itératifs
(Boucles en nombre défini et en nombre non défini)
Exercices

J.D. BATUBENGA 2
Plan du Cours
(suite 1)
Chapitre III. Les sous- programmes
Introduction, Procédure et Fonction
Exercices
Chap. IV. TABLEAUX
Traitement courant sur les tableaux
Introduction
La déclaration d’un tableau
Parcours d’un tableau
Applications
Le type défini par l’utilisateur
Traitement des chaînes de caractères
La concaténation
Comparaison des chaînes de caractères
Recherche d'une chaîne de caractères
Extraction d'une chaîne de caractères
Exercices

J.D. BATUBENGA 3
Plan du Cours : 2ère Partie : VISUAL BASIC.Net
0. GENERALITES
0.1. Introduction au Microsoft.NET
0.2. VB.NET langage objet
0.3. La syntaxe objet
0.4. La programmation événementielle
I. Les bases du langage VB.NET
I.1. Les types de données de VB.NET
I.2. Les opérateurs
I.3. L’affectation
I.4. Les instructions VB.NET de base en Mode console
I.5. La structure d'un programme VB.NET
I.6. Les instructions de contrôle du déroulement du
programme
I.7. Les énumérations
I.8. Les tableaux de données
I.9. Passage de paramètres à une fonction
I.10. La gestion des exceptions
I.11. Les erreurs de logique
I.12. Exercices
Prof. MBUYI, C.T. J.D. BATUBENGA et Al. 4
Plan du cours
II. Les INTERFACES GRAPHIQUES AVEC VS.NET
II.1. Structure des applications Windows
II.2. Prise en main de Visual Basic
II.3. Les Contrôles
II.4. Les collections
III. Les fonctions prédéfinies et événements particuliers
III.1. Les fonctions d’interface
III.2. Fonctions de chaînes
III.3. Fonctions et méthodes numériques
III.4. Les événements particuliers
III.5. Exercices
IV. La gestion des fichiers et des graphismes
IV.1. Gestion des fichiers
IV.2. Les graphismes
V. Compléments
V.1. Les menus
V.2. Les applications MDI

Prof. MBUYI, C.T. J.D. BATUBENGA et Al. 5


1ère PARTIE : QBASIC

Prof. MBUYI, C.T. J.D. BATUBENGA et Al. 6


Chap.0. Généralités
0.1. Introduction
Langage : ensemble de caractères, de symboles et de règles
permettant de les assembler, dans le but de communiquer.
On a : langages naturels et langages artificiels (programme info).
Langage info : langage destiné à décrire l’ensemble des actions
consécutives qu’un ordinateur doit exécuter.
Programmation info. consiste à écrire une suite d’instructions
organisée en algorithme dans un but précis, exécutable par un ordi.
Evolution de la programmation :
• Langage binaire ou machine (0 et 1);
• Langage d’assemblage ou assembleur (proche de la machine);
• Langage évolué (code source traduit en langage machine à l’aide
d’un traducteur : compilateur ou interpréteur)
BASIC (Beginners All-Purpose Symbolic Instruction Code) est un
langage interpréteur.

J.D. BATUBENGA 7
Généralités (suite)
Le vocabulaire du BASIC est constitué des 26 lettres de l’alphabet
(A-Z, a - z), des 10 chiffres du système décimal (0 - 9) et des
caractères spéciaux (? ; % # … ) qui tient compte de la sémantique et
de la syntaxique.
0.2. Structure de QBASIC
Programmation info. consiste à écrire une suite d’instructions
organisée en algorithme dans un but précis, exécutable par un ordi.

J.D. BATUBENGA 8
Généralités (suite)
Remarques :
- On a généralement une instruction par ligne. Pour mettre
plus d’une instruction par ligne, on les sépare par le
caractère “:”.
- L’instruction REM (remark) ou apostrophe (‘) sont utilisées
pour insérer un commentaire explicatif dans le programme.
- Un commentaire peut également être inséré dans une ligne.
Exemple :
REM ceci est un commentaire explicatif
‘ Ceci est aussi un commentaire explicatif
P=A*B ‘ Produit de A et B : S=A+B
- BASIC autorise la déclaration des variables et des constantes
même dans la zone d’instructions.

J.D. BATUBENGA 9
Généralités (suite)
0.3. L’environnement de BASIC
On a une fenêtre de conception (éditeur de texte) et une fenêtre
d’exécution.

Après saisie du code, la commande Exécution / Démarrer ou la


combinaison des touches Maj + F5 lance l’exécution du programme.

J.D. BATUBENGA 10
Chap.I. DONNEES, EXPRESSIONS ET
MOTS-CLES
I.1. Types de données
QBASIC manipule : les nombres et les chaînes de caractères (lettre,…,
texte) sous-forme des constantes ou des variables.
Constante : une donnée dont la valeur ne change pas durant
l’exécution du programme. Syntaxe :
CONST nomconstante = expression [ , nomconstante = expression, ]…
Exemple : CONST PI = 3.141593
Remarques générales :
- Les expressions littérales (textes) sont toujours placées entre
guillemets.
-Dans la formulation des syntaxes, les termes entre crochets ont un
caractère optionnel, c’est à dire peuvent ou ne pas figurer dans une
instruction selon le besoin qui se présente.
-Variable : une donnée dont la valeur peut changer durant l’exécution
du programme. syntaxe :
DIM variable [AS type][, variable [AS type]]…

J.D. BATUBENGA 11
Chap.I. DONNEES, EXPRESSIONS ET
MOTS-CLES (2)
Le langage QBASIC utilise les types des données suivants :
• STRING ou $ (chaîne de caractères de long. variable).
• STRING*n (chaîne de caractères de longueur fixe n)
• SINGLE ou ! (décimal ou variable numérique réelle simple précision)
• DOUBLE ou # (décimal ou variable numérique réelle double
précision)
• INTEGER ou % (entier relatif ou variable numérique entière codée).
• LONG ou & (entier relatif ou une variable numérique entière codée)
Exemples :
DIM RAY AS INTEGER ou DIM RAY%
DIM Nom AS STRING ou DIM Nom$
DIM Grade AS STRING*15 ‘ une variable Grade de 15 caractères.
N.B. : En BASIC, la déclaration des variables numériques n’est pas
obligatoire. Dans ce cas, toute variable non déclarée est considérée
comme un SINGLE.

J.D. BATUBENGA 12
Chap.I. DONNEES, EXPRESSIONS ET
MOTS-CLES (3)
I.2. Types d’expressions
Expression arithmétique
Elle comprend les opérandes (nombres, constantes, variables,
fonctions) et les opérateurs les suivants : ^ l’exponentiation, * la
multiplication, / la division, + l’addition, - la soustraction, \ ou
div la division entière et mod le reste de la division entière.
L’ordre des priorités des opérateurs est le suivant :
1) ^ ou ** 2) / et * 3) div ( \ ) 4) mod 5) + et -
N.B. : L’ordinateur évalue de gauche à droite les opérateurs de même
niveau et les termes entre parenthèses ont la priorité des priorités.
Exemples :
a) 5 \ 2 = 2
b) 5 mod 2 = 1
N. B. : Qlqs fonctions mathématiques : ABS, LOG, EXP, SQR, COS, SIN
et TAN.

J.D. BATUBENGA 13
Chap.I. DONNEES, EXPRESSIONS ET
MOTS-CLES (4)
Expression conditionnelle
Elle comprend des opérandes (cfr ci-dessus) et les opérateurs de
types relationnels ( = , < , > , >= , <= , <> ) et du type logique
( NOT, AND, OR, XOR, EQV, IMP … ) .
Le résultat est une valeur booléenne : True ou vraieet False ou
fausse.
L’ordre de priorité des opérateurs conditionnels est le suivant :
• Opérateurs relationnels ( de gauche à droite)
• Opérateurs logiques à évaluer dans l’ordre suivant : NOT, puis AND,
OR et XOR, enfin EQV et IMP.
Exemple : NOT ( A > 10 ) OR C = 3 AND R = 10

J.D. BATUBENGA 14
Chap.I. DONNEES, EXPRESSIONS ET
MOTS-CLES (5)
I.3. Les principaux mots-clés
Instruction INPUT
Utilisée pour l’entrée ou la lecture des données au clavier. Syntaxe :
INPUT [ “ msg ” { , | ; }] listevar
Exemple : INPUT “ Rayon du cercle ” ; R
Instruction PRINT
Utilisée pour l’affichage des données à l’écran (interaction). Syntaxe:
PRINT [ “ msg ” ; ] listevar
Exemple 1 :
PRINT NOM$, MATR, SBA, PRIME, RET
N.B. : Le PRINT sans liste des variables permet de créer une interligne
Instruction LPRINT
Permet la sortie à partir de l’imprimante. Syntaxe :
LPRINT [ “ msg ” ; ] listevar

J.D. BATUBENGA 15
Chap.I. DONNEES, EXPRESSIONS ET
MOTS-CLES (6)
Instruction LET
Elle permet d’assigner une valeur à une variable. Syntaxe :
LET varA = Expr
Exemple :
LET Nom$ = "Anne"
LET Total! = 135.8
LET X! = Total! + 42.6
N.B. :
- Le mot-clé LET peut-être omis, et la syntaxe reste correcte.
- BASIC dispose d’une fonction particulière SWAP qui permet de
permuter ou d’échanger les valeurs de deux variables données.
Syntaxe :
SWAP var1, var2

J.D. BATUBENGA 16
Chap.I. DONNEES, EXPRESSIONS ET
MOTS-CLES (7)
Applications
Application 1 : Programme BASIC qui le rayon d’un cercle puis calcule
son périmètre et sa surface.
Solution
REM Calcul du périmètre et du rayon d’un cercle
CLS
DIM R as SINGLE, P as SINGLE, S as SINGLE
INPUT “ Rayon du cercle ” ; R
P = 2*3,14*R : S = 3,14*R^2
PRINT “ Le périmètre du cercle de rayon = ” ; R ; “ est : ” ; P
PRINT “ Et la surface est : ” ; S
END

J.D. BATUBENGA 17
Chap.I. DONNEES, EXPRESSIONS ET
MOTS-CLES (8)
Application 2 : Programme BASIC qui lit un montant en dollar
américain et le taux de change dollar – franc congolais, puis calcule
et affiche le montant correspondant en franc congolais.
Solution
REM Conversion dollar en franc congolais
CLS
DIM MonF as SINGLE, MonD as SINGLE, Taux as SINGLE
INPUT “ Montant en Dollar ” ; MonD
INPUT “ Taux de change dollar → Franc Congolais ” ; Taux
MonF = Taux*MonD
PRINT “ Le montant correspondant en franc congolais est ” ; MonF
END
Exercices (Voire syllabus)

J.D. BATUBENGA 18
Chap.II. STRUCTURES DE CONTRÔLE
Celles-ci déterminent l’ordre dans lequel les opérations doivent être
effectuées.
II.1. Rupture de séquence
Sert à interrompre le déroulement séquentiel du programme pour
transférer le contrôle vers une autre instruction spécifiée par son
étiquette. Syntaxe :
GOTO ligne
Où ligne est le numéro de la prochaine instruction à exécuter.
Exemple 1:
DIM A, B, S, D AS SINGLE
INPUT “ Introduire le premier et le second terme ” ; A, B
S = A + B : GOTO 20
10 D = A - B : GOTO 30
20 PRINT “ La somme de deux termes est ”; S
GOTO 10
30 PRINT “ La différence du premier par le second terme est ”; D
END

J.D. BATUBENGA 19
Chap.II. STRUCTURES DE CONTRÔLE (2)
II.2. Structures conditionnelles
Une condition est préalablement testée, et c’est le résultat du test qui
détermine vers où transférer le contrôle.
II. 2. 1. Structure IF… THEN … ELSE
•Forme sur une seule ligne. Syntaxe :
IF condition THEN Instruction1 [ ELSE Instruction2 ]
Où condition est une expression conditionnelle.
Exemple 1:
REM Détermination de la décision
DIM Pour AS SINGLE
DIM Dec AS STRING
INPUT “ Lire le pourcentage réalisé au concours ” ; Pour
IF Pour >= 50 THEN Dec = “ Admis ” ELSE Dec = “ Ajourné ”
PRINT “ La décision est: ”; Dec
IF Dec = “ Admis ” THEN PRINT “ Félicitation ”
END

J.D. BATUBENGA 20
Chap.II. STRUCTURES DE CONTRÔLE (3)
•Forme en bloc. Syntaxe :
IF condition1 THEN
Bloc Instruction 1
[ ELSEIF condition2 THEN
[ Bloc Instruction2] ]…
[ ELSE
[ Bloc InstructionN ] ]
END IF
Exemple 1 : Un programme BASIC où l’on lit un mot de passe, puis il
vérifie si celui-ci est correct ou pas.
10 INPUT “ Tapez le mot de passe ” ; MOTPAS$
IF MOTPAS$ = “ Seigneur ” THEN
PRINT “ Mot de passe correct ”
ELSE
PRINT “ Mot de passe incorrect. Recommencez ”
GOTO 10
END IF

J.D. BATUBENGA 21
Chap.II. STRUCTURES DE CONTRÔLE (4)
Exemple 2 : Un programme BASIC où l’on lit le pourcentage réalisé par
un étudiant, ensuite il détermine sa mention (on ne tient pas compte
des échecs).
REM Détermination de la mention
DIM POUR AS SINGLE
5 INPUT “ Donnez le pourcentage réalisé ” ; POUR
IF POUR > = 100 OR POUR < = 0 THEN
PRINT “ Valeur erronée. Recommencez ”
GOTO 5
ELSEIF POUR > = 90 THEN PRINT “ Plus grande distinction ”
ELSEIF POUR > = 80 THEN PRINT “ Grande distinction ”
ELSEIF POUR > = 70 THEN PRINT “ Distinction ”
ELSEIF POUR > = 50 THEN PRINT “ Satisfaction ”
ELSEIF POUR > = 40 THEN PRINT “ Ajourné ”
ELSE
PRINT “ Non Admissible à la Filière ”
END IF

J.D. BATUBENGA 22
Chap.II. STRUCTURES DE CONTRÔLE (5)
II. 2. 2. Structure Select Case
Syntaxe :
SELECT CASE ExprTest
CASE listeExpr1
Bloc Instruction1
[CASE listeExpr2
Bloc Instruction2] ]…
[ CASE ELSE
[Bloc InstructionN ] ]
END SELECT
Où ExprTest est une expression numérique ou une chaîne de
caractères qui est comparée avec les listeExpr. A la première
concordance les instructions correspondantes sont exécutées puis le
programme sort de la structure.

J.D. BATUBENGA 23
Chap.II. STRUCTURES DE CONTRÔLE (6)
II. 2. 3. Structure ON … GOTO
Syntaxe :
ON expression% GOTO listelignes
Où expression% est une expression dont la valeur est comprise entre
0 et 255.
Listelignes est une liste de numéros de lignes.
Le programme branche sur la première ligne dans la liste, si la
valeur de l’expression est 1 ; sur la seconde, si la valeur est 2, …
Exemple
INPUT “ Entrez une valeur entre (1-5) ”; VAL
ON VAL GOTO 10, 20, 30, 40, 50
10 PRINT “Vous avez tapé : UN ” : GOTO 60
20 PRINT “Vous avez tapé : DEUX ” : GOTO 60
30 PRINT “Vous avez tapé : TROIS ” : GOTO 60
40 PRINT “Vous avez tapé : QUATRE ” : GOTO 60
50 PRINT “Vous avez tapé : CINQ ”
60 END

J.D. BATUBENGA 24
Chap.II. STRUCTURES DE CONTRÔLE (7)
II.3. Schémas itératifs
II. 3. 1. Boucles en nombre défini
Est utilisée si l’on connaît à l’avance le nombre de fois que la boucle
sera parcourue. Syntaxe :
FOR index = départ TO fin [ STEP pas]
Bloc Instructions
NEXT [ index ]
Où Index est une variable numérique utilisée comme compteur de
la boucle.
Exemple:
DIM I AS INTEGER
‘Affichage des nombres 1 à 7 et leurs carrés
FOR I = 1 TO 7 : PRINT I ; I*I : NEXT I
‘ Affichage successif des nombres 8, 5, 2 et -1
FOR I = 8 TO –3 STEP –3
PRINT I
NEXT I

J.D. BATUBENGA 25
Chap.II. STRUCTURES DE CONTRÔLE (8)
N.B. : Une boucle peut être imbriquée (emboîtée) dans une autre ;
mais deux boucles ne peuvent pas se croiser (s’enchevaucher).
Exemple:
REM Table de multiplication par 5
DIM I, J AS INTEGER
FOR I = 1 TO 5
PRINT “ Multiplication par ” ; I
FOR J = 1 TO 5
PRINT I ; “ x ” ; J ; “ = ” ; I * J
NEXT J
PRINT
NEXT I
END

J.D. BATUBENGA 26
Chap.II. STRUCTURES DE CONTRÔLE (9)
II. 3. 2. Boucles en nombre non défini
Est utilisée si le nombre de passage dans la boucle est inconnu au
départ, mais dépend plutôt d’une condition.
Boucle tant que : Répète un bloc d’instructions tant qu’une condition
demeure vraie.
Syntaxe 1 (condition à l’entrée) :
DO WHILE condition
Bloc instructions
LOOP
Syntaxe 2 (condition à la fin) :
DO
Bloc instructions
LOOP WHILE condition
N.B. : Dans la syntaxe 2, les instructions de la boucle sont
exécutées au moins une fois (Quant bien même la condition n’est pas
vraie).

J.D. BATUBENGA 27
Chap.II. STRUCTURES DE CONTRÔLE (10)
Exemple : Un Programme BASIC qui permet de répondre par oui ou
non à la question « Etes-vous étudiant(e) ? » afin que celui-ci
s’arrête, sinon la question sera répétée (affichée) indéfiniment.
REM Boucle while
DIM Rep AS STRING
INPUT "Etes-vous étudiant(e) ? (O/N)" ; Rep
DO WHILE Rep < > "O" AND Rep < > "N"
PRINT "Vous devez répondre par O ou N. Recommencez"
INPUT Rep
LOOP
PRINT "Saisie acceptée"
END

J.D. BATUBENGA 28
Chap.II. STRUCTURES DE CONTRÔLE (11)
Boucle jusqu’à ce que : Répète un bloc d’instructions jusqu'à ce
qu’une condition donnée devienne vraie.
Syntaxe 1 (condition à l’entrée) :
DO UNTIL condition
Bloc instructions
LOOP
Syntaxe 2 (condition à la fin) :
DO
Bloc instructions
LOOP UNTIL condition
N.B. : Avec la syntaxe 2, les instructions de la boucle sont aussi
exécutées au moins une fois (Quant bien même la condition est
vraie).

J.D. BATUBENGA 29
Chap.II. STRUCTURES DE CONTRÔLE (12)
Exemple : Confère précédent avec la question « Etes-vous
étudiant(e) ? ».
REM Boucle jusqu'à ce que
DIM Rep AS STRING
DO
INPUT "Etes-vous étudiant(e) ? (O/N)" ; Rep
LOOP UNTIL Rep = "O" OR Rep = "N"
PRINT "Saisie acceptée"
END
Remarque
Il ne faut pas écrire les structures tant que et jusqu’à ce que dans le
cas où la condition ne change jamais. L’ordinateur tourne alors dans
la boucle et n’en sort plus « boucle infinie ». Seule solution, quitter le
programme avec la touche Break ou CRTL + C.

J.D. BATUBENGA 30
Chap.II. STRUCTURES DE CONTRÔLE (13)
Application : Programme de test d’évaluation en mathématiques sur
le produit de deux nombres.
REM Jeu d'évaluation
DIM CTE, A, B, R AS INTEGER
CTE = 0
DO
A = 1 + INT(RND * 10) : B = 1 + INT(RND * 10)

PRINT "Donnez le produit de: "; A; " et "; B


INPUT "Votre réponse"; R
CTE = CTE + 1
LOOP UNTIL (R = A * B) OR (CTE = 6)
SELECT CASE CTE
CASE 1 TO 3 : PRINT "Vous êtes au-dessus de la moyenne"

CASE 4, 5 : PRINT "Vous êtes en-dessous de la moyenne"

CASE ELSE : PRINT "Vous êtes médiocre"

END SELECT J.D. BATUBENGA 31


Chap.II. STRUCTURES DE CONTRÔLE (14)
N. B. : RND est une fonction mathématique qui retourne un nombre
aléatoire compris entre 0 et 1, et INT(X) fournit la partie entière de X,
étant un nombre décimal quelconque.

II.4. Exercices
1. Ecrire un programme BASIC qui lit le nom et l’âge d’une personne,
puis affiche que « X est majeur (e) » si son âge est supérieur ou égal
à 18, sinon « X est mineur (e) » dans le cas contraire.
Procédure
- Analyse : Déterminer les variables et leurs types respectifs et les
actions à effectuer.
- Codification : Ecrire les différentes instructions en QBASIC.

(Suite exercices : Voire Syllabus)

J.D. BATUBENGA 32
Chap.III. LES SOUS-PROGRAMMES
III.1. Introduction
Pour des problèmes complexes, il est utile de les décomposer en
sous-problèmes indépendants (⇒ sous-programmes) et de résoudre
chaque sous problème de façon autonome.
Un sous-programme est un module de programme complet, défini et
indépendant, qui peut être utilisé ou appelé par un autre programme
(principal ou sous-programme).
Un sous-programme reçoit des valeurs (arguments) à partir du
programme appelant, il exécute des calculs et transmet ensuite les
résultats obtenus au programme appelant.
L’utilisation des modules offre plusieurs avantages :
- La simplification de la complexité des programmes (pas des
recopies inutiles) ⇒ la réduction de la taille du programme;
- La possibilité de diviser le travail entre plusieurs personnes;
- La facilité de localiser les erreurs et la lisibilité des programmes.
On a deux catégories des sous-programmes : les procédures et les
fonctions.

J.D. BATUBENGA 33
Chap.III. LES SOUS-PROGRAMMES (2)
III.2. Procédure
C’est un ensemble d’instructions qui participent à une même tache. Sa
syntaxe est :
SUB nom [ (listeArg) ] [ STATIC]
Instructions
END SUB
Où nom est le nom de la procédure SUB.
ListeArg est une ou plusieurs variables passées à la procédure lors de
son appel.
STATIC indique que les valeurs des variables locales à la procédure SUB
doivent être sauvegardées entre les appels à la procédure.
Pour appeler la procédure, on utilise l’instruction :
[ CALL ] nom [ (listeArg) ]
Le mot-clé CALL est facultatif.
nom est l’identificateur de la procédure SUB appelée.
listeArg idem.

J.D. BATUBENGA 34
Chap.III. LES SOUS-PROGRAMMES (3)
Exemple : Un programme de la moyenne de trois nombres dont la
lecture se fait dans le module principal, le calcul et l’affichage dans la
procédure SUB.
Programme appelant ou principal
REM Calcul de la moyenne de trois nombres
DIM A, B, C AS SINGLE
INPUT “ 1ère Valeur ”; A
INPUT “ 2ère Valeur ”; B
INPUT “ 3ère Valeur ”; C
CALL Moyenne (A, B, C)
END
Procédure SUB
SUB Moyenne (X, Y, Z)
DIM MOY AS SINGLE
MOY = ( X + Y + Z ) / 3
PRINT “ La moyenne est : ” ; MOY
END

J.D. BATUBENGA 35
Chap.III. LES SOUS-PROGRAMMES (4)
III.3. Fonction
C’est un ensemble d’instructions qui retourne une valeur contenue dans
une variable portant le nom même de la fonction. Sa syntaxe est :
FUNCTION nom [ (liste Arg) ] [ STATIC ]
Instructions
Nom = expression
Instructions
END FUNCTION
Où nom est l’identificateur de la fonction. Le type retourné est spécifié
comme suffixe de l’identifiant par : %, !, #, ou $.
ListeArg comme indique ci-dessus.
STATIC indique que les valeurs des variables locales à la fonction
doivent être sauvegardées entre les appels à la fonction.
Expression est la valeur retournée par la fonction.

J.D. BATUBENGA 36
Chap.III. LES SOUS-PROGRAMMES (5)
Exemple : Un programme de calcul de discriminant utilisant la fonction
CARRE.
Programme appelant
REM Calcul du discriminant
INPUT A, B, C
Delta = CARRE ! ( B ) – 4 *A * C
PRINT “ Le delta est : ”; Delta
END
La fonction
FUNCTION CARRE ! ( X )
CARRE ! = X * X
END FUNCTION
Remarque : L’instruction Exit permet de sortir brusquement d’une
boucle tant que, jusqu'à ce que, ou FOR, d’une procédure SUB ou d’une
fonction, sans avoir atteint la fin de structure.
III.4. Exercices (Voire syllabus)

J.D. BATUBENGA 37
Chap. IV. TABLEAUX
IV.1. Traitement courant sur le tableau
IV.1.1. Introduction
Un tableau est une structure de données qui permet de conserver dans
une seule entité plusieurs valeurs de même type.
Un tableau linéaire (ou à une dimension) est une liste d’un nombre fini
d’éléments de même type, dont chacun est repéré par un indice.
Ex : Un tableau linéaire TEMP qui donne les températures moyennes de
12 mois de l’année.
1 2 3 4 5 6 7 8 9 10 11 12
TEMP 27 29 26 27 28 27 24 23 26 27 29 28

TEMP (1) = 27 , représente la température du mois de janvier.


Note : Une ligne d’un texte constitue un tableau des caractères.
Un tableau binaire (à deux dimensions) est un ensemble d’éléments de
même type, dont chacun est repéré par deux indices.

J.D. BATUBENGA 38
Chap.IV. TABLEAUX (1)
Ex : Un tableau PROD qui donne la quantité produite en tonnes des
quelques produits vivriers, pendant une année.
Janvier Février Mars Décembre
Maïs 16234 17345 23986 25498
Manioc 12365 14136 11235 14956

Banane 9046 8459 6852 12259

PROD (2, 3) = 11.235 , représente la quantité en tonnes des maniocs


produits au mois de mars.
Note : BASIC accepte aussi un tableau ternaire ( à trois dimensions),
où chaque élément a trois indices (lignes, colonnes et pages).

J.D. BATUBENGA 39
Chap.IV. TABLEAUX (2)
IV.1.2. Déclaration d’un tableau
C’est obligatoire de déclarer un tableau avant sa première utilisation.
Syntaxe :
DIM [ SHARED] Nom (indices) [ As type] [ , Nom (indices) [ As type] ]…
Ou
REDIM [ SHARED] Nom (indices) [ As type] [ , Nom (indices) [ As type] ]…
Ex : DIM TEMP(5 TO 12) AS SINGLE ‘ Tableau de limite inf et sup.
DIM PROD (12, 15) AS LONG ‘ Tableau statique de limite inf 0 et
sup 12 et 15
DIM A(N, N) AS INTEGER ‘ Tableau dynamique
REDIM NOM(N) AS STRING ‘ Tableau dynamique
IV.1. 3. Parcours d’un tableau
Pour un tableau linéaire, on le balaye avec une boucle FOR…TO…
NEXT , et pour un tableau multiple (binaire ou ternaire), on le balaye
avec des boucles FOR…TO…NEXT imbriquées.

J.D. BATUBENGA 40
Chap.IV. TABLEAUX (3)
Ex 1: Remplir le tableau linéaire sur les températures moyennes,
pendant une année.
DIM TEMP (12) AS SINGLE
FOR I = 1 TO 12
PRINT “ Température du” ; I ; “ e mois ”;
INPUT TEMP ( I )
NEXT I
Ex 2 : Remplir le tableau binaire sur les 14 produits vivriers, pendant
une année.
DIM PROD (14, 12) AS SINGLE
FOR I = 1 TO 14
FOR J = 1 TO 12
PRINT “ La quantité en tonnes du ” ; I ; “ produit, le ” ; J ; “ e mois ”;
INPUT PROD ( I, J )
NEXT J
NEXT I

J.D. BATUBENGA 41
Chap.IV. TABLEAUX (4)
IV.1.4. Applications
1. Calcul de la moyenne dans un tableau linéaire
REM Calcul de la moyenne de 12 températures
DIM TEMP (12) AS SINGLE
DIM Moy, Som AS SINGLE
DIM I AS INTEGER
FOR I = 1 TO 12
PRINT "Entrez la température n°", I
INPUT TEMP (I)
NEXT I
Som = 0
FOR I = 1 TO 12
Som = Som + TEMP(I)
NEXT I
Moy = Som / 12
PRINT Moy
END

J.D. BATUBENGA 42
Chap.IV. TABLEAUX (5)
2. Recherche de l’élément maximum dans un tableau linéaire
On veut rechercher la température maximale dans un tableau de 12
températures qui est en mémoire.
DIM TEMPMAX AS SINGLE
TEMPMAX = TEMP ( 1 )
FOR I = 2 TO 12
IF TEMP ( I ) > TEMPMAX THEN TEMPMAX = TEMP ( I )
NEXT I
A la fin du processus, la variable TEMPMAX contiendra la valeur
recherchée.
3. Calcul des sommes des lignes d’un tableau binaire
DIM SOM(15) AS SINGLE, I AS INTEGER, J AS INTEGER
FOR I = 1 TO 15
SOM(I) = 0
FOR J = 1 TO 12 : SOM(I) = SOM(I) + PROD(I, J) : NEXT J
PRINT "Le total pour le produit " ; I ; " est " ; SOM(I)
NEXT I

J.D. BATUBENGA 43
Chap.IV. TABLEAUX (6)
IV.1.5. le type défini par l’utilisateur
Il permet de mettre ensemble un certain nombre de variables de
types différents. Sa structure :
TYPE typeUtil
NomElem As nomType
[NomElem As nomType]

END TYPE
Où typeUtil est le nom du type défini, NomElem est le nom de son
élément et NomType est le type de l’élément.
Exemple d’un type utilisateur
REM Saisie d’information sur le personnel
Type Identification
Nom As String*15
Sexe As String*1
Age As Integer
Salaire As Single
End Type
J.D. BATUBENGA 44
Chap.IV. TABLEAUX (7)
(Suite exemple)
DIM Info ( 1 TO 10) As Identification
PRINT “ Lecture de données ”
FOR I = 1 TO 10
PRINT “ L’agent numéro ” ; I
INPUT “ Le nom ” ; Info (I).Nom
INPUT “ Le sexe ” ; Info (I).Sexe
INPUT “ L ‘âge ” ; Info (I).Age
INPUT “ Le salaire ”; Info (I).salaire
NEXT I
CLS
PRINT “ NUMERO ” ; “ NOM ” ; “ SEXE ” ; “ AGE ” ; “ SALAIRE ”
FOR I = 1 TO 10
PRINT I, INFO (I).Nom, INFO (I).Sexe, INFO (I).Age, INFO (I).Salaire
NEXT I
END

J.D. BATUBENGA 45
Chap.IV. TABLEAUX (8)
IV.2. Traitement des chaînes de caractères
Une variable chaîne de caractères se déclare de type string.
Ex 1 : DIM Text AS STRING
La variable Text contient une chaîne de caractère de longueur
indéterminée selon l’affectation qui suivra.
Ex 2 : DIM Nom AS STRING*n
La variable Nom contient une chaîne de longueur n (y compris les
espaces).
Ex 3 : DIM Adresse As STRING*30
La variable Adresse contient une chaîne de longueur maximale 30
caractères.
IV.2. 1. La concaténation (fusion de deux chaînes, symbole " + ")
Ex : " Bon" + "jour " donne la chaîne " Bonjour".
Bon et jour sont juxtaposés.

J.D. BATUBENGA 46
Chap.IV. TABLEAUX (9)
IV.2. 2. Comparaison des chaînes de caractères
Longueur de la chaîne
Syntaxe : Len (chaîne$)
Où chaîne$ est l’expression de chaîne de caractères.
Ex : Phrase$= "Microsoft Qbasic "
LON = Len (Phrase$)
PRINT LON ' Affiche 16
Comparaison binaire
Syntaxe : StrComp ( Chaîne1$, Chaîne2$)
où Chaîne1$ et chaîne2$ sont des chaînes de caractères à comparer.
Ex : Phrase1$ = "Mon Dieu est grand" : Phrase2$ = "Mon Dieu est grand"
Phrase3$ = " Mon Dieu est grand" : Phrase4$ = " Mon Dieu est Géant"
PRINT StrComp ( Phrase1$, Phrase2$) ' Affiche 0
PRINT StrComp ( Phrase1$, Phrase3$) ' Affiche 1
PRINT StrComp ( Phrase1$, Phrase4$) ' Affiche 1
PRINT StrComp ( Phrase3$, Phrase4$) ' Affiche 1

J.D. BATUBENGA 47
Chap.IV. TABLEAUX (10)
IV. 2. 3. Recherche d'une chaîne de caractères (rechercher si une
chaîne de caractères existe à l'intérieur d'une autre)
Syntaxe : InStr ( chaîne1$, chaîne2$)
Où chaîne2$ est la chaîne de caractères recherchée dans chaîne1$.
Ex : Chaîne1$ = "God bless you"
Chaîne2$ = "bless"
Chaîne3$ = "Good"
La fonction InStr ( Chaîne1$, Chaîne2$) retournera la valeur 5
La fonction InStr (Chaîne1$, Chaîne3$) retournera la valeur 0
IV.2.4. Extraction d'une chaîne de caractères
-La fonction Right$ donne la partie droite d'une chaîne de caractères.
Syntaxe : RIGHT$ (Chaîne$, n%)
où Chaîne$ est la chaîne de caractères à traiter et n% le nombre de
caractères à renvoyer.
Ex : a$ = "Microsoft Qbasic"
b$ = RIGHT$ ( a$, 5)
PRINT b$ ' Affiche "basic"

J.D. BATUBENGA 48
Chap.IV. TABLEAUX (11)
-La fonction Left$ donne la partie gauche d'une chaîne de caractères.
Syntaxe : LEFT$ (Chaîne$, n%)
où Chaîne$ et n% idem ci-dessus
Ex : a$ = "Microsoft Qbasic"
b$ = LEFT$ ( a$, 5)
PRINT b$ ' Affiche “Micro“
-La fonction Mid$ extrait une partie d'une chaîne de caractères.
Syntaxe : MID$ ( Texte$, Position% [, Nombre%])
Où Texte$ est la chaîne de caractères à traiter, Position% est la
position à partir de la quelle, extraire les caractères et Nombre% est
le nombre de caractères à extraire.
Ex : a$ = "Microsoft Qbasic"
b$ = MID$ ( a$, 6, 4)
PRINT b$ ' Affiche "soft"

J.D. BATUBENGA 49
Chap.IV. TABLEAUX (12)
-L’instruction Mid$ remplace une partie d'une chaîne de caractères
par une autre chaîne.
Syntaxe : MID$ ( Texte$, Position% [, Nombre%]) = Chaîne$
Où Texte$ est la chaîne de caractères à modifier, Position% est la
position à partir de la quelle, remplacer les caractères et Nombre%
est le nombre de caractères à remplacer .
Ex : a$ = "Où se trouve Kinshasa"
PRINT MID$ (a$, 14, 3) 'Affiche "Kin"
Text$ = "Abidjan, Cotonou"
PRINT Text$ 'Affiche "Abidjan, Cotonou"
MID$ (Text$, 10) = "Yaoundé"
PRINT Text$ 'Affiche "Abidjan, Yaoundé"

IV.3. Exercices (Voire syllabus)

J.D. BATUBENGA 50

Vous aimerez peut-être aussi