Comment afficher les tableaux dans la console

Résolu
Utilisateur anonyme - 31 mars 2017 à 17:58
 Utilisateur anonyme - 6 avril 2017 à 23:02
Bonjour, je suis arrivé au chapitre des tableaux je voulais savoir comment afficher les tableaux

car quand je fais avec ce code

Dim variable1(3, 4) As Integer

variable1(0, 2) = 10
variable1(0, 1) = 2

Console.WriteLine(variable1)



ça m'affiche dans la console: System.Int32[,]

car dans le cour je trouve pas comment afficher les tableaux
https://openclassrooms.com/courses/apprenez-a-programmer-en-vb-net/les-tableaux-21

merci :)

3 réponses

Whismeril
Messages postés
17333
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
596
31 mars 2017 à 18:55
Bonjour

il faut que tu itères chaque "cellule" de ton tableau et soit tu les mets les une après les autres,

soit tu construis des lignes string.Format, ou stringBuilder ou encore string.Join (mais là un tableau de tableau serait plus adapté, dans ton cas il faudra remplir un tableau intermédiaire)
0
Utilisateur anonyme
31 mars 2017 à 21:25
ok sauf que je débute en vb du coup tes explications je les connais pas encore, si tu pouvais préciser un peu plus ? ;)
0
Whismeril
Messages postés
17333
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
596
31 mars 2017 à 22:19
Quand tu fais une boucle (for foreach while etc) chaque passage dans cette boucle s'appelle une itération.
Comme en maths, pour les calculs itératifs.

Donc à toi de choisir une boucle ou combinaison de boucles pour aller lire chaque enregistrement et mettre tout en forme en utilisant l'une ou l'autre des options que je t'ai proposées.

Si tu veux des infos sur ces options, commence par msdn.
0
Utilisateur anonyme
1 avril 2017 à 13:48
ok mais je sais pas comment afficher au moins une valeur d'un tableau car dans le cour j'ai pas trouvé c'est pour ça que je te demande si c'est comme ça


console.writeline(tableau)



comme pour afficher une simple variable ?

il y a aussi ce passage là que j'ai pas trop compris

"L'instruction MonTableau.Length renvoie la taille du tableau"

"renvoie la taille du tableau " c'est à dire ?

après je pense qu'une fois que je saurais comment afficher un tableau ou plusieurs tableaux un par un j'aurais plus qu'à regarder le reste du cours pour savoir comment afficher toutes les valeurs d'un coup avec une boucles
0
Whismeril
Messages postés
17333
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
596
1 avril 2017 à 18:20
Oui, pas de chance t'as pas choisi le meilleur cours qui soit.

Celui là est mieux.
http://plasserre.developpez.com/cours/vb-net/

"renvoie la taille du tableau " c'est à dire ?

C'est le nombre d'enregistrements que peut contenir le tableau.

Lire une valeur est l'inverse d'affecter une valeur
variable1(0, 2) = 10
'lecture
Dim toto as Integer = variable1(0, 2)
0
Utilisateur anonyme > Whismeril
Messages postés
17333
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022

1 avril 2017 à 19:22
mdr

j'avais regarder celui là déjà avant mais pour l'instant openclassroom me vas c'est juste que je bloque sur les tableaux car je trouve qu'il manque pas mal d'explications ;)

et ça sert a quoi de renvoyer la taille du tableau?

donc si je fais

dim variable1(0, 2) as integer

variable1(0, 2) = 10

dim toto as integer = variable1(0, 2)

console.WriteLine(toto)


c'est bon ? ta juste mis le tableau dans une variable intermédiaire ?

dans le cour il y a ça

'Remplissage du tableau de nombres aléatoires
For i As Integer = 0 To MonTableau.Length - 1
MonTableau(i) = Rnd(1) * 10
Next


pourquoi dans MonTableau il y a le (i) ? et que veux dire le Rnd(i) * 10 ??
0
Whismeril
Messages postés
17333
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
596 > Utilisateur anonyme
Modifié le 1 avril 2017 à 19:40
je trouve qu'il manque pas mal d'explications ;)

comme je te l'ai dit, c'est pas le meilleurs cours qui soit....

ta juste mis le tableau dans une variable intermédiaire ?

non j'ai mis un élément du tableau dans une variable intermédiaire.
Mais ceci fonctionne aussi
console.WriteLine(variable1(0, 2))


ça sert a quoi de renvoyer la taille du tableau?

il est assez rare de connaitre à l'avance la taille d'un tableau, car majoritairement, les tableaux viennent d'ailleurs (autre partie de ton code, autre programme, port COM, réseau, etc...)

Le i dans une boucle For est la variable d'itération, dans ton exemple "on compte" de 0 à la taille de ton tableau - 1, on mets ce "décompte" dans i et on fait quelque chose avec i.


que veux dire le Rnd(i)
mon premier réflexe est de te renvoyer vers MSDN, mais pour le coup, comme ce code n'est pas du VB.Net mais du VB6 importé (voir cet article), je te réponds cherche Random sur MSDN.
0
Utilisateur anonyme > Whismeril
Messages postés
17333
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022

2 avril 2017 à 13:30
ok ok , je voulais dire plutôt pourquoi dans

MonTableau(i)

il y a
(i)
en argument ?

Ok donc Rnd c'est une fonction de génération de nombres apparemment
pseudo-aléatoires , je suppose que Rnd et une abréviation ? , du coup le 1 dans
Rnd(1)
et le
* 10
ça sert à quoi?
0
CGSI3
Messages postés
416
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
1 avril 2017 à 11:27
Bonjour hixale,

Le code que je te propose est surement un peu trop compliqué pour toi si tu débute, mais si tu veux comprendre les rouages du langage vb.net, tu aura alors de quoi travailler et décortiquer.

Ce code n'est pas volontairement optimisé pour te montrer aussi comment utiliser les LIST.

Je fabrique une fonction permettant de transformer un tableau en String :

    ''' <summary>
''' ("=", ";", "{", "}") ==> "{a=1};{b=2};{c=3}"
''' </summary>
''' <remarks> </remarks>
Public Function ToStringJoin(ByVal DAT As Array, Optional ByVal Separator As String = "=", Optional ByVal Separator2 As String = ";", Optional ByVal Deb As String = "<", Optional ByVal Fin As String = ">") As String
Dim retour As String = ""
For cpt = 0 To DAT.GetLength(0) - 1
Dim P As New List(Of String)
For cp2 As Integer = DAT.GetLowerBound(1) To DAT.GetUpperBound(1)
P.Add(DAT(cpt, cp2).ToString)
Next
retour = retour & Deb & String.Join(Separator, P.ToArray) & Fin
If cpt < DAT.GetLength(0) - 1 Then retour = retour & Separator2
Next
Return retour
End Function


ensuite j'affiche sur la console en utilisant des paramètres

Console.WriteLine(ToStringJoin(Variable1, ":", Environment.NewLine, "{", "}"))


Bonne Prog
CGSI





--
0
Whismeril
Messages postés
17333
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
596
Modifié le 1 avril 2017 à 12:35
Salut

pour son cas, y'a plus simple, mais ton code a l'avantage d'être générique.

Cependant, j'aurais aimé qu'il tente un truc de lui même avant qu'on lui propose une correction ou d'autres options.
0
Utilisateur anonyme
1 avril 2017 à 13:53
salut , effectivement c'est trop compliqué pour moi pour le moment lol

je connais pas encore se que tu appel LIST mais en tout cas dès que je saurais de quoi il sagit j'essayerai de décortiquer ton code , Bon courage à toi pour ta Fonction ;)
0