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

Algorithmes et structures de données Discussion :

Tri d'un tableau de coordonnées 2D


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    927
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 927
    Par défaut Tri d'un tableau de coordonnées 2D
    Bonjour,

    Je voudrais trier un tableau de coordonnée :

    (86,5) (87,4) (88,2) (89,1) (88,3) : points un peu mélangés
    qui donne
    (86,5) (87,4) (88,3) (88,2) (89,1) : points qui se collent , peuvent se coller en diagonale.

    Ca ne marche pas , pouvez-vous m'aider ???

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
     program Project1;
     
    {$APPTYPE CONSOLE}
     
     
    uses
      SysUtils;
     
     
      type txy = record
          x,y : word;
      end;
     
    var
      al : array[0..4] of txy;
      nal  :byte;
     
    procedure ranger;
    var fini : boolean;
        n2,n,x1,y1,x2,y2 : integer;
        dx,dy : integer;
        debug,cestbon : boolean;
    label ab;
    begin
      repeat
      ab:;
         fini := true;
          for n := 0 to nal-2 do begin
              x1 := al[n].x;
              y1 := al[n].y;
              x2 := al[n+1].x;
              y2 := al[n+1].y;
              dx := abs(x2-x1);
              dy := abs(y2-y1);
              cestbon := false;
              if (dx<2) and (dy<2) then cestbon := true;
              if (not cestbon) then begin
                  (*al[n].x := x2;
                  al[n].y := y2;
                  al[n+1].x := x1;
                  al[n+1].y := y1;*)
                  debug := false;
                  for n2 := 0 to nal-1 do begin
    //                if ((n)<>n2) and ((n+1)<>n2) then begin
                    if ((n)<>n2)  then begin
                      dx := abs(x1-al[n2].x);
                      dy := abs(y1-al[n2].y);
                      if (dx<2) and (dx<2) then begin
                         x1 := al[n].x;
                         y1 := al[n].y;
                         x2 := al[n2].x;
                         y2 := al[n2].y;
                         al[n].x := x2;
                         al[n].y := y2;
                         al[n2].x := x1;
                         al[n2].y := y1;
                         debug := true;
                         break;
     
                      end;
                    end;
                  end;
                  if (not debug) then
                      debug := debug;
                  fini := false;
                  //goto ab;
     
              end;
     
          end;
      until fini;
    end;
     
     
    begin
      { TODO -oUser -cConsole Main : Insert code here }
      al[0].x := 86;
      al[0].y := 5;
     
      al[1].x := 87;
      al[1].y := 4;
     
       al[2].x := 88;
      al[2].y := 2;
     
       al[3].x := 89;
      al[3].y := 1;
     
       al[4].x := 88;
       al[4].y := 3;
       nal := 5; //nombre de coordonnée
       ranger;
    end.
    merci

  2. #2
    Membre Expert
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Par défaut
    1. Stp corrige les fautes d'orthographe dans ton post original (notamment le titre...)
    2. Comment classes-tu les points ?
    3. As-tu un problème concernant l'algorithme, ou bien concernant son implémentation ? (auquel cas il faut poster dans le forum correspondant au langage de programmation en question)

  3. #3
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    927
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 927
    Par défaut
    Citation Envoyé par Franck Dernoncourt Voir le message
    1. Stp corrige les fautes d'orthographe dans ton post original (notamment le titre...)
    2. Comment classes-tu les points ?
    3. As-tu un problème concernant l'algorithme, ou bien concernant son implémentation ? (auquel cas il faut poster dans le forum correspondant au langage de programmation en question)
    Je classe les points dans l'ordre où ils doivent se coller, il s'agirait donc plutot d'un probleme d'algorithme.

    exemple de points collés
    (1,1) (1,0) (0,0) : droit
    (2,3) (1,2) (0,1) : diagonale , elles sont donc collées

    exemple de points non collés
    (4,4) (8,7) (3,2) : aucun sens

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur R&D en apprentissage statistique
    Inscrit en
    Juin 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D en apprentissage statistique

    Informations forums :
    Inscription : Juin 2009
    Messages : 447
    Par défaut
    Peut-être une explication sur ce que tu entends par "coller" des points et sur ce que tu veux réellement faire serait utile pour la compréhension. Quel est ton critère de tri ?
    Pourquoi as-tu besoin de trier ?

    Relis ton message, en essayant de te mettre dans la peau de quelqu'un qui n'a aucune idée a priori de ce que tu veux faire et tu te rendras sans doute compte qu'il n'est pas très clair...

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Aux vues des exemples, je pense que "collés" signifie "connexes" (8 pixels).

    Le PO chercherait donc a trier les points 2D afin qu'ils se suivent le long d'une ligne :

    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    927
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 927
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Aux vues des exemples, je pense que "collés" signifie "connexes" (8 pixels).

    Le PO chercherait donc a trier les points 2D afin qu'ils se suivent le long d'une ligne :

    oui c'est exactement ce que je souhaite.

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

Discussions similaires

  1. Tri d'un tableau en 2D
    Par sniperseb dans le forum C
    Réponses: 4
    Dernier message: 05/01/2006, 16h33
  2. Réponses: 6
    Dernier message: 16/09/2005, 10h30
  3. tri d'un tableau à 2 dimensions
    Par dede92 dans le forum C
    Réponses: 4
    Dernier message: 19/02/2005, 18h29
  4. [langage] Probleme de tri d'un tableau de tableau
    Par Ludo167 dans le forum Langage
    Réponses: 1
    Dernier message: 25/08/2004, 10h32
  5. [] Tri d'un tableau par ordre alphabétique
    Par cafeine dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/09/2002, 08h43

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