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

Pascal Discussion :

Tri shell : problème de décalage


Sujet :

Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 16
    Par défaut Tri shell : problème de décalage
    salut les programmeurs ;
    J'ai un petit problème concernant le tri Shell ;
    voilà tout dabord son code :

    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
    procedure trishell (var t:tab; n:integer ) ;
     var    p,i,j,v: integer;
     begin    
         p:=0;
         while p<= n do    
         p:= 3*p+1;
         while p <> 0 do
          begin
              p:=p div 3;
              for i:= p to n do
               begin
                    v:=t[i];
                    j:=i;
                    while (j > p-1) and (t[j-p] > v ) do
                     begin
                          t[j]:=t[j-p];
                          j:=j-p;
                     end;
                    t[j]:=v;
               end;
          end;
     end;
    et le problème se trouve au niveau de décalage ; c'est à dire au niveau :
    while (j > p-1) and (t[j-p] > v ) do
    cette instruction va nous amener à l'indice zéro (t[0] ) !!!! c'est mon problème ? est alors ! y-a-t-il une solution ?
    une remarque tres importante : si ma remarque concernant cette boucle est dans sa place, alors les livres scolaires (4 ieme SI) est aussi mal rédiger
    car ils comportes tous cette solution ?

    MErci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2006
    Messages : 193
    Par défaut
    Holla
    Le tri shell a été enlevé du programme notamment le tri fusion.
    CIAO

  3. #3
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 16
    Par défaut je n'interresse pas !!!
    Citation Envoyé par WhiteTigerZ Voir le message
    Holla
    Le tri shell a été enlevé du programme notamment le tri fusion.
    CIAO
    quand même ; je doit savoir et pouvoir corriger ses genres d'erreurs ok !

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 89
    Par défaut
    Citation Envoyé par WhiteTigerZ Voir le message
    Holla
    Le tri shell a été enlevé du programme notamment le tri fusion.
    CIAO
    Comment est-ce que tu le sais ?
    Merci.

  5. #5
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    @ katrena99 et WhiteTigerZ plutot que de passer le temps à regler vos histoire des "programmes" ça n'apporte rien au posteur ces genre d'ecrits
    Et j'ajoute ce n'est pas parce que un cours n'est pas ou est dans le programme qu'il ne faut apprendre à faire des exercices portant dessus....
    @+

  6. #6
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 89
    Par défaut
    Citation Envoyé par krachik Voir le message
    @ katrena99 et WhiteTigerZ plutot que de passer le temps à regler vos histoire des "programmes" ça n'apporte rien au posteur ces genre d'ecrits
    Et j'ajoute ce n'est pas parce que un cours n'est pas ou est dans le programme qu'il ne faut apprendre à faire des exercices portant dessus....
    @+
    Merci pour le conseil krachik. Seulement, nous avons beaucoup de matières, vraiment beaucoup. Alors il est important pour nous de savoir ce à quoi il ne faut pas faire attention.

  7. #7
    Futur Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Par défaut
    Citation Envoyé par petit programmeur Voir le message
    salut les programmeurs ;
    J'ai un petit problème concernant le tri Shell ;
    voilà tout dabord son code :

    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
    procedure trishell (var t:tab; n:integer ) ;
     var    p,i,j,v: integer;
     begin    
         p:=0;
         while p<= n do    
         p:= 3*p+1;
         while p <> 0 do
          begin
              p:=p div 3;
              for i:= p to n do
               begin
                    v:=t[i];
                    j:=i;
                    while (j > p-1) and (t[j-p] > v ) do
                     begin
                          t[j]:=t[j-p];
                          j:=j-p;
                     end;
                    t[j]:=v;
               end;
          end;
     end;
    et le problème se trouve au niveau de décalage ; c'est à dire au niveau :

    cette instruction va nous amener à l'indice zéro (t[0] ) !!!! c'est mon problème ? est alors ! y-a-t-il une solution ?
    une remarque tres importante : si ma remarque concernant cette boucle est dans sa place, alors les livres scolaires (4 ieme SI) est aussi mal rédiger
    car ils comportes tous cette solution ?

    MErci d'avance
    il n'y a pas de problème dans ton procédure

  8. #8
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 16
    Par défaut Non je dit bien il y a un problème !!
    Citation Envoyé par benmansouran Voir le message
    il n'y a pas de problème dans ton procédure
    Non Mr Benmansouran !! pour moi, il y a un problème, j'explique encore ;
    au niveau de la boucle :

    while ( (j>p-1) and (t[j-p]) ) do
    t[i] := t[j-p]
    ......
    précisament c'est au niveau de :
    t[j-p]
    ; cette instruction va donner t[0] qui est impossible en Pascal !!

    j'ai besoin d'aide pour comprendre comment se fonctionne cette boucle ?


    Merci d'avance

  9. #9
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 977
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 977
    Par défaut
    Gio,
    Citation Envoyé par petit programmeur Voir le message
    Non Mr Benmansouran !! pour moi, il y a un problème, j'explique encore ;
    au niveau de la boucle :



    précisament c'est au niveau de : ; cette instruction va donner t[0] qui est impossible en Pascal !!:(

    j'ai besoin d'aide pour comprendre comment se fonctionne cette boucle ?


    Merci d'avance
    D'où tires-tu ça ?

    En Pascal, on peut même avoir des indices négatifs, tout dépend de la manière dont on définit le type pour le tableau.

  10. #10
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 16
    Par défaut voila mon vrai problème avec tri shell
    Citation Envoyé par droggo Voir le message
    Gio,

    D'où tires-tu ça ?

    En Pascal, on peut même avoir des indices négatifs, tout dépend de la manière dont on définit le type pour le tableau.
    Au nivau de (while), la comparaison se fait ente t[0] et aux . c'est vrai ou non !
    tandis que la valeur de t[0] ne figure pas dans T !! voila mon vrai problème.
    car T commence dans sa declaration par [1..50] par exp.
    et si vous voulez j'explique comment T[0] ? :

    - On a : i := p (for i:= p to n Do) ; ensuite aux := T[i] ; puis j:= i ; enfin
    on arrive au pble ; c'est lorsque :
    - On a while (j>p-1 and T[j-p]>aux) Do ????? dans ce cas là, je n'interresse pas est ce que turbo Pascal accepte ou non T[0] ; mais quelles la valeur de T[0] ???? voila mon vrai pble !!! et Merci.

  11. #11
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 977
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 977
    Par défaut
    Gio,
    Citation Envoyé par petit programmeur Voir le message
    Au nivau de (while), la comparaison se fait ente t[0] et aux . c'est vrai ou non !
    tandis que la valeur de t[0] ne figure pas dans T !! voila mon vrai problème.
    car T commence dans sa declaration par [1..50] par exp.
    et si vous voulez j'explique comment T[0] ? :

    - On a : i := p (for i:= p to n Do) ; ensuite aux := T[i] ; puis j:= i ; enfin
    on arrive au pble ; c'est lorsque :
    - On a while (j>p-1 and T[j-p]>aux) Do ????? dans ce cas là, je n'interresse pas est ce que turbo Pascal accepte ou non T[0] ; mais quelles la valeur de T[0] ???? voila mon vrai pble !!! et Merci.
    Je répondais à l'affirmation

    cette instruction va donner t[0] qui est impossible en Pascal !!

    Qui est parfaitement fausse sans autre information, et je précisais que cela dépendait de la définition du type pour le tableau, que nous ne trouvions nulle part jusqu'à ce que tu viennes nous le donner.

    Ma boule de cristal est en panne (pour deviner cette définition), mais cela ne m'empêche pas de répondre à ce genre d'affirmation dans le vide : sans information suffisante, elle est fausse. Point.

Discussions similaires

  1. Besoin d'aide : gros problème de décalage
    Par vallica dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 09/06/2006, 15h10
  2. Problème de décalage sur une page
    Par baleiney dans le forum Balisage (X)HTML et validation W3C
    Réponses: 15
    Dernier message: 26/05/2006, 18h54
  3. [CSS]Problème de décalage
    Par arnaud_verlaine dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 30/04/2006, 16h31
  4. Problème de décalage : Wi-Fi ?
    Par Droïde Système7 dans le forum Composants VCL
    Réponses: 19
    Dernier message: 29/11/2005, 10h41
  5. Réponses: 4
    Dernier message: 30/10/2005, 10h13

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