[LCP] interro 2 2010-2011

Voir le sujet précédent Voir le sujet suivant Aller en bas

[LCP] interro 2 2010-2011

Message  I.AM.BACK le Sam 24 Déc 2011, 14:57

Bonjour,
Concernant l'étape 3 de l'interro, après avoir trié les journées, je me retrouve comme attendu avec un vecteur trié, mais je ne sais pas pourquoi toutes les données sont décallées...quand j'affiche son contenu j'obtiens "00/00 0.0 0.0 0.0 0" pour la première valeur, et la dernière c'est les données du 12/30, et seulement si j'affiche en plus le contenue de tu tableau qui suit la dernière (je sors donc de 1 de la borne supérieur du vecteur), les données du 12/31 sont affiché. (12/31 se trouve donc à l'indice 365 au lieu de 364)

J'ai donc deux questions
1) Comment j'arrive à afficher "00/00 0.0 0.0 0.0 0" ? Car dans mon constructeur, normalement, aucune Journee ne peut être crée avec des valeurs inférieur à 1 pour le jour et le mois .....sinon ça fait exit(1), et j'ai testé manuellement et ça fait bien exit(1) (ça affiche aussi la "00/00 0.0 0.0 0.0 0" pour tout les indices < 1 et > 366)

2) Et, le plus important, pourquoi j'ai ce décllage dans mon vecteur ?

plus d'info:
Spoiler:
lorsque j'affiche le contenu de tableau avant le tri, "00/00 0.0 0.0 0.0 0" n'apparait nulle part, toutes les Journée sont donc bien comrprises dans les bornes, c'est seulement après le tri que ce décallage survient, voici donc comment je fais le tri:
Code:
void swapJournee(Journee &a, Journee &b){
   Journee tmp = a;
   a = b;
   b = tmp;
}

void triTabJournee (vector<Journee> &tab){
   int iBulle, j;
   int nbElements = tab.size();

   for (iBulle=0; iBulle<nbElements-1; iBulle++){
      for (j=nbElements-1; j>=iBulle; j--){
         if (tab[j].getMois() > tab[j+1].getMois()){
            swapJournee(tab[j], tab[j+1]);
         } else if (tab[j].getMois() == tab[j+1].getMois()){
            if (tab[j].getJour() > tab[j+1].getJour()){
               swapJournee(tab[j], tab[j+1]);
            }
         }
      }
   }
}
Merci d'avance et Bonne fêtes à tous !

I.AM.BACK

Nombre de messages : 56
Age : 25
Prénom : Victor
Statut : étudiant indu 2ème année
Localisation : http://en.wikipedia.org/wiki/Armenia
Date d'inscription : 21/07/2011

Revenir en haut Aller en bas

Re: [LCP] interro 2 2010-2011

Message  smb le Sam 24 Déc 2011, 16:32

Concentrons-nous sur la partie de code qui pose problème :
...
for (iBulle=0; iBulle<nbElements-1; iBulle++)
{
for (j=nbElements-1; j>=iBulle; j--)
{
if (tab[j].getMois() > tab[j+1].getMois()){
...

... tu initialises j à la dernière valeur d'indice du tableau, mais alors que vaut tab[j+1] ... Question

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: [LCP] interro 2 2010-2011

Message  I.AM.BACK le Sam 24 Déc 2011, 16:48

smb a écrit:Concentrons-nous sur la partie de code qui pose problème :
...
for (iBulle=0; iBulle<nbElements-1; iBulle++)
{
for (j=nbElements-1; j>=iBulle; j--)
{
if (tab[j].getMois() > tab[j+1].getMois()){
...

... tu initialises j à la dernière valeur d'indice du tableau, mais alors que vaut tab[j+1] ... Question

AHHH cheers cheers MERCI

I.AM.BACK

Nombre de messages : 56
Age : 25
Prénom : Victor
Statut : étudiant indu 2ème année
Localisation : http://en.wikipedia.org/wiki/Armenia
Date d'inscription : 21/07/2011

Revenir en haut Aller en bas

Re: [LCP] interro 2 2010-2011

Message  Contenu sponsorisé Aujourd'hui à 01:12


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum