[COB1] tri

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

[COB1] tri

Message  trikman le Lun 03 Mai 2010, 21:37

bonjour,

en W-S-S;
j' ai créer 2 tableaux
le premier étant un tableau de coureur (dossard, identite,signat,sigeq)
le deuxième un tableau de temps (dossard, temps)
en F-S;
j' ai creer une structure FDgenedt
genedt-out
identite(dossard, identite,signat,sigeq)
temps(dossard-identite)

j'arrive a afficher tout comme je veux (structure correct)mais le problème c'est que les temps ne correspondent pas au dossard de identite, je ne comprend pas comment faire le tri de ma colonne temps sur base du n° de dossard
il y a aussi l'algo pour parcourir un fichier qui pourrait fonctionner mais je n'arrive pas non plus .

j'ai essayé un peu tout ce qui etait en ma connaissance mais j'ai des problèmes de logique si quelqu'un pouvait m'aider, me conseiller un algo car à cause de ça je tourne en rond et je ne sait pas avancé ....

merci d'avance,
martin

ps :
. je met tout ca dans genedt-out uniquement pour testé ce qui s'affiche, je sais que je dois créer une structure en W-S-S avant . mais tout cela je le ferai quand j'aurai régler ce problème


. pour mr Fontaine, oui j'ai ete revoir mon cours de logique et je ne comprend toujours pas , je n'arrive pas a appliquer l'algo de parcours d'un fichier donc je me suis dit que je pouvais contourner cela en le triant sur base de identite

trikman

Nombre de messages : 68
Prénom : martin
Date d'inscription : 04/11/2009

Revenir en haut Aller en bas

Re: [COB1] tri

Message  efo le Mar 04 Mai 2010, 08:14

j' ai créer 2 tableaux
le premier étant un tableau de coureur (dossard, identite,signat,sigeq)
le deuxième un tableau de temps (dossard, temps)

Un conseil : ne pas prendre les mêmes noms pour le tableau et l'attribut.
Etant donné tes tableaux, c'est le tableau temps qui doit être trié sur base de l'attribut temps. Lors de ce tri, c'est un élément de structure qu'il faut switcher si nécessaire et non le temps uniquement, sinon il n'y aura effectivement plus de correspondance entre le dossard et le temps associé.
Pour ce qui est de l'identité, ayant un dossard du tableau temps trié, il faut rechercher sa position dans le tableau coureur et une fois trouvée, on dispose de son identité et tout le reste à cette position-là. Tout ceci naturellement en supposant que les tableaux ont été correctement remplis.

j' ai creer une structure FDgenedt
genedt-out
identite(dossard, identite,signat,sigeq)
temps(dossard-identite)

Je suppose que c'est un temps et non l'identité dans la sous-structure temps.

efo

Nombre de messages : 125
Age : 59
Prénom : Eric
Localisation : tournai
Date d'inscription : 08/08/2007

Revenir en haut Aller en bas

Re: [COB1] tri

Message  trikman le Mer 05 Mai 2010, 15:14

bon je n'y arrive toujours pas j ai mes 2 tableaux ,
mais je n'arrive toujours pas a faire la recherche , j 'arrive pas a parcourir le
tableau coureur pour trouver le bon dossard ...
Je commence vraiment en avoir marre, je tourne en rond ca fait 3 jours que j'avance pas et j dois rentre mon
travail demain, aider moi svp ...
donc en resumé,
je cree
2tableaux un de temps (sur base de gencour)
et un de coureur (sur
base de coureurs)
apres les avoir cree j'essaye de faire une
recherche du dossard dans le tableau de coureur par rapport au tableau
de temps
logique :
pour id2 de 1 a 190
si dossard of
tabtemps(id1) = dossard of tabcoureur(id2) alors
dossard of genedt-out 190
[code]
PROCEDURE DIVISION.
0-D-MOVECORR.
PERFORM 1-D-OUVERTU
PERFORM 1-D-CLASSAVT VARYING ID1 FROM 1 BY 1 UNTIL ID1 > 190
PERFORM 1-G-TABCOUR VARYING ID2 FROM 1 BY 1 UNTIL ID1 > 190
PERFORM 1-R-RECH VARYING ID2 FROM 1 BY 1 UNTIL ID2 > 190

[code]

1-D-CLASSAVT.

MOVE CORR REC-GENCOUR TO TEMPSID(ID1)
WRITE
GENEDT-OUT
END-WRITE
READ GENCOUR

AT END MOVE "1" TO EOF
END-READ
.

1-E-CLASSAVT2.
ADD 1 TO ID2
MOVE CORR
REC-COUREUR TO COUREURID(ID2)
MOVE IDENTITE OF
COUREURID(ID2) TO IDENTITE OF GENEDT-OUT
WRITE GENEDT-OUT
END-WRITE
READ COUREURS
AT
END MOVE "1" TO EOF
END-READ
.

1-R-RECH.
ADD 1 TO ID2
IF (DOSSARD OF
TEMPSID(ID1) = DOSSARD OF COUREURID(ID2))
MOVE DOSSARD
OF TEMPSID(ID1) TO
DOSSARD
OF GENEDT-OUT
MOVE IDENTITE OF COUREURID(ID2) TO
IDENTITE OF GENEDT-OUT
ADD 1 TO ID1
.
[code]

trikman

Nombre de messages : 68
Prénom : martin
Date d'inscription : 04/11/2009

Revenir en haut Aller en bas

Re: [COB1] tri

Message  trikman le Mer 05 Mai 2010, 17:06

j'ai changer d'optique,

les tableaux sont toujours pareil
l algo est different
et il met une erreur 3000 qui parle d'une protection

PROCEDURE DIVISION.
0-D-MOVECORR.
PERFORM 1-D-OUVERTU
PERFORM 1-G-TABCOUR UNTIL EOF2 = "1"
PERFORM 1-G-TEMPS VARYING ID1 FROM 1 BY 1 UNTIL ID1 > 200

PERFORM 1-F-FIN
STOP RUN
.
1-D-OUVERTU.
OPEN INPUT GENCOUR, COUREURS , EQUIPES
OUTPUT GENEDT
READ GENCOUR
AT END MOVE "1" TO EOF
END-READ
READ COUREURS
AT END MOVE "1" TO EOF2
END-READ
READ EQUIPES
AT END MOVE "1" TO EOF3
END-READ
.
1-G-TABCOUR.
ADD 1 TO ID3
MOVE CORR REC-COUREUR TO COUREURID(ID3)

READ COUREURS
AT END MOVE "1" TO EOF2
END-READ
.
1-G-TEMPS.
ADD 1 TO ID1
MOVE CORR REC-GENCOUR TO CLASSEMENT(ID1)
MOVE CORR CLASSEMENT(ID1) TO GENEDT-OUT

PERFORM 1-R-RECH UNTIL EOF = "1"


WRITE GENEDT-OUT
END-WRITE
READ COUREURS
AT END MOVE "1" TO EOF2
END-READ
READ GENCOUR
AT END MOVE "1" TO EOF
END-READ
.
1-R-RECH.
ADD 1 TO ID2
IF DOSSARD OF COUREURID(ID2) = DOSSARD OF CLASSEMENT(ID1)
MOVE IDENTITE OF COUREURID(ID2) TO IDENTITE OF GENEDT-OUT
ELSE
ADD 1 TO ID2
.

trikman

Nombre de messages : 68
Prénom : martin
Date d'inscription : 04/11/2009

Revenir en haut Aller en bas

Re: [COB1] tri

Message  Contenu sponsorisé Aujourd'hui à 18:55


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