Transposer d'une matrice

nannou7 - 5 sept. 2001 à 12:08
rpgff1 Messages postés 1 Date d'inscription dimanche 5 octobre 2008 Statut Membre Dernière intervention 5 octobre 2008 - 5 oct. 2008 à 22:47
je voudrais lire un fichier texte ,mettre chaque champ dans unelement de matrice aij puis transposer la matrice aij=aji
en fin genere un fichier de la matrice transposee.
j'espere trouver une reponse a mon probleme..
merci

3 réponses

Bonjour,
parcourir tous les élèments de la matrice avec deux boucles for, par ex et et mettre chaque élèment aij dans une variable Tempo ensuite l'élèment aij=aji et aji=Tempo. mais je pese que tu n'auras pas besoins de parcourir la matrice entièrement: essaie i jusqu'à nbre lignes/2 et j jusqu'à nbre colonnes/2.
Bonne chance
0
dewouters Messages postés 4 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 11 février 2012
29 sept. 2008 à 19:56
Slt à tous, c Yanni de Wouters ch8 super content de mretrouver parmis les grands programmeurs, et je suis sûr qu'avec vous nous férons exploser le monde informatique....
0
rpgff1 Messages postés 1 Date d'inscription dimanche 5 octobre 2008 Statut Membre Dernière intervention 5 octobre 2008
5 oct. 2008 à 22:47
Salut, tien si ca peu t'aider j'ai créer un programme de transposer de matrice en langage c, je sais pas si ca peut t'aider, mais j'espère...

#include<stdio.h>
main()
{
      int l, d, c;
      int i, j, k;
      float mat1[300][300], mat2[300][300], mat3[300][300], mat4[300][300];
     
      printf("donner le nombre de ligne de la premiere matrice:\n");
      scanf("%d", &l);
      printf("donner la dimension commune aux deux matrices:\n");
      scanf("%d", &d);
      printf("donner le nombre de colonne de la deuxieme matrice:\n");
      scanf("%d", &c);
      getchar();
     
// remplissage de la premiere matrice--------------------------------------------
     
      getchar();
     
      printf ("\nDonner les elements de la premiere matrice :\n");
  for (i=0;i<l;i++)
  {
   for (j=0;j<d;j++)
   {
    printf ("ligne %d, colonne %d : ",i+1,j+1);
    scanf ("%f",&mat1[i][j]);
   }
  }
  printf("\n\n");
  
//Affichage de la premiere matrice-----------------------------------------------


    printf("------Matrice 1------\n");
   
  for (i=0;i<l;i++)
  {
   for (j=0;j<d;j++)
   {
    printf ("%.3f\t",mat1[i][j]);
   }printf("\n");
  }
  getchar();
  printf("\n\n");
  
// remplissage de la seconde matrice---------------------------------------------
     
      getchar();
     
      printf ("\nDonner les elements de la seconde matrice :\n");
  for (i=0;i<d;i++)
  {
   for (j=0;j<c;j++)
   {
    printf ("ligne %d, colonne %d : ",i+1,j+1);
    scanf ("%f",&mat2[i][j]);
   }
  }
  printf("\n\n");
  
//Affichage de la seconde matrice------------------------------------------------


    printf("------Matrice 2------\n");
   
  for (i=0;i<d;i++)
  {
   for (j=0;j<c;j++)
   {
    printf ("%.3f\t",mat2[i][j]);
   }printf("\n");
  }
  getchar();
   printf("\n\n");
//Initialisation de la matrice resultante----------------------------------------


  for (i=0;i<l;i++)
  {
   for (j=0;j<c;j++)
   {
    mat3[i][j]=0;
   }
  }
//Calcul de la matrice resultante------------------------------------------------
  for (i=0;i<l;i++)
  {
   for (j=0;j<c;j++)
   {
    for (k=0;k<d;k++)
    {
     mat3[i][j]=mat1[i][k]*mat2[k][j]+mat3[i][j];
    }
   }
  }


//Affichage de la matrice resultante---------------------------------------------


 printf("------Produit matriciel------\n");
 
   for (i=0;i<l;i++)
   {
    for (j=0;j<c;j++)
    {
     printf ("%.2f\t",mat3[i][j]);
    }printf("\n");
   }
 getchar();
 
//calcul de la transposer du produit matriciel-----------------------------------


         for (i=0;i<l;i++)
   {
    for (j=0;j<c;j++)
    {
                mat4[j][i]=mat3[i][j];
    }
   }
  getchar();
  
//Affichage de la transposer du produit matriciel--------------------------------


  printf("------transposer matrice------\n");
 
   for (i=0;i<c;i++)
   {
    for (j=0;j<l;j++)
    {
     printf ("%.2f\t",mat4[i][j]);
    }printf("\n");
   }
 getchar();
}


 
0
Rejoignez-nous