• Domingo 22 de Diciembre de 2024, 17:50

Autor Tema:  como organizar el code en Dev-Cpp  (Leído 6388 veces)

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
como organizar el code en Dev-Cpp
« en: Domingo 3 de Octubre de 2010, 02:05 »
0
apenas estoy comensando a programar un programa (llevo 300 lineas), y ya me esta costando entender y ubicarme entre tanto codigo  :wacko:

mirando la interfas del DevCpp vi que todo el codigo que escrivi estaba dentro de una pestaña, quisiera saver si puedo dividir el codigo en varias pestañas, si se puede diganme como

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: como organizar el code en Dev-Cpp
« Respuesta #1 en: Domingo 3 de Octubre de 2010, 06:32 »
0
Puedes separar el código en diferentes archivos, un ejemplo sencillo sería esto:

funciones.h
Código: C
  1.  
  2. #ifndef FUNCIONES_H
  3. #define FUNCIONES_H
  4.  
  5. void imprime( char *mensaje );
  6.  
  7. #endif
  8.  
  9.  

funciones.c
Código: C
  1.  
  2. #include "funciones.h"
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. void imprime( char *mensaje ) {
  7.   printf( "%sn", mensaje );
  8. }
  9.  
  10.  

main.c
Código: C
  1.  
  2. #include "funciones.h"
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. int main() {
  7.   imprime( "Hola mundo" );
  8.  
  9.   return 0;
  10. }
  11.  
  12.  
En main.c se usa la función imprime que está declarada fuera de main.c, de esta forma puedes separar el programa en módulos, o simplemente colocar código en diferentes archivos de manera que puedas tenerlo mejor organizado :).

En Dev-Cpp solo tienes que ir agregando archivos al proyecto para que compile sin problemas (para el ejemplo que puse), suerte.
La imaginación es el límite.
Hardware & Software | Mexchip

alb

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: como organizar el code en Dev-Cpp
« Respuesta #2 en: Domingo 3 de Octubre de 2010, 07:38 »
0
En C++, puedes declarar la clase en un archivo .h y definirla en un .cpp. Es importante al empezar un nuevo programa de tener una idea de los elementos mas importantes del programa. Eso te puede ayudar a separar el codigo en diferentes partes.

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: como organizar el code en Dev-Cpp
« Respuesta #3 en: Domingo 3 de Octubre de 2010, 17:50 »
0
no he podido aún, les digo lo que hice:

le di clic al boton "nuevo", luego elegi la opcion "nuevo codigo fuente", y puse este codigo:

#ifndef FUNCIONES_H
#define FUNCIONES_H
 
int fun();
 
#endif

luego volvi a crear otro codigo fuente y puse este codigo:

#include "funciones.h"
 
int fun() {
return 1;
}

Pero cuando intento compilar me da el siguiente error:

Citar
1 C:Dev-CppcarpetaNueva carpetaSinNombre5.cpp funciones.h: No such file or directory.
 C:Dev-CppcarpetaNueva carpetaMakefile.win [Build Error]  [SinNombre5.o] Error 1  

me marca la linea que dice #include "funciones.h" como la linea del error.

Les dejo una imagen, notaran que el archivo SinNombre4 es .cpp y no .h , talves sea ese el problema pero no se como hacer para que sea .h
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
« última modificación: Lunes 4 de Octubre de 2010, 00:41 por Alfonsos1 »

alb

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: como organizar el code en Dev-Cpp
« Respuesta #4 en: Domingo 3 de Octubre de 2010, 23:15 »
0
Has salvado el primer archivo con nombre "funciones.h" ?

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: como organizar el code en Dev-Cpp
« Respuesta #5 en: Lunes 4 de Octubre de 2010, 01:06 »
0
no sabia que era asi de sensillo!
gracias

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: como organizar el code en Dev-Cpp
« Respuesta #6 en: Martes 5 de Octubre de 2010, 20:04 »
0
PD: se puede declarar clases de esta manera? (osea declarar clases afuera del main.cpp)

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: como organizar el code en Dev-Cpp
« Respuesta #7 en: Miércoles 6 de Octubre de 2010, 07:39 »
0
Claro que se puede.
Es habitual tener dos archivos por clase: uno para la declaración y otro para la definición/implementación de la misma.
La imaginación es el límite.
Hardware & Software | Mexchip

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: como organizar el code en Dev-Cpp
« Respuesta #8 en: Viernes 8 de Octubre de 2010, 13:37 »
0
recuerden que soy nuevo  :blink:

astaba (y aún estoy) aprendiendo c++ en el sitio "C con clase", y aí no me dice como declarar una clase, de hecho ni siquiera sabia que se pudiera declarar y definir las clases por separado, como si fueran funciones. Asi que: ¿como se hace?

otro problema es que intente seguir la logica del ejemplo de Geo pero no anda (si me anda para las funciones, pero no para las clases)

intente esto:
cree un archivo llamado clases.h con este codigo:

Código: C++
  1. #ifndef CLASES_H//Es el mismo codigo del ejempo de Geo, pero remplace en donde decia "funcion" por "clase"
  2. #define CLASES_H
  3.  
  4. class claseterr;//aqui INTENTE declarar la clase
  5.  
  6. #endif
  7.  

luego cree un archivo llamado clases.cpp con este codigo:
Código: C++
  1. #include "clases.h"
  2.  
  3. class claseterr
  4. {
  5.  public:
  6.    int cordx;
  7.    int cordy;
  8.    distintosterr tipoterr;
  9.    claseterr()
  10.    {
  11.       tipoterr=vasio;
  12.    }
  13. };
  14.  
  15.  

y al comienso del main.cpp puse:
Código: C++
  1. #include "clases.h"
  2.  

EL error que me da es el siguiente:
elements of array `claseterr terreno[300]' have incomplete type

Epa

  • Miembro MUY activo
  • ***
  • Mensajes: 242
  • Nacionalidad: ar
    • Ver Perfil
Re: como organizar el code en Dev-Cpp
« Respuesta #9 en: Viernes 8 de Octubre de 2010, 16:10 »
0
Buenas, cuando uno dice definir una clase, no se refiere a la clase en si, sino a los metodos de la clase.

Cuando uno declara una clase, suele poner solo los prototipos de los metodos (a menos que quiera funciones inline, eso en el tutorial de conclase esta explicado), y despues las define en otro lado, aunque no es necesario que sea en un fichero aparte, es recomendable para que sea mas facil de leer.
La idea es la misma que cuando se hace un programa estructurado:

1-declaracion de funciones.
2-funcion main
3-definicion de funciones

Con la diferencia que las declaraciones se hacen dentro de la claseal y nombre de la funcion en la definicion (si se hace fuera de la clase) se le antepone el nombre de la clase seguido del operador de ambito ::

<tipo retorno> <nombreclase>::<nombre metodo>([lista parametros])
{
<cuerpo metodo>
}

te pongo un ejemplo sencillo haber si se entiende.

en el .h pones
Código: C++
  1.  
  2.  
  3. class MiClase
  4. {
  5.   public:
  6.     MiClase(){}; //constructor
  7.     ~MiClase(){}; //destructor
  8.     int leerdato();
  9.     void escribirdato(int d);
  10.     int potencia(unsigned int exponente);
  11.  
  12.   private:
  13.     int dato;
  14. };
  15.  
  16.  

y en el .c
Código: C++
  1.  
  2.  
  3. void MiClase::escribirdato(int d)
  4. {
  5.   dato = d;
  6. }
  7.  
  8. int MiClase::leerdato()
  9. {
  10.   return dato;
  11. }
  12.  
  13. int MiClase::potencia(unsigned int exponente)
  14. {
  15.   int i, n = 1;
  16.  
  17.   for(i = 1; i <= exponente; i++)
  18.     n *= dato;
  19.  
  20.   return n;
  21. }
  22.  
  23.  

Espero que ahora se entienda mejor.

Saludos
The sweet smell of a great sorrow lies over the land.


Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: como organizar el code en Dev-Cpp
« Respuesta #10 en: Viernes 8 de Octubre de 2010, 20:56 »
0
La verdad 300 líneas de código no es mucho.

Creo que el problema de fondo es que te falta seguir un estilo de codificación y configurar el editor para hacer tu código más legible:
1. Tu código está en blanco y negro, los editores modernos como el Notepad++ te permiten cambiar el color de operadores, cadenas, números comentarios, tipos, etc. Incluso te muestran visualmente cuando tienes paréntesis demás o te falta alguno.
2. Tu código no respeta un máximo de X columnas. (Generalmente X es 80.) Tener que usar la barra de desplazamiento horizontal para leer esas líneas extra largas es incómodo y pierdes capacidad de visualizar el código rápidamente.
3. Usa espacios después de las comas, punto y coma y para separar expresiones. Puede que al principio te resulte incómodo pero a la larga agradecerás la facilidad con la que podrás leer tu código.
4. Trata de usar siempre las llaves {} en lugar de escribir el código en una sola línea, a menos que dicho código sea extremadamente corto y fácil de entender, para evitar lineas innecesariamente largas.
5. En la medida de lo posible evita las anidaciones y múltiples niveles de tabulación. Posiblemente sea mejor llamar a una función en lugar de escribir el código dentro de la anidación. Lo ideal es que el bloque completo pueda ser visto en la pantalla sin tener que mover la barra vertical.
6. Evita funciones o métodos demasiado largos, si no es posible asegúrate que puedan ser divididos en etapas bien documentadas de forma que sea fácil ubicarse. Lo peor es tener una función que es un bloque indivisible con varios niveles de anidamiento conteniendo cientos de líneas; por que para entender dicha función hay que leerla entera y seguir el flujo completo de proceso. En cambio si está separada en etapas puedes enfocarte en una sola etapa y en el mejor de los casos puedes ver la parte que te interesa en pantalla sin necesidad de mover la barra vertical.
7. En general das buenos nombres a las variables, pero sería bueno que eches un vistazo a estilos de codificación.