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 :

Transposée d'une matrice


Sujet :

Cobol

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Transposée d'une matrice
    Comment faire la transposée d'une matrice avec ce langage de a jusqu'à z ????

    - L'utilisateur donne la taille de la matrice
    - Création de la matrice
    - Transposée de la matrice

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    Bonjour,

    Qu'as-tu déjà fait ?

    Peux-tu fournir la définition Working de ta matrice M ?

    Une fois que c'est fait, tu peux exploiter la définition de la transposition. Si MT est la matrice transposée, exprime MT(i,j) en fonction de M(?,?).

    Et puis il te reste à faire en sorte que ton programme calcule MT(i,j) pour tout i et tout j...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    bon alors moi je vois ça comme ça pour une matrice de taille donnée dison 15 par 9.

    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
     WORKING-STORAGE SECTION.
     01 MATRICE.
        02 INDICE-I OCCURS 15 INDEXED BY I.
           03 INDICE-J OCCURS 9 INDEXED BY J.
              04 VALEUR-M PIC S9(4) VALUE ZERO.
    * tu peux remplacer S9(4) par le format que tu souhaite *
    
     01 MATRICE-T.
        02 INDICE-IT OCCURS 15. 
           03 INDICE-JT OCCURS 9.
              04 VALEUR-MT PIC S9(4) VALUE ZERO.
    * idem que précédement pour S9(4) mais veille a bien mettre le meme format*
    
     PROCEDURE DIVISION.
            PERFORM VARYING I FROM 1 BY 1 UNTIL I=16
                   PERFORM VARYING J FROM 1 BY 1 UNTIL J=9 OR I=16
                         MOVE VALEUR-M(I,J) TO VALEUR-MT(J,I)
                   END-PERFORM
            END-PERFORM
            GOBACK.
    apres ça reste a verifier

  4. #4
    Membre du Club
    Nettoyeur de code de M....
    Inscrit en
    Mars 2003
    Messages
    28
    Détails du profil
    Informations professionnelles :
    Activité : Nettoyeur de code de M....

    Informations forums :
    Inscription : Mars 2003
    Messages : 28
    Points : 45
    Points
    45
    Par défaut
    Je pense que ceci serait encore plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MOVE MATRICE TO MATRICE-T.
    Bien sûr il faut que la matrice soit de même taille et que la valeur soit du même format.

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    MERCI POUR LES REPENSES

    voila precisement ce je cherche A faire :
    dapres un fichier F1 qui represente les elements d une matrice M ligne par ligne ainsi q un enregistrement logique de F1 qui se compose d une seule rubrique.
    je veu faire un algorithme cobol qui permet de representer une matrice M dans le fichier F1 et de donne sa transposee sur un fichier F2 (bien sur ayant la meme structure logique de F1).

    plus clairement voila un exple:

    M:
    123
    456

    Mt:
    14
    25
    36

    F1(M):
    1
    2
    3
    4
    5
    6

    F2(Mt):
    1
    4
    2
    5
    3
    6

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    Citation Envoyé par bigjeff Voir le message
    Je pense que ceci serait encore plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MOVE MATRICE TO MATRICE-T.
    Bien sûr il faut que la matrice soit de même taille et que la valeur soit du même format.
    Avec ça, comment obtiens-tu la transposée ??

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    Citation Envoyé par m@nza Voir le message
    bon alors moi je vois ça comme ça pour une matrice de taille donnée dison 15 par 9.

    apres ça reste a verifier
    Je croyais que le principe de ce forum était de ne pas donner les réponses toutes cuites...

    Citation Envoyé par zied212
    je veux faire un algorithme cobol qui permet de representer une matrice M dans le fichier F1 et de donne sa transposee sur un fichier F2 (bien sur ayant la meme structure logique de F1).
    ... donc peut-être pourrais-tu déjà essayer de répondre aux questions que je t'ai posées. Qu'as-tu déjà fait, qu'est-ce que tu n'arrives pas à faire.

    Le problème est très simple, et avec le post de m@nza, tu as vraiment tout en main pour y répondre...

  8. #8
    Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    MDR c la gifle et le bonbon non ?


    ok jvais commence mais je trouve ke c un peu complique c pour ca ke je

    demande votre aide.

  9. #9
    Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par bigjeff Voir le message
    Je pense que ceci serait encore plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MOVE MATRICE TO MATRICE-T.
    Bien sûr il faut que la matrice soit de même taille et que la valeur soit du même format.

    tu m'inquiète trop toi !

    mais prk ta trop reflechie ???

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    Citation Envoyé par zied212 Voir le message
    MDR c la gifle et le bonbon non ?


    ok jvais commence mais je trouve ke c un peu complique c pour ca ke je

    demande votre aide.
    Non, pas de gifle

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    désolé fremen167, comme tu as pu le constater je ne suis pas un grand habitué du forum que je commence juste a fréquenter. Pourrais tu me dire sous aquel forme j'aurais du l'aider pour eviter de nouveau de deroger a la politique du forum.


    Je rajouterais que au vu de l'énnoncer j'ai commis quelque errueurs dans le code.

  12. #12
    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
    Bonjour m@nza et à tous.

    Les règles du forum sont dans l'onglet "Règles" (http://club.developpez.com/regles/) et simplement être correct et soi-même avec l'humour et l'humeur qu'il faut et surtout écrire en bon français, cette belle langue que nous partageons.

    Pour la transposition d'une matrice :
    Mt(j,i) = M(i,j) pour i=1,n et j=1,m
    Mi M est [n,m], Mt est [m,n]

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    Citation Envoyé par zied212 Voir le message
    plus clairement voila un exple:

    M:
    123
    456

    Mt:
    14
    25
    36

    F1(M):
    1
    2
    3...

    F2(Mt):
    1
    4
    2...
    D'après l'exemple que tu donnes, tu n'as pas vraiment besoin d'une matrice transposée dans ta WORKING.

    Tu dois pouvoir produire une programme qui fera :
    - lecture de F1 et chargement dans la matrice ;
    - écriture de F2 à partir de la matrice directement.

    Bon, on attend toujours de voir où tu en es

  14. #14
    Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par fremen167 Voir le message
    Non, pas de gifle

    ET pas de bonbon.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    Citation Envoyé par zied212 Voir le message
    ET pas de bonbon.
    Ben si, regarde tout ce que tu as déjà comme infos au dessus

  16. #16
    Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par fremen167 Voir le message
    D'après l'exemple que tu donnes, tu n'as pas vraiment besoin d'une matrice transposée dans ta WORKING.

    Tu dois pouvoir produire une programme qui fera :
    - lecture de F1 et chargement dans la matrice ;
    - écriture de F2 à partir de la matrice directement.

    Bon, on attend toujours de voir où tu en es
    non l'utilisateur doit donne la taille de la matrice et il doit la remplir dans le fichier F1
    LE Fichier du transpose F2 est generer a partir du fichier F1

    cas1 :SI L' utilisateur donne la taille NBR LIGNE =2 et NBR COLONNE=3 il doit

    donne 6 chiffres.


    cas 2 :s' il donne NBR LIGNE =3 et NBR COLONNE=4 il doit donner 12 chiffres

    expl:

    M POUR CAS 1 : (theoriquement)

    685
    329
    M POUR CAS 2:

    3574
    9854
    3145

    F1 DOIT CE REPMLIR COMME SUI :

    CAS1: (dans le fichier F1 generer par cobol)
    6
    8
    5
    3
    2
    9
    CAS2:
    3
    5
    7
    4
    9
    8
    5
    4
    3
    1
    4
    5

    ALORS est ce qu' on utilise la methode de fichier sequenciel ou indexe ???

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    Le problème, c'est que tu n'as pas de valeur limite pour NBR LIGNES et NBR COLONNES. Donc tu ne peux pas stocker dans une matrice dans le cas général. Il n'est donc pas possible de générer F2 dans tous les cas dans un fichier séquentiel.

    Par ailleurs, tu parles de fichier indexé, mais dans ce cas il faut une donnée pour définir l'index. Dans tes exemples, chaque fichier ne contient que les valeur des cases de la matrice. Tu peux par exemple choisir un index sur les deux données LIGNE/COLONNE (là, la seule limite sera la taille maximum d'un entier en COBOL, il y a de la marge). De cette manière, l'écriture de F2 se fait au fils de l'eau lors de l'acquisition des données.

    La réponse à ton problème dépend en partie de l'environnement dans lequel tu travailles, puisque ton traitement comprend une partie TP (saisie des dimensions de la matrice et des valeurs) et des écritures fichier. Est-ce un environnment MVS ? avec CICS ? ou du COBOL sur PC ?

  18. #18
    Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    mercii mohamed pour ton help c resolu

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

Discussions similaires

  1. transposée d'une matrice et intervalles
    Par recherche888 dans le forum MATLAB
    Réponses: 5
    Dernier message: 19/03/2012, 14h46
  2. Transposée d'une matrice
    Par lucaordi dans le forum Mathématiques - Sciences
    Réponses: 4
    Dernier message: 22/07/2008, 18h08
  3. [Débutant] Transposée d'une matrice
    Par swayly dans le forum Pascal
    Réponses: 9
    Dernier message: 01/05/2008, 18h40
  4. Réponses: 2
    Dernier message: 21/02/2008, 09h49
  5. Transposée d'une matrice
    Par Poseidon62 dans le forum Ada
    Réponses: 1
    Dernier message: 07/04/2007, 17h46

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