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

 

 


Tema destacado: Introducción a Git (Primera Parte)


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

Desconectado Desconectado

Mensajes: 23



Ver Perfil
Function(Crear Matriz) C++
« en: 22 Agosto 2011, 14:42 pm »

Saludos tengo este codigo de una matriz en C++:

Código:
///////////////////////////////////////////////////////Matriz A
  cout <<"Matriz A" <<endl;
  cout <<"Numero de Filas: ";   cin >>a; /*Filas*/
  cout <<"Numero de Columnas: "; cin >>b; /*Columnas*/
  vector<vector<int> > MatA ( a, vector<int> ( b ) );
  cout <<endl;

///////////////////////////////////////////////////////Valores Matriz A   
  int otro=0;
  cout <<"Dame los valores de la Matriz A " <<a <<"x"<<b <<endl;
  cout <<"(Con un enter por cada numero)"<<endl<<endl;
  for ( int i = 0; i < a; i++ ) {posicion.Y= 3+i;
  for ( int j = 0; j < b; j++ ){
  color(14);  
      //Posicionando cursor
  posicion.X= 3+otro;
  SetConsoleCursorPosition(consola, posicion);
  otro=otro+5;
  //Captura Valor
  cin >> valA;
  //Inserta valor a matriz
  MatA[i][j] = valA;

  color(15);
 }otro=0;}
system("cls");


Lo que yo quiero es crear la matriz llamandola desde una "function" como este codigo basico:

Código:
void matrizn(int **m,int f,int c){
//CARGANDO LA MATRIZ DINAMICA.
for(int i=0;i<f;i++)
for(int j=0;j<c;j++){
cout<<"Introduzca el elemento ["<<i+1<<"]["<<j+1<<"]= ";
cin>>m[i][j];}
}

pero lo que quiero es utilizar esta sintaxis:

Código:
vector<vector<int> > MatA ( a, vector<int> ( b ) );

para crear mi matriz, yo digo que todo el asunto esta en ese codigo, para que yo lo pueda hacer dinamico, pero busco y busco y no lo encuentro al igual que probe intentar hacerlo con el codigo mostrado y no me salio espero me puedan ayudar saludos.


En línea

No esperes tener el 100% de todo, por que no tendrás nada, mejor trabaja en equipo y obtendrás el 50% de algo.
Valkyr


Desconectado Desconectado

Mensajes: 646


Divide y vencerás


Ver Perfil
Re: Function(Crear Matriz) C++
« Respuesta #1 en: 22 Agosto 2011, 15:25 pm »

Ya que has declarado tu matriz de esta forma: vector<vector<int> > MatA ( a, vector<int> ( b ) ); puedes hacer el acceso como si fuese una matriz normal y corriente, es decir, MatA[posicion][posicion2] y por tanto puedes hacer asignación a esa posición.

También podrías crearte un vector de vectores vacíos e ir llenandolo con las operaciones push_back().

Saludos.


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Function(Crear Matriz) C++
« Respuesta #2 en: 22 Agosto 2011, 18:03 pm »

Debes precisar que es exactamente lo que quieres hacer ya que comentas 'crear la matriz llamandola desde una "function"' mientras que en la funcion que mencionas la matriz ya ha sido creada y solo se piden sus valores.

En el primer caso donde se crea y piden los datos de la matriz:
Código
  1. #include <iostream>
  2. using std::cin;
  3. using std::cout;
  4. using std::endl;
  5.  
  6. #include <vector>
  7. using std::vector;
  8.  
  9. vector<vector<int> > crear(int num_filas, int num_cols);
  10. void imprimir(vector<vector<int> >& matriz);
  11.  
  12. int main()
  13. {
  14.   cout << "Matriz A" << endl;
  15.  
  16.   cout << "Numero de Filas: ";
  17.   int num_filas;
  18.   cin >> num_filas;
  19.  
  20.   cout << "Numero de Columnas: ";
  21.   int num_cols;
  22.   cin >> num_cols;
  23.   cout << endl;
  24.  
  25.   vector<vector<int> > matriz = crear(num_filas, num_cols);
  26.   cout << "----" << endl;
  27.   imprimir(matriz);
  28.  
  29.   return 0;
  30. }
  31.  
  32. vector<vector<int> > crear(int num_filas, int num_cols)
  33. {
  34.   vector<vector<int> > matriz(num_filas, vector<int>(num_cols) );
  35.  
  36.   for (int i = 0; i < num_filas; i++)
  37.      for (int j = 0; j < num_cols; j++) {
  38.         cout << "matriz[" << i << "][" << j << "]: ";
  39.         cin >> matriz[i][j];
  40.      }
  41.  
  42.   return matriz;
  43. }
  44.  
  45. void imprimir(vector<vector<int> >& matriz)
  46. {
  47.   vector<vector<int> >::size_type i;
  48.   vector<int>::size_type j;
  49.  
  50.   for (i = 0; i < matriz.size(); i++)
  51.      for (j = 0; j < matriz[i].size(); j++)
  52.         cout << "matriz[" << i << "][" << j << "]: " << matriz[i][j] << endl;
  53. }

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
NecBalaam

Desconectado Desconectado

Mensajes: 23



Ver Perfil
Re: Function(Crear Matriz) C++
« Respuesta #3 en: 22 Agosto 2011, 23:25 pm »

Código:
[quote author=rir3760 link=topic=337020.msg1655184#msg1655184 date=1314028988]
Debes precisar que es [b]exactamente[/b] lo que quieres hacer ya que comentas 'crear la matriz llamandola desde una "function"' mientras que en la funcion que mencionas la matriz ya ha sido creada y solo se piden sus valores.

  while (opc!=6) {
  cout <<"Menu" <<endl;
  cout <<"1. Nueva Matriz A" <<endl;   ///Listo
  cout <<"2. Nueva Matriz B " <<endl; ///Listo
  cout <<"3. Suma matrices" <<endl; ///Listo
  cout <<"4. Multiplica matrices" <<endl;
  cout <<"5. Obtener Matriz transpuesta" <<endl;
  cout <<"6. Finalizar programa" <<endl;
  cout <<"Opcion (Numero): "; cin >>opc;
  switch (opc){
///////////////////////////////////////////////////////Matriz A
         case 1:   cout <<"Matriz A" <<endl;
               cout <<"Numero de Filas: ";   cin >>a; /*Filas*/
               cout <<"Numero de Columnas: "; cin >>b; /*Columnas*/
               system("cls");
                                        vector<vector<int> > MatA = crearMatA(a,b);
               break;
///////////////////////////////////////////////////////Matriz B
         case 2: cout <<"Matriz B"<<endl;
               cout <<"Numero de Filas: ";    cin >>c; /*Filas*/
               cout <<"Numero de Columnas: "; cin >>d; /*Columnas*/
               system("cls");
                                        vector<vector<int> > MatB = crearMatB(c,d);
               break;   


Muchas gracias, pero ahora tengo otro problema...

En switch me sale el siguiente error:
Error: transfer of control bypasses initialization of:

Cuando intento llamar la funcion que me pasaste y que implemente en todo mi programa, antes de entrar a la opcion de acciones si captura los datos mi matriz y me salen bien mis operaciones, multiplicacion, transpuesta y suma...

Lo que quiero es poder crear nuevamente mi matriz y trabajar con ella intentando declararla dentro de mi Switch... pero me sale ese error?... de casualidad sabes que sucede?...
ante mano muchas gracias :)
« Última modificación: 23 Agosto 2011, 05:15 am por NecBalaam » En línea

No esperes tener el 100% de todo, por que no tendrás nada, mejor trabaja en equipo y obtendrás el 50% de algo.
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Function(Crear Matriz) C++
« Respuesta #4 en: 23 Agosto 2011, 00:14 am »

OK. ¿Puedes publicar el codigo fuente completo del programa?

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
NecBalaam

Desconectado Desconectado

Mensajes: 23



Ver Perfil
Re: Function(Crear Matriz) C++
« Respuesta #5 en: 23 Agosto 2011, 04:57 am »

OK. ¿Puedes publicar el codigo fuente completo del programa?

Un saludo

podrias mejhor pasarme tu correo??... esque no lo quiero publicar :/
En línea

No esperes tener el 100% de todo, por que no tendrás nada, mejor trabaja en equipo y obtendrás el 50% de algo.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SWT - JAVA] Crear matriz de números
Java
JorgeEMX 2 7,171 Último mensaje 4 Enero 2007, 07:29 am
por JorgeEMX
Duda - Buscar si existe una matriz dentro de otra matriz
Programación Visual Basic
EddyW 2 6,007 Último mensaje 14 Agosto 2010, 06:18 am
por EddyW
Matriz Dentro de otra matriz
Programación Visual Basic
moba741120 3 6,914 Último mensaje 13 Abril 2011, 18:29 pm
por raul338
crear matriz con new en una clase c++
Programación C/C++
fafafa01 2 2,183 Último mensaje 28 Septiembre 2017, 23:41 pm
por _TTFH_3500
crear matriz recursiva
Programación C/C++
acer-x 4 5,678 Último mensaje 9 Enero 2020, 21:02 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines