Accueil > QBasic > QBasic – Les tableaux

QBasic – Les tableaux

This entry is part 19 of 30 in the series QBasic - Tutoriel
  1. Type de tableaux
  2. Les tableaux dynamiques
  3. LBOUND et UBOUND

Lorsque dans un programme, les données se multiplient, au lieu de créer 40000 variables, on
peut utiliser un tableaux qui aura pour effet de nous simplifier grandement la tache.

Pour créer un tableau, on utilise la même instruction que pour déclarer une variable :
l’instruction DIM.
Imaginons que l’on veuille étudier la taille des 10 éleves d’une petite classe. Nous allons
créer un tableaux à 1 dimensions (une ligne) :


DIM Taille(9)

Remarquez que l’on a écrit 9 et pas 10. Pourquoi ? Parce qu’on part de 0 et non de 1. Si on
avait voulut partir de 1, on aurrait écrit :

DIM Taille(1 TO 10)

Ou bien, si on avait voulu faire commencer TOUT les tableaux par 1 au lieu de 0, on aurait du
écrire :

OPTION BASE 1 ‘ Tout les tableaux commence par 1 et non 0
DIM Taille(10)

Le tableau aurait virtuellement (whoa!!) cette alure :



























1 2 3 4 5 6 7 8 9 10
                   




Pour stocker nos données dans ce tableau, il faut spécifer les coordonnées de la cellules dans
laquelle ont veut placer la donnée :

OPTION BASE 1 ‘ Tout les tableaux commence par 1 et non 0
DIM Taille(10)

Taille(3) = 1.7 ‘ 1.7 dans la cellule 3
Taille(7) = 1.65 ‘ 1.65 dans la cellule 7


Après cet exemple, le tableau sera (toujours virtuellement) :




























1 2 3 4 5 6 7 8 9 10
    1.7       1.65      




Nous allons maintenant réaliser notre petite étude statistique avec ce petit programme :

OPTION BASE 1 ‘ Les tableaux partent de 1
DIM Taille(10) ‘ Création du tableau Taille

FOR i = 1 TO 10
PRINT « Eleve N° »; i
INPUT « Entrez sa taille : « , Taille(i) ‘ On stocke la taille de chaque éleve
NEXT i

‘ *** Calcul de la taille Moyenne ***
FOR i = 1 TO 10
Somme = Somme + Taille(i)
NEXT i
TailleMoyenne = Somme / 10

‘ *** Recherche du plus grand ***
FOR i = 1 TO 10
IF Taille(i) > PlusGrand THEN PlusGrand = Taille(i)
NEXT i

‘ *** Recherche du plus petit ***
PlusPetit = PlusGrand
FOR i = 1 TO 10
IF Taille(i) < PlusPetit THEN PlusPetit = Taille(i)
NEXT i

' *** Affichage des résultats ***
PRINT "La taille moyenne est "; TailleMoyenne
PRINT "Le plus petit est "; PlusPetit
PRINT "Le plus grand est "; PlusGrand


Mais les tableaux ne s’arrêtent pas là. On peut par exemple spécifier une 2ème
dimension :

DIM MonTableau(5, 10)’ Tableau à 2 dimensions

Voici l’allure virtuelle de ce tableau :
















































































































0 1 2 3 4 5
0            
1            
2            
3            
4            
5            
6            
7            
8            
9            
10            



On peut d’ailleurs créer des tableaux qui sont en fait des cubes, en précisant une 3ème
dimension :

DIM MonCube(5, 10, 25) ‘ Tableau à 3 dimensions (Cube)

Ici, j’ai pas pu le représenter virtuellement (je tiens à ce mot :) ).

À ma connaissance, je crois qu’on peut déclarer jusqu’à 64 dimensions !!!!!

Mais là, il faut s’accrocher.


Type de tableaux


Comme pour une variable, un tableau peut être d’un type bien déterminé. Il faudra alors le
spécifier avec le mot-clef AS :

DIM Bottin(1000) AS STRING ‘ Un tableau de chaines de caractères


Les tableaux dynamiques


Lorsqu’on ne sait pas bien quelle taille doit avoir un tableau, on peut créer un tableau
dynamique
.

Pour cela, il faut créer un tableau avec le bon nombre de dimensions, mais avec des limites
« bidons » :

DIM Bataille(0, 0) AS INTEGER ‘ Création d’un tableau à 2 dimensions

Puis, on le redimensionnera en conséquence grâce à l’instruction REDIM :

DIM Bataille(0, 0) AS INTEGER ‘ Création d’un tableau à 2 dimensions

REDIM Bataille(10, 10) AS INTEGER ‘ Redimensionnement du tableau


Malheuresement, si on avait stocké des données dans le tableau, celle-ci seront réinitialisés
lors du redimensionnement. Il faudra alors se débrouillé avec un deuxième tableau temporaire.


LBOUND et UBOUND


Lorque l’on ne connait pas les limites d’une dimension d’un tableau, on peut utiliser les
instructions LBOUND et UBOUND.

  • LBOUND permet d’obtenir la limite inférieur d’une dimension d’un tableau

  • UBOUND permet d’obtenir la limite supérieur d’une dimension d’un tableau


Pour les utiliser, il faut préciser le tableau concerné et la dimension à tester, tout en sachant
que la première dimension est 1 et non pas 0 :

DIM MonTableau(3 TO 27, 4 TO 56)

FOR i = 1 TO 2
PRINT « La limite inférieur de la dimension « ; i;  » est « ; LBOUND(MonTableau, i)
PRINT « La limite supérieur de la dimension « ; i;  » est « ; UBOUND(MonTableau, i)
NEXT i

Series Navigation«QBasic – Les types de variablesQBasic – Les types personalisés»
Categories: QBasic Tags:
  1. 13/09/2010 à 20:17 | #1

    comment fait on pour sauvergarder un tableau dans un fichier ???

  2. 14/09/2010 à 09:10 | #2

    bon j’ai trouvé cette nuit il faut prendre la fonction tableau comme une variable !

  1. Pas encore de trackbacks