IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

déclaration et indexation des tableaux


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Points : 528
    Points
    528
    Par défaut déclaration et indexation des tableaux
    Bonsoir tout le monde,

    Je suis en train de faire un tuto pour apprendre le VB net, mais j'ai quelques problèmes à comprendre la logique au niveau de l'indexation notamment des tableaux. Voici ce que j'ai dans mon tuto concernant les tableaux :

    En VB, pour un vecteur déclaré avec une
    dimension (N), le premier élément a l’indice 0, le deuxième a l’indice 2, le troisième a l’indice 3, le dernier à l'indice N.

    Syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim NomVecteur(N) As TypeVecteur
    Cette instruction déclare un vecteur NomVecteur de taille N+1.
    Pour accéder au ième élément du vecteur, il faut préciser l’indice entre parenthèses comme suit : , i doit être
    compris dans l’intervalle [0, N].
    C'est pas vraiment très clair et je ne comprends pas la logique de cette indexation.

    -> Déjà Dim NomVecteur(N) ... donne un tableau de taille N+1 et non N .... ---> Ensuite le premier indice est 0 le deuxieme 2, le troisieme 3,..., le Nieme N (même pas d'indice 1 ...)
    -> Finalement pour accéder à une valeur, faut faire NomVecteur(i-1) avec i appartenant a [0,N] donc en gros on peut écrire NomVecteur(-1)...

    (je comprends pas en plus car le premier indice est censé etre 0, le 2eme 2 ... alors qu'avec la méthode pour accéder aux valeurs, c'est -1, 0.... )

    J'éspère que vous pourrez m'éclairer !

    Merci !

  2. #2
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim NomVecteur(N) As TypeVecteur
    Ca crée un table de taille N+1

    Les indices vont de 0 à N
    1er element : NomVecteur(0)
    2eme element : NomVecteur(1)
    etc

  3. #3
    Membre confirmé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Points : 528
    Points
    528
    Par défaut
    Merci beaucoup meziantou !

    Donc en gros ce qui est marqué dans le tuto est faux :p

    Merci en tout cas

    Sinon, peux-ton en VB net écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim TabInitial(1 To 12) As Single
    pour éviter d'avoir à déclarer un tableau de taille 12 avec comme indice 0 à 11 ... ?

    Merci !

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 218
    Points : 28 193
    Points
    28 193
    Par défaut
    Ceci est faux
    dimension (N), le premier élément a l’indice 0, le deuxième a l’indice 2, le troisième a l’indice 3, le dernier à l'indice N.
    C'est
    dimension (N), le premier élément a l’indice 0, le deuxième a l’indice 1, le troisième a l’indice 2, le dernier à l'indice N.


    Sinon, peux-ton en VB net écrire :
    Code :
    Dim TabInitial(1 To 12) As Single
    pour éviter d'avoir à déclarer un tableau de taille 12 avec comme indice 0 à 11 ... ?
    Non, en .Net, l'indice d'un tableau, d'une liste, d'une collection, .... commence obligatoirement à 0
    par contre tu peux écrire Dim TabInitial(0 to 11) as single

  5. #5
    Membre confirmé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Points : 528
    Points
    528
    Par défaut
    Merci beaucoup sevyc64 je comprends mieux

    Je reposterais si j'ai un problème !

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compréhension de l'index des tableaux de String
    Par zooffy dans le forum ASP.NET
    Réponses: 20
    Dernier message: 24/02/2011, 09h40
  2. [OpenOffice][Texte] mettre à jour l'index des tableaux
    Par Invité dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 05/10/2009, 13h32
  3. [MySQL] utilité d'indexation des tableaux
    Par fraisa1985 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 10/07/2008, 13h46
  4. z-index dans des tableaux
    Par mLk92 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 11/12/2007, 17h21
  5. Traitement des tableaux de word avec VBA: balise index
    Par Invité dans le forum VBA Word
    Réponses: 20
    Dernier message: 29/11/2005, 15h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo