.coin {
background-color:#E4EFFF;
border:1px solid #9FC6FF;
padding:5px;
/*arrondir les coins en haut à gauche et en bas à droite*/
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px;
font-family: ‘Trebuchet MS’, Verdana, sans-serif;
}
VB.Net :Tableaux et matrices
//
Généralités
Les tableaux sont comme les variables soit locales, soit globales et obéissent aux mêmes
règles.
Un tableau est une structure regroupant plusieurs valeurs de même type, appelées composantes du tableau.
On peut traiter un tableau comme un tout, ou composante par composante. Traité comme un tout, on pourra le stocker dans une variable, le passer en paramètre ou le donner en résultat d’un calcul.
Chaque composante est désignée individuellement via son indice, qui correspond à sa position dans le tableau, et peut être traitée comme variable individuelle : on pourra consulter sa valeur, la modifier, etc.
Les tableaux sont des séquences de données de même type. Vous pouvez accéder à un élément individuel d’un tableau en utilisant sa position d’entier, qui s’appelle un index.
Les éléments d’un tableau sont situés dans la mémoire contiguë. Cela signifie qu’un programme peut accéder aussi rapidement à tous les éléments d’un tableau.
Dès que l’on travaille avec de nombreuses données homogènes ( de même type) la première structure de base permettant le regroupement de ces données est le tableau.
VB.Net comme tous les langages algorithmiques propose cette structure au programmeur.
Les tableaux VB.Net sont indexés uniquement par des entiers (char, int, long,…) et sur un intervalle fixe à partir de zéro.
Un tableau (“array” en anglais) est un objet permettant de rassembler sous un même identificateur des données de même type.
Un tableau VB.Net peut avoir de une ou à plusieurs dimensions, nous avons donc les variétés suivantes de tableaux dans le CLR :
Tableaux à une dimension.
Tableaux à plusieurs dimensions (matrices,…).
Tableaux déchiquetés.
Chaque dimension d’un tableau en VB.Net est définie par une valeur ou longueur, qui est un nombre ou une variable N entier (char, int, long,…) dont la valeur est supérieur ou égal à zéro.
Lorsqu’une dimension a une longueur N, l’indice associé varie dans l’intervalle [ 0 , N – 1 ].
Déclaration et création
Vous utilisez la même notation pour déclarer un tableau ou une simple variable.
Spécifiez d’abord le mot clé Dim
Puis le nom de la variable suivi deux parenthèses.
Vous déclarez le type de la variable comme un tableau à l’aide du mot clé As.
Syntaxe : Dimnomtableau(dimension1,dimension2, , dimension n) As type
Pour déclarer un tableau en VB.Net, il faut utiliser la syntaxe « () » associée à un nom.
Il faudra aussi allouer l’espace mémoire nécessaire pour le tableau avant de l’utiliser.
Dimnom_tab( ) as type
Déclaration d’une variable de tableau, référence seule:
Exemple
Dim nom_tab ( ) as type
<FONT color="green"Exmples:
Dim Tableau(3) As Integer
Dim Tableau(3) As String
Dim Tableau(3) As float
…
Dim Tableau(3) As Double
Image de ce qui est présent en mémoire centrale après ces déclarations
Déclaration d’une variable de tableau avec définition explicite de taille :
Dim nom as type() nom = new type(n)
===>où n est le nombre de données que peut contenir le tableau.
Exemple
‘Déclaration
Dim t As String()
‘On instancie et on initialise
t = New String(1) {“Un”, “Deux”}
Image de ce qui est présent en mémoire centrale après ces déclarations
Chaque variable de référence pointe vers un tableau de longueur 4, chaque cellule d’un tableau contient la valeur null.
Le mot clé new correspond à la création d’un nouvel objet (un nouveau tableau) dont la taille est fixée par la valeur indiquée entre les crochets. Ici 3 tableaux sont crées et prêts à être utilisés :
table1 contiendra 4 entiers 32 bits
table2 contiendra 4 caractères
table3 contiendra 4 réels en simple précision
tableStr contiendra 4 chaînes de type string.
On peut aussi déclarer un tableau sous la forme de deux instructions :
une instruction de déclaration et une instruction de définition de taille avec le mot clef new
la seconde pouvant être mise n’importe où dans le corps d’instruction, mais elle doit être utilisée avant toute manipulation du tableau.
Cette dernière instruction de définition peut être répétée plusieurs fois dans le
programme
Il s’agira alors à chaque fois de la création d’un nouvel objet (donc un nouveau
tableau), l’ancien étant détruit et désalloué automatiquement par le ramasse-miettes (garbage
collector) de VB.Net.
Dim table1( ) as int
Dim table2( ) as char
Dim table3( ) as float
Dim tableStr( ) as string
….
table1 = new int (4)
table2 = new char (11)
table3 = new float (7)
tableStr = new string (8)
Déclaration et initialisation avec définition implicite de taille :
Exemple
Dim table1() as int = {13,-19,24,33,54,-97};
Dim table2() as char= {‘a’,’p’,’c’,’p’,’e’,’d’,’a’,’g’,’o’,’g’,’i’,’e’};
Dim table3() as float= {-13.2, 35, -52.03, 3.543 ,57.57 };
…
Dim tableStr() as String= {“apc”,”pedagogie”,”chemin”,”éclairant”,”cours”};
Dans cette éventualité VB.Net crée le tableau, calcule sa taille et l’initialise avec les valeurs fournies.
Image de ce qui est présent en mémoire centrale après ces déclarations
Exemple:
Dim tab() As Apprenant 'Cette ligne ne fait que déclarer un tableau (de taille non spécifiée). tab = New Apprenant (42) ' Instancie un tableau de taille 42
On peut combiner la déclaration et l’instanciation en une seule ligne :
Dim tab = New Apprenant (42)
Remarque que cette dernière ligne peut encore s’écrire
Dim tab(42) As Apprenant
Tableaux à deux dimensions(ou plus)
VB.Net permet des tableaux multidimensionnels. Tableaux multi-dimensionnels sont également appelés tableau rectangulaire.
La forme la plus simple du tableau multidimensionnel est le tableau à 2 dimensions .
Un tableau à 2 dimensions peut être considéré comme une table , qui a x nombre de lignes et y nombre de colonnes.
Un tableau à deux dimensions se déclare de la manière suivante :
Dim nom_tab( , ) As type= new type(n, m) {}
Syntaxe : Dimnomtableau(dimension1,dimension2, , dimension n) As type
Dim NomTableau(,) As Integer = New Integer(4,2)
{ {1,2},
{2,2},
{3,2},
{4,2},
{5,2} }
Où n est le nombre de lignes et m le nombre de colonnes.
Dim Tableau(indice de la dernière ligne,indice de la dernière colonne) indice de la dernière colonne)
// Déclarer un tableau à deux dimensions (appelée aussi matrice)
Dim tab1 = new int(2, 3); // 2 lignes, 3 colonnes
//tableau multidimensions de string
string(,) tabString = new string(3, 2) { {"un", "deux"},
{"trois", "quatre"},
{"cinq", "six"} }
// Déclarer et définir les valeurs des éléments du tableau
Dim tab2(,) as int = { { 1, 2, 3 }, { 4, 5, 6 } };
// déclaration d'un tableau de 10 lignes et de 20 colonnes
Dim tableauRectangulaire(,) as integer = new integer(10, 20);
Dim tableauRectangulaire(,) As Integer = New Integer(10,20) {}
// Tableaux à deux dimensions.
Dim tab2D(,) As Integer = new Integer(,) { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
// The same array with dimensions specified.
Dim tab2D(,) As Integer = new Integer(4,2) { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
// Tableaux à deux dimensions string.
Dim tab2Db(,) As String = New String(3,2) { { "un", "deux" }, { "trois", "quatre" },{ "cinq", "six" } };
// Tableau en trois dimensions.
Dim tab3D(,,) As Integer = New Integer(,,) {{{1, 2, 3}, {4, 5, 6}},
{{7, 8, 9}, {10, 11, 12}}};
// Le même tableau avec des dimensions spécifiée2.3 Dim tab3Da(,,) As Integer = New Integer(2,2,3) {{{1, 2, 3}, {4, 5, 6}},
{{7, 8, 9}, {10, 11, 12}}};
Voici un tableau à 2 dimensions , qui contient 3 lignes et 4 colonnes :
Les tableaux VB.Net peuvent avoir plusieurs dimensions, ceux qui ont deux dimensions sont dénommés matrices (vocabulaire scientifique).
Tous ce que nous allons dire sur les matrices s’étend ipso facto aux tableaux de dimensions trois, quatre et plus.
Ce sont aussi des objets et ils se comportent comme les tableaux à une dimension tant au niveau des déclarations qu’au niveau des utilisations.
La déclaration s’effectue avec un opérateur crochet et des virgules,exemples d’une syntaxe de déclaration d’un tableau à trois dimension : ( , , ).
Tableaux de tableaux (en escalier)
Un tableau en escalier est un tableau dont les éléments sont des tableaux .
Les éléments d’un tableau en dents de scie peuvent être de différentes dimensions et de tailles.
Un tableau en escalier est parfois appelé un « tableau de tableaux .
Un tableau en escalier est un tableau dont les éléments sont des tableaux.Les éléments d’un tableau en escalier peuvent être de dimensions et de tailles différentes.Un tableau en escalier est parfois appelé « tableau de tableaux ».
En VB.Net un tableau déchiqueté ou en escalier est composé de plusieurs tableaux unidimensionnels de taille variable.
La déclaration s’effectue avec des opérateurs parenthèses ( ) ( )… : autant de crochets que de dimensions.
VB.Net autorise comme Java, des tailles différentes pour chacun des sous-tableaux.
Les données proviennent de diverses formes . Parfois, la forme est inégale . Avec des tableaux déchiquetées , nous pouvons stocker efficacement de nombreuses lignes de différentes longueurs .
Travaux pratiques
Exécuter dans un projet de console le programme suivant.
Créez un tableau en escalier d’éléments int .
Définissez des valeurs dans le tableau.
Imprimez ensuite le résultat à la fin.
Module Module1
Sub Main()
' Déclarer un tableau en escalier local avec 3 rangées .
Dim jagged()() As Integer = New Integer(3)() {}
' Créer un nouveau tableau dans le tableau en escalier , et l'affecter .
jagged(0) = New Integer(2) {}
jagged(0)(0) = 1
jagged(0)(1) = 2
'Définir la deuxiéme rangée , initialisé zéro .
jagged(1) = New Integer(1) {}
' Définir la troisiéme rangée , en utilisant tableau initialiseur .
jagged(2) = New Integer() {3, 4, 5}
'Imprimez tous les éléments du tableau déchiquetée .
Dim i As Integer = 0
For i = 0 To jagged.Length - 1
Dim innerArray() As Integer = jagged(i)
Dim a As Integer
For a = 0 To innerArray.Length - 1
Console.WriteLine((innerArray(a)))
a = (a + 1)
Next
Next
End Sub
End Module
//Résultats:
"1 2"
"0"
"3 4 5"
Cet exemple déclare un tableau en escalier .
Le mot Jagged n’existe pas dans le langage C #. Cela signifie que vous ne devez pas utiliser ce mot dans votre code.
Déclarer et initialiser le tableau déchiquetée:
Dim tab_escalier ()() As Integer= new integer(5)(){}
Dans la déclaration ci-dessus les lignes sont fixées dans la taille. Mais les colonnes ne sont pas spécifiés , car ils peuvent varier.
Dim tab_escalier(0) as Integer=new int(3);
Dim tab_escalier(1) as Integer= new int(5);
Dim tab_escalier(2) as Integer= new int(2);
Dim tab_escalier(3) as Integer= new int(8);
Dim tab_escalier(4) as Integer= new int(10);
Dim tab_escalier(0) as Integer= new int() { 3, 5, 7};
Dim tab_escalier(1) as Integer =new int() { 1, 0, 2, 4, 6 };
Dim tab_escalier(2) as Integer= new int() { 1, 6 };
Dim tab_escalier(3) as Integer= new int() { 1, 0, 2, 4, 6, 45, 67, 78 };
Dim tab_escalier(4) as Integer= new int() { 1, 0, 2, 4, 6, 34, 54, 67, 87, 78 };
Vous pouvez également initialiser le tableau lors de la déclaration comme ceci:
Dim tab_escalier()() as integer = new integer()()
{
Dim tab_escalier(0) as Integer= new int() { 3, 5, 7},
Dim tab_escalier(1) as Integer=new int() { 1, 0, 2, 4, 6 },
Dim tab_escalier(2) as Integer= new int() { 1, 6 },
Dim tab_escalier(3) as Integer= new int() { 1, 0, 2, 4, 6, 45, 67, 78 }
};
Vous pouvez envisager de tableau en escalier comme un compteur de billets de cinéma où la vente de billets compteurs sont fixes ( lignes sont fixes ), mais vous ne savez pas combien de personnes seront debout dans chaque compteur dans une file d’attente ( numéros de colonne ne sont pas fixes peuvent varier en fonction des différentes lignes ) .
Pour offrir les meilleures expériences, nous utilisons des technologies telles que les cookies pour stocker et/ou accéder aux informations des appareils. Le fait de consentir à ces technologies nous permettra de traiter des données telles que le comportement de navigation ou les ID uniques sur ce site. Le fait de ne pas consentir ou de retirer son consentement peut avoir un effet négatif sur certaines caractéristiques et fonctions.
Fonctionnel
Toujours activé
Le stockage ou l’accès technique est strictement nécessaire dans la finalité d’intérêt légitime de permettre l’utilisation d’un service spécifique explicitement demandé par l’abonné ou l’utilisateur, ou dans le seul but d’effectuer la transmission d’une communication sur un réseau de communications électroniques.
Préférences
Le stockage ou l’accès technique est nécessaire dans la finalité d’intérêt légitime de stocker des préférences qui ne sont pas demandées par l’abonné ou l’utilisateur.
Statistiques
Le stockage ou l’accès technique qui est utilisé exclusivement à des fins statistiques.Le stockage ou l’accès technique qui est utilisé exclusivement dans des finalités statistiques anonymes. En l’absence d’une assignation à comparaître, d’une conformité volontaire de la part de votre fournisseur d’accès à internet ou d’enregistrements supplémentaires provenant d’une tierce partie, les informations stockées ou extraites à cette seule fin ne peuvent généralement pas être utilisées pour vous identifier.
Marketing
Le stockage ou l’accès technique est nécessaire pour créer des profils d’utilisateurs afin d’envoyer des publicités, ou pour suivre l’utilisateur sur un site web ou sur plusieurs sites web ayant des finalités marketing similaires.