Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > z/OS
z/OS Forum d'entraide sur z/OS et MVS (Multiple Virtual Storage), les systèmes d'exploitation des ordinateurs « mainframes » IBM : JCL, Tso, Ispf, Vsam, Racf, SMS, Cics, Ims, OPC, Ca-7, Control-M, Dialog Manager ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 10/03/2010, 22h59   #1
Invité de passage
 
ipnote
Inscription : mars 2010
Messages : 7
Détails du profil
Informations personnelles :
Nom : ipnote

Informations forums :
Inscription : mars 2010
Messages : 7
Points : 1
Points : 1
Par défaut Traitement d'un tableau

J’ai une liste Q-LIST-1 de 100 occurrences :

Cette liste contiennent soit les client ou les conjoint ou bien client + les conjoint
Chacun des deux personne peut prendre prends 3 valeurs max : 10, 20 et 30


------------------------------------------------
-----ID------|----Valeur----
-----------------------------------------------
Id client-1 --| 10
-----------------------------------------------
Id conjoint-1| 10
-----------------------------------------------
Id client-1 --| 20
-----------------------------------------------
Id conjoint-1| 20
-----------------------------------------------
Id client-1--| 30
-----------------------------------------------
Id conjoint-1| 30
-----------------------------------------------

Il se peut y avoir un id client-1 sans conjoint (c-a-d sans id conjoint-1 pour la même valeur) ou un Id conjoint sans Id client ainsi de suite : tout les cas sans possible

L’objectif c’est de parcourir la liste et de mette dans un autre tableau,pour chaque occurrence L’id client et conjoint et sa valeur

Résultat final souhaitée ca sera :
---------------------------------------------------------
-----ID-CLI------ |-----ID-CONJ------|-----VALEUR-NV---
---------------------------------------------------------
Id client-1 | Id conjoint-1 | 10
---------------------------------------------------------
Id client-1 | Id conjoint-1 | 20
---------------------------------------------------------
Id client-1 | Id conjoint-1 | 30
---------------------------------------------------------

Voila mon algorithme que j’ai fait :

Perform varying I from 1 by 1 until I > Q-LIST-1
OR Flag-client-10-ok
--- If Valeur(I) = 10
------ IF ID(I) = Id-client
--------- Set Flag-client-10-ok to true
--------- ADD 1 to Q-NEW-LIST
--------- Move ID(I) to ID-CLI(Q-NEW-LIST)
------ End-if
--- End-if
End-perform


IF Set Flag-client-10-ok
--- Perform varying I from 1 by 1 until I > Q-LIST-1 OR Flag-conjoint-10-ok

------ If Valeur(I) = 10
--------- IF ID(I) = Id-conjoint
------------ Set Flag-conjoint-10-ok to true
* se positionner sur la même occurrence
------------ Move ID(I) to ID-CONJ(Q-NEW-LIST)
--------- End-if
------ End-if
--- End-perform

ELSE

--- Perform varying I from 1 by 1 until I > Q-LIST-1
OR Flag-conjoint-10-ok
------ If Valeur(I) = 10
--------- IF ID(I) = Id-conjoint
------------ Set Flag-conjoint-10-ok to true
------------ ADD 1 to Q-NEW-LIST
------------ Move ID(I) to ID-CONJ(Q-NEW-LIST)
--------- End-if
------ End-if
--- End-perform

La meme chose pour les valeur 20 et 30.

Est-ce qu’il y’a possibilité d’optimiser ce code,ou y’a-t-il une autre methode?

Merci pr votre aide

Dernière modification par ipnote ; 11/03/2010 à 00h09.
ipnote est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 06h23.


 
 
 
 
Partenaires

Hébergement Web