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

Cobol Discussion :

Aide à la compréhension des OCCURS.


Sujet :

Cobol

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 10
    Points
    10
    Par défaut Aide à la compréhension des OCCURS.
    Bonjour,

    J'ai un petit problème de compréhension avec un tableau...
    On me demande de donner le résultat de l'exécution de la PROCEDURE DIVISION...

    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
    
    WORKING-STORAGE SECTION.
    
       77 IND1   PIC S99 BINARY.
       77 IND2   PIC S99 BINARY.
       01 RES.
           03 PERSONNE OCCURS 5.
                05 NOM   PIC X(20).
                05 PRENOM PIC X(20).
                05 LABO OCCURS 3.
                     07 PTS1    PIC 9(4).
                     07 PTS2    PIC 9(4).
                     07 PTS3    PIC 9(4).
    
    PROCEDURE DIVISION.
        PERFORM INIT VARYING IND1 FROM 1 BY 1 UNTIL IND1 > 5
                            AFTER IND2 FROM 1 BY 1 UNTIL IND2 > 3
        DISPLAY LABO(1 1)
        DISPLAY LABO(1 2)
        DISPLAY LABO(1 3)
        .
    
    INIT.
        MOVE 0 TO PTS1 (IND1 IND2)
        MOVE 0 TO PTS2 (IND1 IND2)
        MOVE 0 TO PTS3 (IND1 IND2)
        STOP RUN
        .
    Voila...Le problème est que j'ai du mal a me représenter le tableau.Ce que je ne comprend pas c'est si une PERSONNE à 3 PTS ou alors une PERSONNE à 3X3 PTS... :'( J'ai même du mal a me faire comprendre :'(

    Autre petit doute, c'est le stop run qui traine dans le INIT.Est ce qu'il va interrompre le déroulement prématurément?

    Et le dernier point "chaud"...Est-ce normal que l'indice est un binaire signé?

    Merci d'avance de votre aide ^^

  2. #2
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Citation Envoyé par Hanakimi Voir le message
    ...
    si une PERSONNE à 3 PTS ou alors une PERSONNE à 3X3 PTS...
    Bonjour.

    D'après la définition de ton tableau : tu as 5 PERSONNEs. Chacune a un NOM, un PRENOM et 3 LABOs. Chaque LABO contient 3 champs PTS1, PTS2 et PTS3. Donc chaque PERSONNE à 3 x (PTS1, PTS2 et PTS3) [pour chacun des 3 LABOs].
    pour la PERSONNE n° p, on a les champs suivants :
    - NOM(p), PRENOM(p),
    - LABO(p,1), LABO(p,2) et LABO(p,3)
    ou
    - NOM(p), PRENOM(p),
    - PTS1(p,1), PTS2(p,1), PTS3(p,1),
    - PTS1(p,2), PTS2(p,2), PTS3(p,2),
    - PTS1(p,3), PTS2(p,3), PTS3(p,3)
    Autre petit doute, c'est le stop run qui traine dans le INIT. Est ce qu'il va interrompre le déroulement prématurément?
    Oui en effet, il n'est pas à sa place. Il doit être en dehors de l'intervalle de paragraphes ou des instructions performé, c'est à dire après le dernier DISPLAY et non pas dans le paragraphe INIT qui lui va être exécuté 5x3=15 fois.
    Et le dernier point "chaud"...Est-ce normal que l'indice est un binaire signé?
    Ce n'est pas aussi "chaud" que ça, il doit être juste un entier positif (même s'il est signé ou réel) mais BINARY, COMP ou COMP-3 sont meilleurs pour les perfs.

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup de ton aide ^^
    Pour le tableau j'avais bien senti qu'il y avait un truc pas clair :p

    Par contre pour le Stop Run, si on le déplace pas alors la boucle ne va faire q'un tours????

    En gros au final les display vont bien afficher 0 pour le premier , et les autres il ne sont pas traités??? L' IND1 est a 1 et l'IND 2 aussi donc il ne va remplir que les champ (1,1) (1,1) (1,1)????

  4. #4
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Citation Envoyé par Hanakimi Voir le message
    Merci beaucoup de ton aide ^^
    Il n'y a pas de quoi
    ...Par contre pour le Stop Run, si on le déplace pas alors la boucle ne va faire q'un tours????

    En gros au final les display vont bien afficher 0 pour le premier , et les autres il ne sont pas traités??? L' IND1 est a 1 et l'IND 2 aussi donc il ne va remplir que les champ (1,1) (1,1) (1,1)????
    Même pas un tour, une seule exécution (ou un seul passage) pour IND1=1 et IND2=1 et en en effet seuls PTS1(1,1), PTS2(1,1) et PTS3(1,1) seront initialisés. Mais mais !! les autres PTSx seront peut être initialisés à 0 à cause de l'initialisation initiale de la WSS faite par certains compilateurs.

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Merci merci tout est clair maintenant ^^

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

Discussions similaires

  1. Aide pour la compréhension des view
    Par snoopo dans le forum ASP.NET MVC
    Réponses: 4
    Dernier message: 22/04/2011, 16h27
  2. Besoin d'aide : afficher / cacher des layers
    Par mickeliette dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 21/10/2004, 12h03
  3. Aide a propos des TMenuEdit
    Par scooper dans le forum C++Builder
    Réponses: 9
    Dernier message: 27/05/2004, 16h39
  4. [FLASH MX] Prob de compréhension des bouttons
    Par WriteLN dans le forum Flash
    Réponses: 13
    Dernier message: 16/10/2003, 18h01
  5. Problème de compréhension des ensembles
    Par Cornell dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 23h07

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