Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: poroto_q en 17 Julio 2012, 22:09 pm



Título: Ayuda con ARREGLOS MULTIDIMENCIONALES (matrices)
Publicado por: poroto_q en 17 Julio 2012, 22:09 pm
amigos necesito ayuda con un pequeño trabajo, estoy estudiando son mis primeras clases y no se mucho. Cualquier ayuda es agradecida.

Realiza un programa que pida al usuario las dimensiones deseadas para una matriz de dos dimensiones y luego le pida los datos para llenar la matriz arreglo. Después el programa debe dar la opción a través de un menú de calcular la suma de cualquier fila o columna del arreglo. Luego mostrar los datos de la columna con su correspondiente suma en pantalla. El menú debe tener la opción para salir y terminar el programa.
El programa debe trabajar con una matriz que tengan como máxima cantidad de filas y columnas 20. 


Título: Re: Ayuda con ARREGLOS MULTIDIMENCIONALES (matrices)
Publicado por: DickGumshoe en 17 Julio 2012, 22:17 pm
Bueno, por lo que veo necesitas memoria dinámica. Para ello, puedes usar la función malloc (http://www.cplusplus.com/reference/clibrary/cstdlib/malloc/)

Como el límite es 20 filas y columnas, haz un bucle do-while, pidiendo al usuario el número de filas y columnas que desea (n), mientras n <= 20

Para hacer la matriz de forma dinámica, aunque ya te he pasado el link para que veas cómo funciona malloc(), te dejo de todas formas cómo sería:

Código
  1. int** Inicializar(int x, int y) //x es el número de filas; y es el número de columnas
  2. {
  3. int **M, i;
  4. M = (int**)malloc(x * sizeof(int*)); //Inicializamos filas
  5. for(i = 0; i < x; i++)
  6. M[i] = (int*)malloc(y * sizeof(int)); //Inicializamos columnas
  7. return M;
  8. }
  9.  

Intenta hacer el resto y pregunta todas las dudas que tengas  :D

Saludos!


Título: Re: Ayuda con ARREGLOS MULTIDIMENCIONALES (matrices)
Publicado por: poroto_q en 17 Julio 2012, 22:24 pm
Gracias por tu ayuda y coolaboracion.


Título: Re: Ayuda con ARREGLOS MULTIDIMENCIONALES (matrices)
Publicado por: DickGumshoe en 17 Julio 2012, 22:38 pm
Una cosa, ¿has dado memoria dinámica? Es que si no es así, puedes hacerlo sin la función que te he dicho, ya que especifica que debe tener como máximo 20 filas y columnas.

Lo correcto sería hacerlo con malloc, ya que no sabes cuántas filas y columnas va a tener, pero si no lo has dado siempre puedes declarar la matriz como M[20][20].

Saludos, y cualquier duda, pregunta  ;)


Título: Re: Ayuda con ARREGLOS MULTIDIMENCIONALES (matrices)
Publicado por: marcico en 18 Julio 2012, 13:53 pm
consulta!

y si el array que tengo que hacer es mucho mas grande de 20... yo quiero hacer un  array depende de 2 cosa... ejemplo...

tengo en el array

            nd   o
            bn                               rf                                         df             
           1   2   3    4                   1   3                                     2     4

asd      x  x         x                    x   x                                    x      x
aqwe   x  x     x                             x                                     x
qre      x x      x   x                    x

mi duda es la sgte... como hago para que primero me pide si es nd, o bn, o fr, o df... bueno eso se como hacerlo... pero para hacer el array que depende de la decicion anterior y de la otra.. que seria si es 1,2,3,4, haga lo que marca las x...

de cuantas el arrayt seria de [3][8]? o alguna idea de como...




Título: Re: Ayuda con ARREGLOS MULTIDIMENCIONALES (matrices)
Publicado por: david_BS en 25 Julio 2012, 01:18 am
Hola, fijate algunos de mis posts pueden serte de utilidad
http://foro.elhacker.net/programacion_cc/processar_matrices-t356497.0.html
http://foro.elhacker.net/programacion_cc/manipulacion_de_un_objeto_multidimensional-t358231.0.html
http://foro.elhacker.net/programacion_cc/manipulacion_de_punteros_ejemplo_con_float-t358223.0.html



Título: Re: Ayuda con ARREGLOS MULTIDIMENCIONALES (matrices)
Publicado por: poroto_q en 25 Julio 2012, 10:03 am
Una cosa, ¿has dado memoria dinámica? Es que si no es así, puedes hacerlo sin la función que te he dicho, ya que especifica que debe tener como máximo 20 filas y columnas.

Lo correcto sería hacerlo con malloc, ya que no sabes cuántas filas y columnas va a tener, pero si no lo has dado siempre puedes declarar la matriz como M[20][20].

Saludos, y cualquier duda, pregunta  ;)

Gracias por tu ayuda, almento agradecer tan tarde pero estaba sin net.