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
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
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...
bon alors moi je vois ça comme ça pour une matrice de taille donnée dison 15 par 9.
apres ça reste a verifier
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.
Je pense que ceci serait encore plus simple :
Bien sûr il faut que la matrice soit de même taille et que la valeur soit du même format.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MOVE MATRICE TO MATRICE-T.
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
Je croyais que le principe de ce forum était de ne pas donner les réponses toutes cuites...
... 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.Envoyé par zied212
Le problème est très simple, et avec le post de m@nza, tu as vraiment tout en main pour y répondre...
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.
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.
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]
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 ???
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 ?
mercii mohamed pour ton help c resolu
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager