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 :

Probleme exercice cobol


Sujet :

Cobol

  1. #1
    Candidat au Club
    Probleme exercice cobol
    Bonjour, pouvez vous m'aider pour cet exo ?

    Créer un tableau de 10 valeurs et effectuer la moyenne de ces 10 valeurs.
    Afficher le résultat.

    Note :
    - Le balayage de ce tableau se fera via une boucle qui calculera élément par élément.
    - Le tableau défini est un tableau d’entiers. Une variable définira le nombre d’éléments dans le tableau.


    Mon code

    Code cobol :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    MOVE 1 to i
          **     MOVE 0 to somme
          **     PERFORM UNTIL i > 10
          **        DISPLAY i
          **        MOVE i to element(i)
          **        DISPLAY element(i)
          **        COMPUTE somme = somme + element(i)
          **        COMPUTE i = i + 1   
          **     END-PERFORM  
          **     DISPLAY somme
          **     DIVIDE somme BY 10 GIVING moyenne
          **     DISPLAY moyenne

  2. #2
    Nouveau Candidat au Club
    Bonjour,

    rencontres tu un soucis avec ton code ou faut-il simplement le vérifier ?

    dans tous les cas je pense qu'il y a une petite erreur sur une de tes instructions.
    tu devrais pouvoir la voir si tu exécutes ton code.

  3. #3
    Futur Membre du Club
    Bonjour Naymux59,

    Tout comme toi, je suis débutant dans ce monde, mais çà n'empeche pas que je propose une solution


    Pour le code que tu a proposé, t'a oublié la deuxième note :

    Le tableau défini est un tableau d’entiers. Une variable définira le nombre d’éléments dans le tableau

    Dans ton programme tu va toujours calculer la moyenne de 10 valeurs, imagine que t'as que 4 dans le tableau ( tu va faire 6 parcours de plus et tu divise par 10 alors que t'as que 4 ).

    Sinon, voilà ce que je propose

    Pour les déclaration ( dans la WORKING-STORAGE ):

    • Q-ELEMENTS : tu va y mettre le nombre de valeur que ton tableau va contenir, (4 pour l'exemple que j'ai donné en haut )
    • G-ELEMENTS : c'est ton tableau qui va contenir 10 valeurs au maximum


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
      01 SOMME                   PIC S9(10)
      01 MOYENNE                PIC S9(10)
    
    *nombre de valeurs du tableau
      01 Q-ELEMENTS            PIC 9(2).
    *Tableau de 10 elements
      01 G-ELEMENTS            OCCURS 10.
         05 valeur                 PIC S9(5).
    Pour le programme ( Toujours avec l'exemple de 4 valeurs ),

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    MOVE 4         TO Q-ELEMENTS
    PERFORM VARYING i FROM 1 BY 1 UNTIL I > Q-ELEMENTS
    
    COMPUTE SOMME = SOMME + VALEUR(I)
    
    END-PERFORM
    
    COMPUTE MOYENNE = SOMME / Q-ELEMENTS
    
    DISPLAY ' La moyenne est : ' MOYENNE

  4. #4
    Candidat au Club
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
          ******************************************************************
          * Author:
          * Date:
          * Purpose:
          * Tectonics: cobc
          ******************************************************************
           IDENTIFICATION DIVISION.
           PROGRAM-ID. YOUR-PROGRAM-NAME.
           DATA DIVISION.
           FILE SECTION.
           WORKING-STORAGE SECTION.
           01  I       PIC 99.
           01  MAX     PIC 99 VALUE 10.
           01  MOY     PIC 9(5)V99.
           01  SOMME   PIC 9(5).
           01  TAB1.
               02 TAB2    PIC 99 OCCURS 100.
               
           PROCEDURE DIVISION.
    
               PERFORM INITIALISATION.
               PERFORM TRAITEMENT.
               PERFORM FIN-TRAITEMENT.
    
           INITIALISATION.
    
               MOVE 0 TO I 
                         MOY
                        SOMME .
               INITIALISE TAB1.     
    
        
           TRAITEMENT.
               
               PERFORM VARYING I FROM 1 BY 1 UNTIL I > MAX
               DISPLAY "DONNER LES NUMERO"
               ACCEPT TAB2(I)
               COMPUTE SOMME = SOMME + TAB2(I)
               END-PERFORM.
               COMPUTE MOY = (SOMME / MAX ).
               
           FIN-TRAITEMENT.
               
              DISPLAY "LA MOYENNE EST := " SPACE MOY
                STOP RUN.
           END PROGRAM YOUR-PROGRAM-NAME.

###raw>template_hook.ano_emploi###