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 :

probléme avec un tableau


Sujet :

C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut probléme avec un tableau
    bonsoir tout le monde voila je travaille avec un tableau qui reçoi dans sa premiére et 2éme colonne des noms de villes et dans la troisiéme des entier sachant que le tableau reçoi ces valeurs d'une table paradox.
    mon probléme est le suivant je dois au méme temps affecter ces valeurs de la table au tableau et les trier ds le sens décroissant avec permutation des villes biensur voici mon code ya pas d'erreur mais il me donne en sortie n'importe quoi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    int l;
    l=Potentiel->TablePotentiel->RecordCount;
    Potentiel->TablePotentiel->First();
    for (i=1;i<=l;i++)
    {
    VOL->E->Cells[0][0]=("Vol1");
    VOL->E->Cells[1][0]=("Vol2");
    VOL->E->Cells[2][0]=("Potentiel");
    VOL->E->Cells[0][i]=Potentiel->TablePotentiel->FieldByName("VOL 1")->AsString;
    VOL->E->Cells[1][i]=Potentiel->TablePotentiel->FieldByName("VOL 2")->AsString;
    VOL->E->Cells[2][i]=Potentiel->TablePotentiel->FieldByName("POTENTIEL")->AsString;
    Potentiel->TablePotentiel->MoveBy(+1);
     
    }
    int j;
    for (i=1;i<=l-1;i++)
     {
         for  ( j=i+1;j<=l;j++)
         {
           if (VOL->E->Cells[2][i]<VOL->E->Cells[2][j])
           {
             VOL->X->Text=VOL->E->Cells[2][i] ;
             VOL->E->Cells[2][i]=VOL->E->Cells[2][j] ;
             VOL->E->Cells[2][j]=VOL->X->Text;
             VOL->Y->Text=VOL->E->Cells[1][i];
             VOL->E->Cells[1][i]=VOL->E->Cells[1][j] ;
             VOL->E->Cells[1][j]=VOL->Y->Text;
             VOL->Z->Text=VOL->E->Cells[0][i];
             VOL->E->Cells[0][i]=VOL->E->Cells[0][j] ;
             VOL->E->Cells[0][j]=VOL->Z->Text;
            }
         }
     
      }
    merci de me répondre vous me sauvriez la vie

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    Salut,

    Tu devrais envisager, soit de créer une structure reprenant les trois données, soit un tuple correspondant.

    En créant les foncteurs ad-hoc, tu aurais donc beaucoup plus facile à trier le tout

    Par exemple, tu pourrais créer une structure proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    struct Data
    {
        std::string ville1;
        std::string ville2;
        int value;
        /* nous pourrions prévoir un constructeur : */
        Data(std::string const & v1, std::string const & v2, int v):
             ville1(v1),ville2(v2),value(v){}
    };
    Si tu veux avoir la possibilité de trier tes données selon les trois informations, tu pourrais alors envisager de créer les foncteurs suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    struct lessByTown1
    {
        bool operator(Data const & d1, Data const & d2)
        {
            return d1.ville1 <d2.ville1;
        }
    };
    struct lessByTown2
    {
        bool operator(Data const & d1, Data const & d2)
        {
            return d1.ville2 <d2.ville2;
        }
    };
    struct lessByValue
    {
        bool operator(Data const & d1, Data const & d2)
        {
            return d1.value < d2.value;
        }
    };
    Par la suite, tu peux gérer assez facilement un vecteur de Data, et utiliser l'algorithme sort pour trier les éléments:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    int main()
    {
        /* un tableau de données */
        std::vector<Data> tab;
       /* on le remplit */
       tab.push_back("Bruxelles","Anvers",3);
       tab.push_back("Liege","Paris", 5);
       tab.push_back("Londres","Dackar", 6);
       /* on peut trier les données sur "ville1" */
       std::sort(tab.begin(),tab.end(),lessByTown1());
       /* ou sur "ville2" */
       std::sort(tab.begin(),tab.end(),lessByTown2());
       /* ou, enfin, selon la valeur */
       std::sort(tab.begin(),tab.end(), lessByValue());
    }
    Comme ce seront carrément les structure Data qui seront triées, si tu provoques l'affichage de celles-ci, tu verra qu'elles sont bel et bien triées selon les spécifications
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre habitué Avatar de nowahn
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 84
    Points : 150
    Points
    150
    Par défaut
    Bonjour,

    Citation Envoyé par koala01
    [...] créer les foncteurs suivants:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [...]
        bool operator(Data const & d1, Data const & d2)
    [...]
    Je crois qu’il manque une paire de parenthèses après operator :
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [...]
        bool operator()(Data const & d1, Data const & d2)
    [...]
    Comme tu le dis, je crois que tu es 'achement fatigué, j’espère que tes vacances sont encore devant toi

  4. #4
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    Effectivement, il manque une paire de parenthèses

    Je reprend donc: créer les foncteurs suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    struct lessByTown1
    {
        bool operator()(Data const & d1, Data const & d2)
        {
            return d1.ville1 <d2.ville1;
        }
    };
    struct lessByTown2
    {
        bool operator()(Data const & d1, Data const & d2)
        {
            return d1.ville2 <d2.ville2;
        }
    };
    struct lessByValue
    {
        bool operator()(Data const & d1, Data const & d2)
        {
            return d1.value < d2.value;
        }
    };
    Je suis 'achement fatigué, mais faut dire que j'ai eu une quinzaine de ouf

    Quant aux vacances, je sais pas trop ce que c'est... La page du dictionnaire où le mot apparait a été arrachée
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Citation Envoyé par sabine-me Voir le message
    ya pas d'erreur mais il me donne en sortie n'importe quoi.
    J'aime beaucoup comme phrase : il n'y a pas d'erreur mais ça ne marche pas

    Plus sérieusement, qu'entends tu par n'importe quoi en sortie ? Des données valides mais non triées ou des données farfelues ?


    Ceci dit, si tu peux l'approche de Koala est probablement la plus lisible.

  6. #6
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    merci pour vos réponses je vai les essayer . . . ben quant a la sortie quand je met mon ancien code il me donne un tableau semi trier a sa façon et je n'arrive pas a cerner ce qu'il fait exactement
    merci pour votre aide je vais essayer et je vous tien au courant

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    re bonsoir j'ai essayer ta procedure mais il me dis "string is not a member of std"
    chez pas je ne travaille jamais avec des fonctions j'oppére directement sur mes donner je ne sais pas peut étre que g mal placer les structures merci de m'aider encore une fois

  8. #8
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    Cela a quelque chose de normal:
    1. Pour pouvoir utiliser la classe string, il faut inclure le fichier d'en-tête <string>
    2. Pour pouvoir utiliser la classe vector, il faut inclure le fichier d'en-tête <vector>
    3. Pour pouvoir utiliser la fonction sort, il faut, enfin, inclure le fichier d'en-tête <algorithm>
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  9. #9
    jmv
    jmv est déconnecté
    Membre confirmé Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Points : 603
    Points
    603
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       tab.push_back("Bruxelles","Anvers",3);
    Ne serait-ce pas plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       tab.push_back(Data("Bruxelles","Anvers",3));

  10. #10
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    merci KOALA1 ça a marcher pr les include mais je t'explique un peu ce que j'ai fais tu m'en dira pourquoi j'ai toujours des messages d'erreurs de type syntaxe et fause terminaison:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    struct Data
    {
     { std::string Vol1;
      std::string Vol2;
      int Potentiel;
      Data(std::string const & v1, std::string const & v2, int v):
             Vol1(v1),Vol2(v2),Potentiel(v){}
      }
      struct LessByTown
       {
          bool operator()
          (Data const & d1,Data const & d2)
          {
           return d1.Potentiel<d2.Potentiel;
          }
       }
    };
    j'ai mis ça en haut de la form sur laquel je travaille et ça ne marche pas il me dit " Declaration terminated incorrectly"
    merci de m'aider je débute en C++ avec une grosse application j'ai pas trop le choix merciiiiiiiiiiiiiiiiiiiii

  11. #11
    Membre actif
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    189
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 189
    Points : 213
    Points
    213
    Par défaut
    Il manque un ; après l'avant dernière '}'.

  12. #12
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    merci l'ami la maintenant j'ai un autre probléme dés que j'essaye d'utilisé la fonction comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::sort(VOL->E->Beging(),VOL->E->End(),lessByTown1());
    il m'écrit que Beging ne fait pas parti de Tstringrid je ne comprend pas comment je pourrais utilisé ma fonction ou bien ou l'utilisé
    merci de m'aider encore

  13. #13
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    Au hasard (sans avoir aucune définition de structure sous les yeux, sans savoir de quoi on parle), en remplaçant Beging par Begin?
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  14. #14
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Goten Voir le message
    Au hasard (sans avoir aucune définition de structure sous les yeux, sans savoir de quoi on parle), en remplaçant Beging par Begin?
    ben peut étre qu'il faudra relire parceque il renvoi le méme message d'erreur merci d'avoir essayé

  15. #15
    zul
    zul est déconnecté
    Membre éclairé Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Points : 699
    Points
    699
    Par défaut
    On va jouer aux devinettes, vu qu'on a pas un ensemble de code compilable.

    C'est probablement begin() et end() pas Begin et End (la casse est importante en C++). Si E est un vector, il n'y a probablement pas besoin d'utiliser un pointeur dessus.

  16. #16
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    mais si je ne pointe pas vers le vercteur il ne sais pas vers ou allé . . . ni ou affecté la sortie de la fonction.
    je sais que l'écriture tel que j'ai mise est fausse mais j'arrive pas a l'écrire voila
    merci de votre aideeeeeeeeeeeeee

  17. #17
    zul
    zul est déconnecté
    Membre éclairé Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Points : 699
    Points
    699
    Par défaut
    Il faut que tu nous montre ton code, nous ne pouvons pas t'aider plus sans savoir le code que tu utilises (la définition de tes structures de données entre autre). Nous ne sommes pas encore devin.

  18. #18
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    ben j'ai mis tout ça en haut . . . ya les codes et toute la structure du moin sla partie qui me pose probléme voila

Discussions similaires

  1. Réponses: 5
    Dernier message: 24/05/2006, 08h59
  2. Problème avec redimensionnement tableau
    Par PoZZyX dans le forum Réseau
    Réponses: 18
    Dernier message: 20/04/2006, 15h46
  3. Problème avec un tableau et saut de ligne
    Par ero-sennin dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 08/03/2006, 18h48
  4. Problème avec un tableau de tableau
    Par SubZero2 dans le forum Langage
    Réponses: 4
    Dernier message: 07/12/2005, 15h25
  5. problème avec un tableau dans un insert ...
    Par vbcasimir dans le forum Langage
    Réponses: 3
    Dernier message: 02/11/2005, 14h31

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