Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1240 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  tri enregistrement pascal

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

tri enregistrement pascal

n°1192922
green68
Posté le 06-09-2005 à 00:47:37  profilanswer
 

Bonjour,
 
Je comprends le principe du tri avec Pascal mais je ne sais pas trop comment m'y prendre pour trier les données d'un enregistrement.  Est-ce que quelqu'un aurait un exemple simple à me montrer.
 
Je sais qu'il faut comparer chaque éléments du champs et déplacer l'enregistrement au complet en utilisant des tampons mais je n'arrive pas à visualiser comment mettre mon enregistrement dans un tampon et comment utiliser les tampons en général pour un tri.  Merci de votre aide!!!

mood
Publicité
Posté le 06-09-2005 à 00:47:37  profilanswer
 

n°1193491
itela
Posté le 06-09-2005 à 19:17:40  profilanswer
 

bonjour,
 
difficile de répondre précisément à cette question tant les cas possibles sont multiples !
 
une variable tampon est tout simplement une variable du même type que les données à trier et qui sert à garder transitoirement l'état d'une variable !
 
Si ma mémoire est bonne, avec une variable de type record (enregistrement), il faut affecter les champs du record un à un.
 
Par exemple, avec une variable  record qui contiendrait les champs : nom ; prenom  et age, il faut faire :
tampon.nom:=variable.nom;
tampon.prenom:=variable.prenom;
tampon.age:=variable.age
 
on ne peut pas utiliser directement l'affectation suivant tampon:=variable
 
a+

n°1193513
green68
Posté le 06-09-2005 à 19:55:26  profilanswer
 

Merci,
J'avais utilisé WITH mais il parrait que ça ne fonctionne pas avec le tri alors je retravaille mon code et je vais voir...  

n°1194053
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-09-2005 à 13:49:21  profilanswer
 

Je vois pas le rapport entre "with" et le tri :??:
 

itela a écrit :


 
on ne peut pas utiliser directement l'affectation suivant tampon:=variable


 
Il me semble que si.
Dans la doc ils en parlent aussi :

Citation :

You can now copy the values of Record1's fields to Record2:
 
Record2 := Record1;


Message édité par antp le 07-09-2005 à 13:49:42

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1194202
green68
Posté le 07-09-2005 à 15:44:42  profilanswer
 

Je n'ai pas eu le temps de revoir tout ça mais ce soir je vais vérifier.
En fait on peut mettre une variable dans un tampon de même type et pour mettre tout un enregistrement dans un tampon il faut avoir une variable du même type que l'enregistrement (record).  Mais bon j'ai pas encore essayé.  
 
Pour ce qui est du WITH je n'ai pas d'explication, c'est peut-être la façon que ma procédure est structurée avec un autre calcul avant???  Je vais tester tout ça ce soir!!!

n°1194595
green68
Posté le 08-09-2005 à 03:46:03  profilanswer
 

Je n'y arrive pas, voici mon code si quelqu'un a une idée de ce que ça peut être, c'est le tri par insertion, Merci,
 
  Patineur = Record
            Nom: String [20];
            Prenom: String [20];
            Notes: Array [1..max_juges] Of integer;
            Moyenne:Array[1..max_Patineurs]of real;
            moy:real;
          End;
 
//tri
 
             For i:=2 to max_patineurs do  
             begin
               tampon:= les_patineurs[i].moy;
               j:=j-1;
               
              while ((j>0) and (Les_Patineurs[j].moy>=tampon)) do  
                begin
                  les_patineurs[i+1]:=les_patineurs[i];
                  j:=j-1;
                end; //for while
             end; // for i
 
             les_patineurs[indice].moy:=temp2;
   
             for j:=1 to max_patineurs do
             begin
             writeln('les patineurs',temp2:6:2);
              end; //for j


Message édité par green68 le 08-09-2005 à 03:47:50
n°1196209
itela
Posté le 09-09-2005 à 19:38:12  profilanswer
 

antp a écrit :

Je vois pas le rapport entre "with" et le tri :??:
 
 
 
Il me semble que si.
Dans la doc ils en parlent aussi :

Citation :

You can now copy the values of Record1's fields to Record2:
 
Record2 := Record1;



Merci pour la précision : j'en prends note. En fait, ça fait quelques années que je n'ai plus vraiment touché au Delphi et encore plus longtemps pour le Pascal... mais le sujet m'intéresse encore  :)  
 
Green68, l'instruction with permet d'éviter la répétition du nom du record :
with patineur do
nom:=...
prenom:=...
etc
 
Je ne comprends donc pas le problème qu'il pourrait y avoir entre le with et ton tri.
 
Pour ce qui est du bout de code que tu publies, c'est difficile de l'analyser tel quel :
- quelle est la valeur initiale de j ?
- Comment sont affectées les variables "indice" et temp2 ?
 
a+


Message édité par itela le 09-09-2005 à 19:42:24

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  tri enregistrement pascal

 

Sujets relatifs
localisation d'enregistrement dans une base avec le code VB ?[MySQL]Récupérer un seul enregistrement
VBA excel pb pour récupérer le chemin d'enregistrement et le réinject[MySQL] Selection d'un enregistrement aléatoire [Résolu]
enregistrement resultat requete dans un champ?[resolu]ouverture et enregistrement
Problème Compteur d'enregistrementajout enregistrement dans un sous-sous formulaires
validation du formulaire avant enregistrementen pascal comment renvoyer un type enregistrement avec une fonction ?
Plus de sujets relatifs à : tri enregistrement pascal


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR