Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Rich_crazy2 en 10 Noviembre 2011, 01:25 am



Título: Transpuesta y simetrica
Publicado por: Rich_crazy2 en 10 Noviembre 2011, 01:25 am
Hola, soy nuevo por aqui...

Les comento que tengo que hacer un programa el cual me lea una matriz con los datos que el usuario haya ingresado y me la imprima, después tengo que calcular su transpuesta y checar si es simetrica pero estas dos funciones las tengo que mandar llamar con apuntadores, cosa que se me ha dificultado un buen...

Hice el programa para que me lea la matriz y calcule su transpuesta, pero sin usar apuntadores, y quisiera que me ayudaran para ver como le hago para mandar llamar a mi funcion de tranpuesta con un apuntador..

También quisiera ver si me pueden ayudar a realizar la función que me verifique si es simetrica la matriz, la definicion de simetrica es la siguiente:

Una matriz simétrica es una matriz cuadrada que verifica:
A = A^t .....  A^t=a la transpuesta.

les dejo mi codigo, espero me puedan ayudar porque la verdad tengo un profesor muy malo y esto lo hice estudiando por mi cuenta.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define NUM_ELEM 10
  5.  
  6. int main (void){
  7.   int matriz_a[NUM_ELEM][NUM_ELEM];
  8.   int matriz_b[NUM_ELEM][NUM_ELEM];
  9.   int dimension;    
  10.   int fila, columna;
  11.  
  12.   /*Dar dimension a la matriz (hasta 10x10)*/
  13.   printf("Numero de filas/columnas: ");
  14.   scanf("%i", &dimension);      
  15.   if(dimension < 1 || dimension > NUM_ELEM){
  16.      return EXIT_FAILURE;
  17.   }
  18.  
  19.   /*Escribir la matriz*/
  20.   printf("Introduzca la matriz origen: \n");
  21.   for(fila=0; fila<dimension; fila++){
  22.      for(columna=0; columna<dimension; columna++){
  23.         printf("elemento[%i][%i]: ", fila, columna);
  24.         fflush(stdout);
  25.         scanf("%i", &matriz_a[fila][columna]);          
  26.      }
  27.   }
  28.   printf("\n");
  29.  
  30.   /*Mostrar la matriz origen*/
  31.   printf("Matriz origen:\n");
  32.   for(fila=0; fila<dimension; fila++){
  33.      for(columna=0; columna<dimension; columna++){
  34.         printf("%2i", matriz_a[fila][columna]);
  35.      }
  36.      printf("\n");
  37.   }
  38.   printf("\n");
  39.  
  40.   /*Hacer la matriz traspuesta*/
  41.   for(fila=0; fila<dimension; fila++){
  42.      for(columna=0; columna<dimension; columna++){
  43.         matriz_b[columna][fila]=matriz_a[fila][columna];
  44.      }
  45.   }
  46.  
  47.   /*Mostrar la traspuesta*/
  48.   printf("Traspuesta de la matriz origen:\n");
  49.   for(fila=0; fila<dimension; fila++){
  50.      for(columna=0; columna<dimension; columna++){
  51.         printf("%2i", matriz_b[fila][columna]);
  52.      }
  53.      printf("\n");
  54.   }
  55.   printf("\n");
  56.   return 0;
  57. }
  58.  
  59.  
  60.  
  61.  
  62.  

Un saludo... y espero me puedan ayudar pronto porque no me queda mas tiempo y como ya no podia avanzarle quise ver si aqui me pueden orientar.

Gracias de antemano.



Título: Re: Transpuesta y simetrica
Publicado por: Rich_crazy2 en 10 Noviembre 2011, 01:34 am
Un punto que se me ha ido... aqui yo la hice para una matriz de 10x10 como lo comente en el codigo, pero se supone que debe ser de dimension nxn asi que ese es otro problemita que tengo...

Gracias nuevmente  espero me orienten.