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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Matriz como parametro de una funcion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Matriz como parametro de una funcion  (Leído 10,182 veces)
Dacan

Desconectado Desconectado

Mensajes: 237



Ver Perfil WWW
Matriz como parametro de una funcion
« en: 23 Marzo 2013, 02:14 am »

Como puedo obtener una matriz desde los parametros de una funcion?

Necesito hacer una funcion para multiplicar matrices:

Código
  1. int multmatrices(int afilas, int acolumnas, aarreglo[][], int bfilas, int bcolumnas, barreglo[][]){

Me da error al intentar obtener las matrices asi.


En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Matriz como parametro de una funcion
« Respuesta #1 en: 23 Marzo 2013, 02:37 am »

Tenes mal la declaracion de la funcion, tnes que especificar el tipo de dato de las matrices y los tamaños(filas y columnas)


Saludos


En línea

Ahorrate una pregunta, lee el man
Dacan

Desconectado Desconectado

Mensajes: 237



Ver Perfil WWW
Re: Matriz como parametro de una funcion
« Respuesta #2 en: 23 Marzo 2013, 02:53 am »

Código
  1. int multmatrices(int afilas, int acolumnas, int aarreglo[][], int bfilas, int bcolumnas, int barreglo[][]){
  2.  

Las filas y columnas seran asignadas por el usuario es decir para eso son las otras variables: afilas, acolumnas, bfilas, bcolumnas.
En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Matriz como parametro de una funcion
« Respuesta #3 en: 23 Marzo 2013, 02:59 am »

En el caso de las matrices tenes q especificar si o si las filas y columnas, sino tenes que usar matrices dinamicos para hacer uso de afilas, acolumnas,....


Saludos

PD: enrealiadad si se puede omitir las filas en la declaracion, pero no las columnas
En línea

Ahorrate una pregunta, lee el man
Dacan

Desconectado Desconectado

Mensajes: 237



Ver Perfil WWW
Re: Matriz como parametro de una funcion
« Respuesta #4 en: 23 Marzo 2013, 03:11 am »

Y como puedo utilizar matrices dinamicos, lo necesito ya que la funcion a crear necesariamente debe ser asignada por el usuario.
En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Matriz como parametro de una funcion
« Respuesta #5 en: 23 Marzo 2013, 03:24 am »

Debes especificar únicamente las columnas, pero en tu caso debes utilizar un apuntador y pasarle a la función el número de columnas de tu matriz dinámica ya que necesitas saber sí o sí el número de columnas ya que al final tu matriz en memoria no es más que un arreglo, es decir, digamos que tienes el siguiente arreglo en memoria:

1 2 3 4 5 6

Puedes verlo como varias matrices:

2x3
1 2 3
4 5 6

3x2
1 2
3 4
5 6

6x1
1
2
3
4
5
6

Todo depende de cómo la quieras tratar.
En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Matriz como parametro de una funcion
« Respuesta #6 en: 23 Marzo 2013, 03:43 am »

Citar
Y como puedo utilizar matrices dinamicos
Tnes q investigar el tema de "memoria dinamica", vas a ver funciones como malloc, realloc, free.. comenza intentando hacer un arreglo unidimencional dinamico y luego pasa por la matriz. Cualquier duda pregunta


Si te parece muy dificil el tema, la otra alternativa es crear matrices con tamaños maximos, ejemplo:
Código
  1. #include <stdio.h>
  2.  
  3. #define MAX_FILAS 10
  4. #define MAX_COLUMNAS 10
  5.  
  6. int multmatrices(int afilas, int acolumnas, int aarreglo[MAX_FILAS][MAX_COLUMNAS], int bfilas, int bcolumnas, int barreglo[MAX_FILAS][MAX_COLUMNAS]) { /* ........ */ }
  7.  
  8. int main() {
  9.  /* variables */
  10.  int a[MAX_FILAS][MAX_COLUMNAS], b[MAX_FILAS][MAX_COLUMNAS];
  11.  /* ingreso del usuario de los tamaños de la matriz; debe ser menor que los
  12.    valores maximos definidos */
  13.  
  14. multmatrices( afilas, acolumnas, a, b, bfilas, bcolumnas);
  15.  
  16. return 0;
  17. }
  18.  
En línea

Ahorrate una pregunta, lee el man
Dacan

Desconectado Desconectado

Mensajes: 237



Ver Perfil WWW
Re: Matriz como parametro de una funcion
« Respuesta #7 en: 23 Marzo 2013, 03:57 am »

Muchisimas gracias, me funciona mejor lo de declarar constantes y con un simple if puedo comprobar de que los valores del usuario sean menores :D

Lo de memoria dinamica y punteros quizas lo averigue para luego.

Saludos.
En línea

Wofo

Desconectado Desconectado

Mensajes: 168


Ver Perfil
Re: Matriz como parametro de una funcion
« Respuesta #8 en: 25 Marzo 2013, 16:39 pm »

Por si te interesa, lo de matrices/arrays dinámicos es muy fácil de implementar usando una de las librerías estándares que trae C++ y que se llama "vector".

Usarlo es tan sencillo como muestro en el código:
Código
  1. #include <vector>
  2.  
  3. int main() {
  4. int size = 5;
  5. vector<int> array(size);
  6.  
  7. array[0] = 8;
  8. array[1] = 3;
  9. //array[5] daría error porque está fuera del rango
  10. }
  11.  
Descripción: http://www.cplusplus.com/reference/vector/vector/
Ejemplos: http://www.mochima.com/tutorials/vectors.html
Fuente: Google.

Saludos,
Wofo.
« Última modificación: 25 Marzo 2013, 16:47 pm por Wofo » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines