elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  programa de matrices
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: programa de matrices  (Leído 4,720 veces)
NANAKATA

Desconectado Desconectado

Mensajes: 1


Ver Perfil
programa de matrices
« en: 14 Marzo 2009, 19:27 »

hola necesito un programa para sacar la diagonal secundaria de una matriz y sumarla y otro programa q me multiplique dos matrices de 3*3 y me de el resultado en una matriz tambien


En línea

Flakito81


Desconectado Desconectado

Mensajes: 508



Ver Perfil
Re: programa de matrices
« Respuesta #1 en: 14 Marzo 2009, 20:56 »

1- Haz una matriz en un papel y busca la relación indices-posición, para que saques la diagonal, aunque no es nada dificil.
2- Para el segundo problema te recomendaría lo mismo, pero si no te apetece complicarte busca en google que hay cientos de códigos


En línea

Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: programa de matrices
« Respuesta #2 en: 22 Marzo 2009, 23:48 »

Hola, este codigo te calcula la diagonal principal:
Código
  1. #include <stdio.h>
  2. int main()
  3. {
  4.    signed int dimension;
  5.    printf("Dimension de la matriz : ");
  6.    scanf("%i", &dimension);
  7.    signed int matriz[dimension][dimension];
  8.    for(signed int filas = 0; filas < dimension; filas++)
  9.    for(signed int columnas = 0; columnas < dimension; columnas++)
  10.    {
  11.        printf("\nFila %i, valor %i : ", filas, columnas);
  12.        scanf("%i", &matriz[filas][columnas]);
  13.    }
  14.    // Visualizacion :
  15.    for(signed int filas = 0; filas < dimension; filas++)
  16.    {
  17.    for(signed int columnas = 0; columnas < dimension; columnas++)
  18.    {
  19.    printf("%5i", matriz[filas][columnas]);
  20.    }
  21.    printf("\n");
  22. }
  23.    // Suma :
  24.    signed int suma = 0, n = 0;
  25.    for(signed int filas = 0; filas < dimension; filas++)
  26.    {
  27.        for(signed int columnas = 0; columnas < dimension; columnas++)
  28.        {
  29.            if(n == columnas)
  30.            {
  31.                suma += matriz[filas][columnas];
  32.            }
  33.        }
  34.        n++;
  35.    }
  36.    printf("Diagonal    : %i", suma);
  37.    return 0;
  38. }
  39.  

Código:
C:\>codes
Dimension de la matriz : 3

Fila 0, valor 0 : 76

Fila 0, valor 1 : 34

Fila 0, valor 2 : 6

Fila 1, valor 0 : 2

Fila 1, valor 1 : 34

Fila 1, valor 2 : 45

Fila 2, valor 0 : 2

Fila 2, valor 1 : 76

Fila 2, valor 2 : 1
   76   34    6
    2   34   45
    2   76    1
Diagonal    : 111
C:\>

Saludos.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Anibal784


Desconectado Desconectado

Mensajes: 762

Yo no la vote, pero me la tengo que aguantar igual


Ver Perfil WWW
Re: programa de matrices
« Respuesta #3 en: 23 Marzo 2009, 16:26 »

@Leo Gutierrez, en la suma de la diagonal ni se para qué haces dos for, una solución mejor sería (es más, yo estaba pensando para un ejemplo más complicado y resulta ser que es para una matriz cuadrada :P, ésto es aún más fácil
Código
  1. for(int i = 0; i < dimension; ++i){
  2.     suma += matriz[i][i];
  3. }
  4.  
fíjate que estás recorriendo la diagonal principal, quiere decir que tanto la fila como la columna es el mismo número, ahora ésto está bueno si es cuadrada, si es rectangular, se complica (no recuerdo si una matriz no cuadrada tiene diagonal principal y me da pereza buscar, pero suponiendo que sea lo mismo)
Código
  1. // Busco el mínimo para que cuando la recorra no escribir en lugares que no se debe
  2. int minimo = dimension_fila > dimensio_columna?dimension_fila : dimension_columna;
  3.  
  4. for(int i = 0; i < minimo; ++i){
  5.    suma += matriz[i][i];
  6. }
  7.  
En línea

El que llega sin que lo llamen, se va sin que lo echen.

Citar
Vos no la votaste por eso la tenes adentro.
Lo fino no es lo tuyo, y a mi me chupa un huevo, soy argentino y no peronista, y eso es lo que realmente te molesta.
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: programa de matrices
« Respuesta #4 en: 23 Marzo 2009, 17:26 »

@Anibal784, tienes razón es más facil la forma que pones, la adoptaré, gracias por el codigo.

Por cierto, este problema es de los que te ponen en la carrera de ingenieria en sistemas  :)
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
programa que saque promedio de tres matrices
.NET
920619 1 1,677 Último mensaje 13 Noviembre 2011, 01:08
por Keyen Night
duda con programa de matrices!!!!
Programación C/C++
honguitoSan 4 315 Último mensaje 10 Diciembre 2013, 17:26
por honguitoSan
Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines