|
|
Par Hugo ETIEVANT
|
Il est courant d'utiliser des tableaux afin d'y stocker temporairement des données.
Ainsi, une donnée peut être en relation avec 1, 2 ou 3 (ou plus) entrées.
L'intérêt du tableau est de pouvoir stocker en mémoire des données que l'on pourra retouver grace à d'autres valeurs à l'aide de boucles, de formules, d'algorythmes. On peut utiliser un tableau afin de représenter l'état d'un échiquier, le résultat d'une fonction mathématique... Il est possible d'introduire des variables de presque tous les types au sein d'un tableau : Un tableau, tout comme une variable quelconque doit être déclaré
dans la partie déclarative du programme. On doit toujours spécifier le type des variables qui seront introduites dans le tableau. Var nom_du_tableau : Array[MinDim..MaxDim] Of type ; Note : les valeurs MinDim et MaxDim doivent être des Var tab1 : Array[0..10] Of Byte ; tab2 : Array[1..100] Of Integer ; tab3 : Array[-10..10] Of Real ; tab4 : Array[50..60] Of String ; tab5 : Array['A'..'S'] Of Char ; tab6 : Array['a'..'z'] Of Extended ; Char) n'interdit pas pour autant de remplir le tableau de nombres à virgules (voir le tab6 ci-dessus). Car en effet, le type des bornes d'un tableau n'influe aucunement sur le type des variables contenues dans le tableau. Et réciproquement, le type des variables d'un tableau de renseigne en rien sur le type des bornes ayant servi à sa déclaration. Un tableau peut avoir plusieurs dimensions. Si toutefois, vous imposez trop de dimensions ou des index trop importants, une erreur lors de la compilation vous dira :
Var nom_du_tableau : Array[MinDim1..MaxDim1, MinDim2..MaxDim2] Of type ; Var nom_du_tableau : Array[MinDim1..MaxDim1, MinDim2..MaxDim2, MinDim3..MaxDim3] Of type ; Exemples : Var tab1 : Array[0..10, 0..10] Of Byte ; tab2 : Array[0..10, 0..100] Of Integer ; tab3 : Array[-10..10, -10..10] Of Real ; tab4 : Array[5..7, 20..22] Of String ; tab5 : Array[1..10, 1..10, 1..10, 0..2] Of Char ; La technique pour introduire des valeurs dans un tableau est relativement simple.
Il suffit de procéder comme pour une variable normale, sauf qu'il ne faut pas oublier de spécifier la position indexqui indique la place de la valeur dans la dimension du tableau. [index] := valeur ;[index1, index2] := valeur ;Note : la variable index doit nécessairement être du même type énuméré que celui utilisé pour la déclaration du tableau. On peut introduire dans un tableau les valeurs d'un autre tableau. Mais pour cela, il faut que les deux tableaux en question soient du même type (ou de types compatibles), qu'ils aient le même nombre de dimension(s) et le même nombre d'éléments. := nom_du_deuxième_tableau ;Program exemple26 ;tab : Array[1..10] Of Integer ;tab[i]:=i ;tab[i])*5+3) ;Ce programme exemple26 utilise un tableau à une seule dimension dont les valeurs seront des variables de type Il existe une autre manière de déclarer un tableau de dimensions multiples en crééant un tableau de tableau. Mais cette technique n'est pas la plus jolie, pas la pratique, pas la plus appréciée aux examens... Donc à ne pas utiliser ! Var nom_du_tableau : Array[MinDim1..MaxDim1] Of Array[MinDim2..MaxDim2] Of type ; { syntaxe désuette }Mais une autre manière d'introduire des valeurs accompagne ce type de déclaration. [index1][index2] := valeur ; Le passage d'un tableau (type complexe) en paramètre à une procédure pose problème si on ne prend pas des précautions. C'est-à-dire qu'il faut déclarer un type précis de tableau (qui sera un type simple).
Program exemple27 ;tableau = Array[1..10] Of Integer ;saisie(Var tab:Tableau) ;Entrez la valeur de la case n°',i,'/10 : ') ;tab[i]) ;End ; Procedure tri (Var tab:Tableau) ;tab[i]>tab[j] Thentab[i] ;tab[i]:=tab[j] ;tab[j]:=x ;affiche(tab:Tableau) ;tab[i],' ') ;tab1,tab2:Tableau ;saisie(tab1) ;tab2:=tab1 ;tri(tab2) ;Série saisie :') ;affiche(tab1) ;Série triée :') ;affiche(tab2) ;
Ce programme exemple27 a pour but de trier les éléments d'un tableau d'entiers dans l'ordre croissant. Pour cela, il déclare un nouveau type de tableau grace à la syntaxe Il est également possible d'introduire dans un tableau des données complexes, c'est-à-dire de déclarer un tableau en type complexe ( Var tab : Array[1..10] Of Recordnom : String[20] ;age : Byte ;Introduire des valeurs dans un tel tableau nécessite d'utliser en même temps la syntaxe des tableaux et des types complexes. [5].nom := 'CyberZoïde' ;La déclaration de tableau en tant que constante nécessite de forcer le type (le type tableau bien sûr) à la déclaration. (voir Chap XXVI Constantes) Const a : Array[0..3] Of Byte = (103, 8, 20, 14) ; : Array[-3..3] Of Char = ('e', '5', '&', 'Z', 'z', ' ', #80) ;c : Array[1..3, 1..3] Of Integer = ((200, 23, 107), (1234, 0, 5), (1, 2, 3)) ;d : Array[1..26] Of Char = 'abcdefghijklmnopqrstuvwxyz'; |