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)