Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/12/2011, 09:25
rderb
 
Fecha de Ingreso: diciembre-2011
Mensajes: 2
Antigüedad: 13 años
Puntos: 0
Dudas prgramación en c++ matrices... y de todo un poco

Hola muy buenas foro, me presento. Soy Rubén y soy principiante en el mundo de c y c++ y tengo una cuantas dudas que no consigo resolver y después de visitar muchas webs y foros me he decido por abrir un tema aquí a ver si puedo aclararme un poco y ya de paso que sirva para mas gente como yo que tenga este tipo de dudas.

Bueno empiezo comentando el programa que estoy haciendo e iré comentando las dudas que tengo.

Estoy haciendo un proyecto en visual 2010 de c++ el programa que estoy haciendo como practica es sobre un avión, dicho avión tiene sus asientos que serán ocupados por pasajeros, el avión tiene 2 zonas, primera clase y clase turista, y los pasajeros se dividen en dos tipos, menores y mayores de edad.

El proyecto lo estoy dividiendo en 3 archivos:

Pasajeros.h en donde implementaré una clase Pasajero y dos clases mas Adulto y Niño que heredarán de Pasajero

Avión.h donde implementare los asientos

Y por ultimo Main.cpp donde realizare las pruebas

Bueno estoy empezando implementando el avión, como ya he dicho mis conocimientos de programación no soy muy altos, para empezar he decidido comenzar de la manera mas simple, para ello cree un pequeño programa en c++ donde creo una matriz de un tamaño fijo que representan los asientos de un avión, dicha matriz es de tipo int y la inicializo a 0 y la muestro por pantalla, este es el código del pequeño programa:

Código C++:
Ver original
  1. #include <iostream>
  2. #define FILAS 5
  3. #define COLUMNAS 4
  4.  
  5. using namespace std;
  6.  
  7. void mostrar(int asientos[FILAS][COLUMNAS]);
  8.  
  9. int main(){
  10.     int asientos[FILAS][COLUMNAS]={0};
  11.     mostrar(asientos);
  12. }
  13.  
  14. void mostrar(int a[FILAS][COLUMNAS]){
  15.     int i,j;
  16.     for(i=0;i<FILAS;i++){
  17.         cout<<"\n";
  18.         for(j=0;j<COLUMNAS;j++){
  19.             cout<<a[i][j];
  20.         }
  21.     }
  22. }

hasta aqui todo parece ir bien, mi primera duda me surge a la hora de "separarlo", es decir en este primer programa este todo junto pero quiero hacerlo como lo explique al principio con Avion.c y Main.cpp pro claro estoy algo perdido ya que lo he intentado y por ahora la única manera que encuentro de obtener un resultado parecido al de antes es esta:

Este es el archivo Main.cpp

Código C++:
Ver original
  1. #include "Pasajeros.h";
  2. #include "Avion.h";
  3. #define FILAS 20
  4. #define COLUMNAS 6
  5.  
  6. using namespace std;
  7.  
  8. void mostrar(int a[FILAS][COLUMNAS]){
  9.     int i,j;
  10.               cout<<"\n\nAvion:";
  11.     for(i=0;i<FILAS;i++){
  12.         cout<<"\n";
  13.         for(j=0;j<COLUMNAS;j++){
  14.             cout<<a[i][j];
  15.         }
  16.     }
  17. }
  18.  
  19. int main(){
  20.     int asientos[FILAS][COLUMNAS];
  21.     mostrar(asientos);
  22.     return 0;
  23. }

Y este Avion.h
Código C++:
Ver original
  1. #ifndef _Avion_
  2. #define _Avion_
  3. #include <iostream>
  4. #define FILAS 6
  5. #define COLUMNAS 4
  6.  
  7. using namespace std;
  8.  
  9. class Avion{
  10.    
  11. public:
  12.    
  13. };
  14. #endif

Como podéis ver en Avion.h no tengo hecho nada, ya que si creo la matriz ahí no se como puedo mostrarla luego desde Main.cpp.

¿Esta bien hecho así?, ¿como puedo crear la matriz en Avion.h? También y no se muy bien por que... en el primer programa muestro la matriz correctamente todo con 0 pero cuando lo hago en el 2º proyecto la matriz me muestra el valor -858993406 en todas sus filas y columnas, ¿Estos son direcciones de memoria?

Bueno espero alguna respuesta y a ver si voy aprendiendo algo mas, voy a seguir con ello, hasta luego foro