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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 ... 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 [118] 119 120 121 122 123 124 125
1171  Programación / Programación C/C++ / Re: Problema con un ejercicio en: 10 Julio 2013, 15:10 pm
Para empezar tu código es horrible, no lo tomes a mal, o bueno mejor si. Aparte no tiene sentido que plantes mil líneas de código porque sí... tienes que hacer tú la labor de investigación, aislar el problema e intentar solucionarlo. Si aún así te atascas entonces es cuando vienes aquí y plasmas la zona problemática comentando hasta dónde has llegado.

Llegar a un foro y decir... no me funciona mi programa... ahí os lo dejo... es lo que he dicho otras veces, ese tipo de trabajos cuestan dinero.

Si quieres que el código sea un poco más legible edita tu mensaje y la etiqueta que engloba el código modifícala para que quede tal que [ code = c ] pero sin espacios.

Después estaría genial que tabulases el texto para poder seguir un poco la traza de forma visual sin dejarse la vista.

Tener funciones cuyo nombre no dice nada como puntoa, puntob, puntoc es de las peores decisiones que puedes tomar a la hora de programar... ese nombre no aporta nada y tener que recordar después de unas semanas lo que hacía esa función puede significar recorrer un tortuoso camino.

No uses fflush( stdin ) no es portable y puede dar muuuchos problemas, hay otras formas más elegantes y usables de limpiar el buffer de entrada... por ejemplo ( no digo que tengas que usar esta, ni que sea la mejor, ni la única )

Código
  1. fseek( stdin, 0, SEEK_END );

Al fin y al cabo el buffer de entrada tiene la misma estructura en memoria que un archivo.

Más cosas, el primer elemento de un array es siempre el que tiene índice 0, por lo que las líneas

Código
  1. for(i=1;i<CE;i++)printf("\t Legajo: %d, Categoria: %s, Sueldo anual del docente %5.2f\n",vle[i],vnom[i],vsa[i]);
  2.  
  3. for(i=1;i<CM;i++) printf("\t Numero del mes : %8d Cantidad de sueldo pagado %15.2f\n",i,vcmeses[i]);
  4.  
  5. for(f=1;f<CM;f++)
  6. {
  7.  max = -999;
  8.  for(c=1;c<CE;c++)
  9.  {
  10.    if(mme[f][c] > max)
  11.    // ...

Están necesariamente mal ( y puede que haya más ).

Ah si, y aprende a usar el depurador... un programador que no sabe depurar un programa es como un arquitecto que no sabe diseñar planos.
1172  Programación / Programación C/C++ / Re: Herramientas para C++. Librería MiniHack 1.0 en: 10 Julio 2013, 14:47 pm
Yo creo que sí es posible sacar una metodología común y abstraer al usuario de la arquitectura que hay por debajo.

Tu piensa que hacer un sistema multiplataforma no siempre va a ser encontrar dos funciones que hacen lo mismo, con los mismos parámetros y preparar un wrapper para encapsularlo... la multiplataforma es generalmente más complicada y exige un estudio mayor.
1173  Programación / Programación C/C++ / Re: Herramientas para C++. Librería MiniHack 1.0 en: 10 Julio 2013, 12:47 pm
Nota: si el contenido en ventana no se muestra de la forma correcta, deberás cambiar en la librería minihack los valores ancho y alto que representan el tamaño de la ventana.

Es demasiado complicado poder sacar en multiplataforma las resoluciones disponibles para el monitor que se esté usando??

Se supone que si haces una aplicación la idea es que se vea bien en cualquier equipo, si no eres capaz de sacar las resoluciones sabrás que tu aplicación se ve bien en tu máquina, pero en el resto...
1174  Programación / Programación C/C++ / Re: (Proyecto) Librería minihack - Herramientas para desarrollar en: 9 Julio 2013, 17:09 pm
Si pensabas hacerla compatible con c la cagaste al usar la clase string en la interfaz ...

También puedes revertirlo y usar un array de char en vez de la clase string
1175  Programación / Programación C/C++ / Re: (Proyecto) Librería minihack - Herramientas para desarrollar en: 9 Julio 2013, 16:56 pm
También he visto que la librería está pensada para ser utilizada con c++... no te sale más a cuenta en este caso agrupar las funciones y presentarlas encapsuladas en clases ??

creo que el manejo entonces sería muchísimo más intuitivo a la par de sencillo.

No se, se me ocurre quizas un código tal que:

Código
  1. ventana.Clean( );
  2. ventana.DrawRect( rect1 );
  3. ventana.DrawPoint( point1 );
  4.  
  5. random.NewSeed( );
  6. int number = random.GetRandom( 0, 20 );
  7.  

En vez de estar llamando una y otra vez a funciones inconexas.
1176  Programación / Programación C/C++ / Re: Ayuda con ejercicio a entregar en c++ en: 9 Julio 2013, 16:45 pm
En tal caso, si no quieres beber de la fuente de la locura, hazte esquemas en papel donde quede bien claro que arrays tienen que ir de la mano y qué almacena cada uno.

Mantener demasiada información en la cabeza no suele ser una buena idea si quieres que tu software funcione.
1177  Programación / Programación C/C++ / Re: (Proyecto) Librería minihack - Herramientas para desarrollar en: 9 Julio 2013, 16:20 pm
muy buenos tus consejos, muchas gracias, y para los limites de pantalla esta definido vancho y valto

Esos no estaban en tu mensaje ;)

En ese caso retiro mi consejo 3.

Por cierto, a mi también me ha gustado eso de que intentas que sea multiplataforma.
1178  Programación / Programación C/C++ / Re: Ayuda con ejercicio a entregar en c++ en: 9 Julio 2013, 16:13 pm
Un ejemplo sencillo de la utilidad de las estructuras.

Imagínate que tienes que gestionar una clase de 30 alumnos y para cada alumno necesitas guardar su nombre, sus apellidos, su edad, y la nota media de cada trimestre.

con estructuras:

Código
  1. struct alumno
  2. {
  3.    char nombre[MAX];
  4.    char apellidos[MAX];
  5.    int edad;
  6.    float nota_media[3];
  7. };
  8.  
  9. struct alumno alumnos[30];
  10.  
  11. void imprimir( struct alumno alumnos[30] )
  12. {
  13.  int i;
  14.  for ( i=0; i<30; ++i )
  15.  {
  16.    printf( "%s\n", alumnos[ i ].nombre );
  17.    printf( "%s\n", alumnos[ i ].apellidos );
  18.    printf( "%d\n", alumnos[ i ].edad );
  19.  
  20.    // y esto podría ir en otro bucle
  21.    printf( "%f\n", alumnos[ i ].nota_media[ 0 ] );
  22.    printf( "%f\n", alumnos[ i ].nota_media[ 1 ] );
  23.    printf( "%f\n", alumnos[ i ].nota_media[ 2 ] );
  24.  }
  25. }

sin estructuras

Código
  1. char nombres[30][MAX];
  2. char apellidos[30][MAX];
  3. int edades[30];
  4. float notas_medias[30][3];
  5.  
  6. // ...
  7.  
  8. void imprimir( char nombres[30][MAX], char apellidos[30][MAX], int edades[30], float notas_medias[30][3] )
  9. {
  10.  int i;
  11.  for ( i=0; i<30; ++i )
  12.  {
  13.    printf( "%s\n", nombres[ i ] );
  14.    printf( "%s\n", apellidos[ i ] );
  15.    printf( "%d\n", edades[ i ] );
  16.  
  17.    // y esto podría ir en otro bucle
  18.    printf( "%f\n", nota_medias_medias[ i ][ 0 ] );
  19.    printf( "%f\n", nota_medias_medias[ i ][ 1 ] );
  20.    printf( "%f\n", nota_medias_medias[ i ][ 2 ] );
  21.  }
  22. }

Queda claro que con estructuras todo queda más recogido y "estructurado"... sin estructuras cada array va a su bola y es muy fácil meter la pata.
1179  Programación / Programación C/C++ / Re: Ayuda con ejercicio a entregar en c++ en: 9 Julio 2013, 16:04 pm
Pues a ver, para manejar los datos lo mejor sería utilizar estructuras de datos.

El lote 1 podría ser algo así

Código
  1. struct lote1
  2. {
  3.    char[MAX] legajo;
  4.    int mes;
  5.    char[MAX] categoria; // si fuese un indice podrias usar un int o un puntero
  6.    int horas_trabajadas;
  7. };

Y el lote 2...
Código
  1. struct lote2
  2. {
  3.  char[MAX] titular;
  4.  char[MAX] asociado;
  5.  char[MAX] adjunto;
  6. };

... a no ser que los datos del lote 2 sean referencias, en cuyo caso deberías sustituir los arrays por punteros.

1180  Programación / Programación C/C++ / Re: (Proyecto) Librería minihack - Herramientas para desarrollar en: 9 Julio 2013, 15:45 pm
Es un buen comienzo.

No soy un fan de las aplicaciones de consola, por lo que no te sabría valorar la utilidad de tu api, pero todo lo que sea abstraer al programador de la programación a bajo nivel ( si es con cierto sentido ) siempre es bien recibido.

Consejo: La api, o la creas con funciones en español o la creas con funciones en inglés... mezclar ambos idiomas no suele ser intuitivo cuando el sistema crece.

Consejo 2: Creo que si la api crece sería más manejable y eficiente implementar las funciones para que acepten estructuras para el caso, por ejemplo, de puntos y rectángulos. Soy partidario de pasar una estructura como referencia a tener que meter 4 parámetros en una función.

Consejo 3: Desde mi punto de vista falta al menos una función que te devuelva los límites de la pantalla.

Un saludo.
Páginas: 1 ... 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 [118] 119 120 121 122 123 124 125
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines