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

 C++ Discussion :

Valeur sentinelle dans un tableau c++


Sujet :

C++

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Par défaut Valeur sentinelle dans un tableau c++
    Hello ,

    Je dois utiliser une valeur sentinelle dans mes exercices de tableau en c++, mais je ne comprends pas si quand je trouve ma valeur sentinelle, je peux écrire par-dessus, ou je dois la garder dans mon tableau pour ne pas dépasser la taille du tableau.

    J'initialise mon tableau au départ avec des -1 partout, est-il a une taille de 10.

    Merci si qqun peut m'expliquer ce détail.

    à bientôt

  2. #2
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Bonjour et bienvenue sur le forum

    Ta valeur sentinelle indique que tu es à la fin du tableau. Si tu écris dessus, c'est comme si tu ajoutes un élément à ton tableau et tu dois être sur qu'il y a une valeur sentinelle après celle que tu modifies. Si tu as remplit ton tableau avec des -1, ça sera la cas sauf pour i = 10. Si tu testes systématiquement que tu ne dépasses pas la taille du tableau (10), tu perds l'intérêt de la valeur sentinelle.
    Donc le mieux est d'utiliser des fonctions différentes pour lire (en const), pour écrire sans redimenssioner et pour redimenssionner (donc bien séparer l'écriture et le resize)

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Par défaut
    Merci pour ta réponse.

    Si j'ai bien compris, la sentinelle me sert a connaitre la fin du tableau. Quand mon test trouve la valeur sentinelle je sort de ma boucle de parcours, pour par exemple signaler à l'utilisateur qu'il est en fin de tableau, pour éviter d'écrire en dehors et de ne pas générer une erreur de compile.

    Et dans le cas ou je dois remplir un tableau [5] avec des valeurs int positive, il faut que j'intègre une valeur sentinelle (-1) à la fin de chaque série d'enregistrement (1,3,5,-1), comme ça dans un test je peux écrire dans le tableau à partir de la pour completer le tableau.

  4. #4
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Je suppose (j'espère) que c'est pour apprendre, parce qu'en pratique, il faut mieux utiliser un std::vector (surtout quand on débute)

    Citation Envoyé par labase Voir le message
    de ne pas générer une erreur de compile
    Uniquement à l'exécution, ça produit pas d'erreur de compilation

    Citation Envoyé par labase Voir le message
    Merci pour ta réponse.

    Si j'ai bien compris, la sentinelle me sert a connaitre la fin du tableau. Quand mon test trouve la valeur sentinelle je sort de ma boucle de parcours, pour par exemple signaler à l'utilisateur qu'il est en fin de tableau, pour éviter d'écrire en dehors et de ne pas générer une erreur de compile.

    Et dans le cas ou je dois remplir un tableau [5] avec des valeurs int positive, il faut que j'intègre une valeur sentinelle (-1) à la fin de chaque série d'enregistrement (1,3,5,-1), comme ça dans un test je peux écrire dans le tableau à partir de la pour completer le tableau.
    exactement.
    Cette technique est utilisée par exemple pour les chaînes de caractères en C qui se terminent pas le caractère '\0'

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Par défaut
    Exactement, j'ai quelques exercices de traitement de tableau en C++, qui demande cette sentinelle, au lieu d'une variable nbElement.

    Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/04/2007, 21h57
  2. Réponses: 3
    Dernier message: 01/03/2007, 16h26
  3. [Tableaux] Valeur unique dans un tableau
    Par glsn dans le forum Langage
    Réponses: 6
    Dernier message: 06/12/2006, 11h18
  4. recherche de valeur identique dans un tableau
    Par jean tof dans le forum Langage
    Réponses: 9
    Dernier message: 20/06/2006, 13h33
  5. 2 valeurs distincts dans un tableau à 2 dimensions...
    Par toyyo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/08/2005, 16h00

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