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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Matrices
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Matrices  (Leído 2,128 veces)
Dominic91

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Matrices
« en: 2 Septiembre 2019, 23:02 pm »

la duda que tengo es como guardar el resultado de la suma de 2 matrices bidimensionales en una matriz unidimensional

programa:
Código
  1. using namespace std;
  2.  
  3. int main(){
  4.    char opc;
  5.    do{
  6.    fflush(stdin);
  7.    int s,S;
  8.    int matriz[3][2];
  9.    int matriz2[3][2];
  10.    int matrizResultante[3][2];
  11.    int indiceFila, indiceColumna=0;
  12.    printf("Bienvenido, ¿Desea realizar una suma de matrices?-----SI o NO \n");//Se da la bienvenida y se realiza la pregunta al usuario//
  13. printf("1---SI \n");
  14. printf("2---NO \n");//opciones a elegir para el usuario//
  15. cin>>s;
  16. switch(s){
  17.  
  18. case 1:
  19. for(indiceFila=0; indiceFila<3; indiceFila++)
  20.    {
  21.        for(indiceColumna=0; indiceColumna<2; indiceColumna++)
  22.        {
  23.            printf("Dame un numero para la matriz 1\n");
  24.            scanf("%i", &matriz[indiceFila][indiceColumna]);
  25.        }
  26.    }
  27.     for(indiceFila=0; indiceFila<3; indiceFila++)
  28.    {
  29.        for(indiceColumna=0; indiceColumna<2; indiceColumna++)
  30.        {
  31.            printf("Dame un numero para la matriz 2\n");
  32.            scanf("%i", &matriz2[indiceFila][indiceColumna]);
  33.        }
  34.    }
  35.    for(indiceFila=0; indiceFila<3; indiceFila++)
  36.    {
  37.        for(indiceColumna=0; indiceColumna<2; indiceColumna++)
  38.        {
  39.            matrizResultante[indiceFila][indiceColumna]=matriz[indiceFila][indiceColumna] + matriz2[indiceFila][indiceColumna];
  40.        }
  41.    }
  42.    for(indiceFila=0; indiceFila<3; indiceFila++)
  43.    {
  44.        for(indiceColumna=0; indiceColumna<2; indiceColumna++)
  45.        {
  46.            printf("El resultado de la matriz es %i\n",matrizResultante[indiceFila][indiceColumna]);
  47.        }
  48.    }
  49.     case 2://en caso de que el usuario acepte la segunda opcion, lo enviara a este caso//
  50. cout<<"Gracias por haber utilizado el programa :) ¿desea realizar otra suma?\n";//pregunta al usuario si desea continuar o salir del prgorama//
  51. cout<<"Digite 's' para repetir el proceso\n ";//indicacion de opcion//
  52. cin>>S;
  53. scanf("%c",&opc);
  54.  }
  55.  
  56.    }
  57.    while(opc=='s'||opc=='S');//mientras se cumpla la variable el programa se repetira//
  58.   return 0;
  59. }

por su atencion gracias


En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.351


Ver Perfil
Re: Matrices
« Respuesta #1 en: 3 Septiembre 2019, 01:37 am »

Una matriz de varias dimensiones, en realdad puedes verla como una matriz de una sola dimensión.

en la mayoría d elenguajes, las dimensiones de una matriz, viene ordenadas por filas no por columnas, luego es lo mismo que leer el texto de un libro, donde el número de línea vendría a ser la segunda dimensión, y cada palabra en la línea la primera dimensión (la primera a la derecha)...
Así un array como este: array(0-9, 0-3), en memoria estaría posicionado así:
 0,1,2,3, 0,1,2,3, 0,1,2,3, 0,1,2,3, 0,1,2,3, 0,1,2,3, 0,1,2,3, 0,1,2,3, 0,1,2,3, 0,1,2,3

Es decir ppuedes transformarlo en un array unidmensional simplemente recalculando las psoiciones con cada dimension, la primera (la de la derecha, siempre es correlativa), la siguiente, aumenta desde 0, hasta la cantidad que tiene precisamente la dimension previa, etc... si hay más dimensiones...

en cuanto a la cantidad de ítems del array unidimensional, será la multiplicación de los elementos de cada dimensón
Luego:

Código:

cantidad = arraybid1(cantidaddim1 * cantidaddim2 * ... )
memoria para arraunidim(0 a cantidad -1)

Bucle y 0 a 9
    Bucle x 0 a 3
        arrayunidim(n) = arraybid1(y, x) + arraybid2(y, x)
        n +=1
    siguiente
siguiente

En realidad es algo bastante simplón a lo que cualquiera con algo de lógica puede llegar... o simplemente repasando la documentación del lenguaje respecto d elos arrays.

La escuela del mínimo esfuerzo, hace programadores mediocres. Considera estudiar la documentación para tener una base sólida.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
matrices en C#
Programación General
volterra 4 10,184 Último mensaje 18 Mayo 2010, 06:26 am
por Og.
[C++] Matrices
Programación C/C++
C-- 4 2,727 Último mensaje 21 Noviembre 2012, 01:14 am
por C--
matrices en c
Programación C/C++
howaboutno 2 2,249 Último mensaje 26 Diciembre 2012, 05:53 am
por durasno
c++ matrices[3][4]
Programación C/C++
lukaszg_15 6 2,975 Último mensaje 25 Marzo 2014, 20:38 pm
por Eternal Idol
Matrices en C
Programación C/C++
criser20 3 1,582 Último mensaje 3 Abril 2014, 20:38 pm
por leosansan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines