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

Turbo Pascal Discussion :

Tri d'un fichier


Sujet :

Turbo Pascal

  1. #1
    Membre actif
    Inscrit en
    Mai 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 32
    Par défaut Tri d'un fichier
    Salut tt le monde
    je suis nouveau sur le forum et j'ai une chose trés urgente a faire ,c'est le trie d'un fichier , est ce que vous pouvez m'aider Svp ??!! c'est trés urgent , merci d'avance .

  2. #2
    Membre expérimenté Avatar de Ultima
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 223
    Par défaut
    Bonjour,
    Bienvenu sur le forum et pour commencer pars voir les règlements du forum car visiblement tu ne les as pas lu.
    Ensuite,
    Je doute très sérieusement que quelqu'un de sérieux t'aide sans savoir exactement à quoi correspond ton problème.
    Je te conseil donc très vivement de donner un exemple: ce que tu as déjà réalisé comme algorithme ou comme code.
    Si tu n'as pas encore entamé ces démarche, je te conseil de le faire et de préciser les structures de données avec lesquelles tu veux travailler.
    Bon courage.

  3. #3
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 969
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 969
    Par défaut
    Jan,

    +1 sur Ultima,

    et j'ajoute :

    Les urgences, c'est à l'hôpital. Ici, tout le monde est dans la même file, personne n'est plus important que les autres

  4. #4
    Membre actif
    Inscrit en
    Mai 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 32
    Par défaut
    Merci pour vos conseils.
    Bain il faut que je trie un fichier d'enregistrement (l'enregistrement contient des phrases avec la longueur de chaque phrase); et je dois le trier sans passer par un vecteur (je veux dire j'ai pas le droit d'utiliser un tableau pour le tri), merci d'avance pour votre aide

  5. #5
    Membre expérimenté Avatar de Ultima
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 223
    Par défaut
    Bonsoir,
    Excuse moi mais tu ne fais pas énormément avancer les choses là.
    Pour trier quelque chose, il faut qu’on sache exactement ce que c’est ;
    Tu parle d’enregistrements :
    combien d’éléments y a-t-il dans chaque enregistrement,
    quels sont les types de ces éléments,
    quel est la longueur de tes chaines de caractères,

    Le plus simple (comme on le répète tout le temps), c’est de mettre un algo ou un code qui illustre ce que tu veux faire.

  6. #6
    Membre actif
    Inscrit en
    Mai 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 32
    Par défaut
    le voilà:
    http://img341.imageshack.us/img341/2406/billelzj8.jpg

    Moi je cherche a faire la 10 question (de trie) car j'ai deja fait les autres .

  7. #7
    Membre expérimenté Avatar de Ultima
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 223
    Par défaut
    Bonjour,
    Très intéressant tous ça mais qu'est ce que tu as déjà fait ?
    Sur quelle partie de l'exercice désires tu de l'aide ?

    Une chose est sûre, c'est que personne n'est sensé faire ton travail à ta place.
    (ce n'est d'ailleurs pas le but du forum).

  8. #8
    Membre actif
    Inscrit en
    Mai 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 32
    Par défaut
    Citation Envoyé par Ultima
    Bonjour,
    Très intéressant tous ça mais qu'est ce que tu as déjà fait ?
    Sur quelle partie de l'exercice désires tu de l'aide ?
    Citation Envoyé par The Bronx 05
    Moi je cherche a faire la 10 question (de trie) car j'ai deja fait les autres .
    j'ai dis je veux faire la 10 eme question !!! car j'ai fini tout les autres !!

    Citation Envoyé par Ultima
    Une chose est sûre, c'est que personne n'est sensé faire ton travail à ta place.
    (ce n'est d'ailleurs pas le but du forum).
    A ce que je sache , j'ai pas demander a se que quelqu'un fasse mon travail , j'ai seulement demander un peut d'aider pour faire le trie (la methode ,ou la façon de le faire) , et c'est toi meme qui m'a demander de donner plus d'info , alors j'ai mis le sujet , mais si vous voulez pas m'aider c'est pas grave !!! a+

  9. #9
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 969
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 969
    Par défaut
    Hoy,
    Citation Envoyé par The Bronx 05
    A ce que je sache , j'ai pas demander a se que quelqu'un fasse mon travail , j'ai seulement demander un peut d'aider pour faire le trie (la methode ,ou la façon de le faire) , et c'est toi meme qui m'a demander de donner plus d'info , alors j'ai mis le sujet , mais si vous voulez pas m'aider c'est pas grave !!! a+
    Plus d'info de ce genre, ça ne sert à rien : on avait bien compris que tu voulais trier un fichier.

    Si on t'a donné cet exercice à faire, c'est que tu as eu un cours te donnant au moins une manière de faire un tri.
    Donc tu réfléchis dessus, tu commences au moins à écrire la base de ton programme, tu nous montres ce que tu as fait, et tu nous dit où tu bloques.

    Dans ces conditions, peut-être obtiendras-tu de l'aide , mais, comme te l'a dit Ultima, personne ici ne fera ton travail à ta place.

  10. #10
    Membre expérimenté Avatar de Ultima
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 223
    Par défaut
    Salut,
    Citation Envoyé par The Bronx 05
    j'ai seulement demander un peut d'aider pour faire le trie
    Pour l'algorithme de tri, il y en a plusieurs, alors voici un lien pour que tu puisses te faire une idée et en choisir un. lien
    Personnellement, mon algorithme préféré c’est celui du tri à bulle.
    Si tu rencontres des difficultés, ou si tu ne comprends pas quelque chose, n'hésite pas à nous demander.
    (mais n'oubli pas, il faut être précis).

  11. #11
    Membre actif
    Inscrit en
    Mai 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 32
    Par défaut
    Merci bk pour votre aide les amis

  12. #12
    Membre confirmé Avatar de adivinenza
    Inscrit en
    Juin 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 91
    Par défaut
    excusez moi peut etre de vous fatiguer encore, mais les exemples de tri donné sont fait avec des tableaux alors pour le cas de fichiers d'enregistrement, ca m'a l'air de pas marcher

  13. #13
    Membre confirmé Avatar de Transgarp
    Profil pro
    Inscrit en
    Février 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 99
    Par défaut
    Dans mon cas et après une multitude de tests, c'est le QuickSort mon tri préféré que ce soit par tableau ou par fichiers.

  14. #14
    Membre confirmé Avatar de adivinenza
    Inscrit en
    Juin 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 91
    Par défaut
    tu pourrais me le montrer du moins la version fichiers?

  15. #15
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 969
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 969
    Par défaut
    Foa,
    Citation Envoyé par adivinenza Voir le message
    tu pourrais me le montrer du moins la version fichiers?
    C'est comme avec un tableau, en remplaçant les accès dans un tableau avec des indices par des accès dans le fichier avec ces mêmes indices, mais avec des Seek, Write, Read...
    pas de difficulté, en principe

  16. #16
    Membre confirmé Avatar de adivinenza
    Inscrit en
    Juin 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 91
    Par défaut
    en principe, mais mon probleme reside au niveau du tri des chaines de caracteres contenu dans le fichier.
    comme je suis pas a la maison je vous enverez le code que j'ai fait plus tard

  17. #17
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 969
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 969
    Par défaut
    Hoe,

    Eh bien, tu fais comme je l'ai écrit plus haut, comme pour un tableau (à condition que ce soit un fichier d'enregistrements, pas un fichier type Text), ou, alternative, tu charges le fichier dans un tableau, tu tries le tableau, et tu écris le résultat dans le fichier.

  18. #18
    Membre confirmé Avatar de adivinenza
    Inscrit en
    Juin 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 91
    Par défaut
    ah c'est ca, en fait moi je voulais pas charger le fichier dans un tableau et ca marche vraiment pas facilement Merci je vais tester

  19. #19
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 969
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 969
    Par défaut
    Joe,
    Citation Envoyé par adivinenza Voir le message
    ah c'est ca, en fait moi je voulais pas charger le fichier dans un tableau et ca marche vraiment pas facilement Merci je vais tester
    Je n'ai pas dit qu'il fallait charger le fichier dans un tableau, mais que c'était une alternative au travail direct dans le fichier.

    Travailler directement dans le fichier ne change pas le principe du tri.

    Simplement, si pour trier une tableau tu as par exemple besoin d'échanger 2 valeurs (disons des Integer, pour simplifier), tu fais comme ceci :
    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
     
    { la procédure qui fait l'échange }
    procedure SwapIntegers(Var a,b : Integer);
    Var
      temp : Integer;
    Begin
      temp := a;
      a := b;
      b := temp;
    End;
     
    ...
     
    { t est le tableau, i, j sont les cases à échanger }
     
      SwapIntegers (t[i],t[j]);
    OU (pour être plus proche de l'exemple pour travailler dans le fichier)

    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
     
    { la procédure qui fait l'échange
      tab est le tableau, i et j sont les indices des cases à échanger }
     
    procedure SwapIntegers_2(Var tab : tableau; i,j : Integer);
    Var
      temp : Integer;
    Begin
      temp := tab[i];
      tab[i] := tab[j]
      tab[j] := temp;
    End;
     
    ...
     
    { t est le tableau, i, j sont les cases à échanger }
     
      SwapIntegers_2 (t,i,j);
    Et directement dans le fichier, le type de l'enregistrement est myRec :

    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
     
    { f est le fichier, i et j sont les n° des enregistrements à échanger }
     
    procedure SwapIntegers_InFile(Var f : Type_du_fichier; i,j : Integer);
    Var
      { on a besoin de 2 variables tampons, car, contrairement à ce qu'on
        fait dans un tableau,
        on ne peut pas directement copier un enregistrement dans un autre }
      temp, temp_2 : myRec ;
    Begin
      Seek(f,i);
      Read(f,temp);
      Seek(f,j);
      Read(f,temp_2);
      Seek(f,i);
      Write(f,temp_2);
      Seek(f,j);
      Write(f,temp);
    End;
     
    ...
     
    { f est le fichier, i, j sont les enregistrements à échanger }
     
      SwapIntegers_InFile (t,i,j);
    ...

    Pour comparer les données de 2 enregistrements, il faut les lire dans des variables tampon, et faire la comparaison désirée

    etc.

  20. #20
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Par défaut
    Il y a beaucoup de méthodes de tri pour le fichier, je te propose une méthode simple :
    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
    procedure insertion(var t:tab;n:integer);
    var i:integer;
    begin
    for i:=2 to n do
    begin
    if t[i].champ<t[i-1].champ then   
    begin
    x:=t[i];
    j:=i-1;
    while (t[j].champ>x.champ) and (j>=1) do
    begin
    t[j+1]:=t[j]
    j:=j-1;
    end;
    t[j+1]:=x;
    end;
    end;
    end;
     
    procedure tri(var f:fa; n:integer);
    var i:integer;
    begin
    reset(f);
    for i:=1 to n do 
    read(f,t[i]);
    insertion(t,n);
    rewrite(f);
    for i:=1 to n do
    write(f,t[i]);
    close(f);
    end;

Discussions similaires

  1. Optimiser le tri d'un fichier
    Par mejri dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 13/11/2006, 09h56
  2. [VBA Excel Débutant] Tri d'un fichier Excel depuis Access
    Par elgringo2007 dans le forum Access
    Réponses: 3
    Dernier message: 07/08/2006, 16h21
  3. Tri d'un fichier
    Par Premium dans le forum C
    Réponses: 14
    Dernier message: 15/01/2006, 22h55
  4. tri d'un fichier texte
    Par ben127 dans le forum C
    Réponses: 7
    Dernier message: 23/12/2005, 20h03

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