VB.Net: Correction des exercices tableaux et matrices 13
VB.Net: Correction des exercices tableaux et matrices 13
- Enoncé Exercice 13
- Buts:
- Déclaration et initialisation de tableaux en VB.Net.
- Affichage des éléments du tableau
- Parcourir des tableaux en VB.Net.
- Fusionner deux tables en une seule.
- Rappel
- Copie d’un tableau
- La copie d’un tableau implique la copie de ses éléments dans un autre tableau.
- Dans le cas d’un tableau d’objets, seules les références à ces objets sont copiées, aucun nouvel objet n’est créé.
- La méthode arraycopy de la classe System permet de copier tout ou partie d’un tableau vers un autre tableau déjà alloué.
- Explications
- Cette version implante une solution non optimisée où 2 tableaux auxiliaires sont utilisés pour héberger temporairement les valeurs paires pour le premier et les valeurs impaires pour le second.
- Ces deux tableaux sont dimensionnés à la valeur maximale possible : la taille de tableau principal.
- Une fois qu’ils contiennent toutes les valeurs de tableau, ces deux tableaux sont fusionnés par recopie dans le tableau tableau.
- Cette solution n’est pas optimisée
- Dans l’exercice suivant le programme copie le contenu du tableau en employant une boucle for, quoiqu’il ait pu tout simplement utiliser la méthode Copy de la classe Array, comme suit:
- Correction Exercice 13
- Suite

Array.Copy(Valeurs, 0,Temp,0 Valeurs.Lenth)
Module exercice13
Dim tableau As Integer() = New Integer(19) {}
Sub Main()
remplirTableau()
AffichageTab()
ReorganiseTab()
End Sub
Private Sub remplirTableau()
Dim rnd As New Random()
' affectation de valeurs entières, pris au hasard entre 1 et 100, au tableau
For i As Integer = 0 To 19
tableau(i) = rnd.Next(1, 101)
Next
End Sub
Private Sub AffichageTab()
'affichage des valeurs du tableau
For i As Integer = 0 To 19
Console.WriteLine(tableau(i) & " ")
Next
End Sub
Private Sub ReorganiseTab()
'déclaration de deux tableaux temporaires
Dim tabpair As Integer() = New Integer(19) {}
Dim tabimpair As Integer() = New Integer(19) {}
'déclaration de deux compteurs
Dim ctpair As Integer = 0
Dim ctimpair As Integer = 0
'Recherche de minimum
For i As Integer = 0 To 19
If (tableau(i) Mod 2) = 0 Then
'int[] tabpair;
tabpair(ctpair) = tableau(i)
ctpair += 1
Else
tabimpair(ctimpair) = tableau(i)
ctimpair += 1
End If
Next
For i As Integer = 0 To ctpair - 1
tableau(i) = tabpair(i)
Next
For i As Integer = 0 To ctimpair - 1
tableau(i + ctpair) = tabimpair(i)
Next
Allez à suite.........................................
End Sub
End Module
Console.WriteLine("Tableau réorganisé")
Console.WriteLine("---------------------")
Console.WriteLine("Les entiers pairs")
For i As Integer = 0 To 19
If i = ctpair Then
Console.WriteLine("Les entiers impairs")
End If
Console.WriteLine(tableau(i))
Next
Console.WriteLine("---------------------")
Console.WriteLine("Nombre des entiers pairs: " & ctpair)
Console.WriteLine("Nombre des entiers impairs: " & ctimpair)
