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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: 1 ... 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 [117] 118 119 120 121 122 123 124 125
1161  Programación / Programación C/C++ / Re: (C++) Sobre la estructuración del código en: 11 Julio 2013, 11:17 am
Perfecto, simplemente he pasado un valor "nulo" en el caso 1 y de esa forma los ifs no se cumplen:

Me encanta cuando las cosas salen de forma tan sencilla.

A mi modo de ver es un indicativo de que el código está bien diseñado.
1162  Programación / Programación C/C++ / Re: AYUDA POR FAVOR :( en: 11 Julio 2013, 08:43 am
Aún sigues con esto??

Código
  1. struct equipo
  2. {
  3.    char nombre[20];
  4.    int puntos;
  5. };
  6.  
  7. typedef struct equipo equipo;
  8.  
  9.  
  10. int ordenarPorPuntos( const void* a, const void* b )
  11. {
  12.  const equipo* equipo_a = (const equipo*)a;
  13.  const equipo* equipo_b = (const equipo*)b;
  14.  
  15.  return equipo_b->puntos - equipo_a->puntos;
  16. }
  17.  
  18. void main ( )
  19. {
  20.  equipo grupoA[4];
  21.  
  22.  strcpy( grupoA[ 0 ].nombre, "Equipo 1" );
  23.  grupoA[ 0 ].puntos = 10;
  24.  
  25.  strcpy( grupoA[ 1 ].nombre, "Equipo 2" );
  26.  grupoA[ 1 ].puntos = 14;
  27.  
  28.  strcpy( grupoA[ 2 ].nombre, "Equipo 3" );
  29.  grupoA[ 2 ].puntos = 8;
  30.  
  31.  strcpy( grupoA[ 3 ].nombre, "Equipo 4" );
  32.  grupoA[ 3 ].puntos = 15;
  33.  
  34.  qsort( grupoA, 4, sizeof( equipo ), ordenarPorPuntos );
  35.  
  36.  int i;
  37.  for ( i=0; i<4; ++i )
  38.  {
  39.    printf( "%s   %-2d\n", grupoA[ i ].nombre, grupoA[ i ].puntos );
  40.  }
  41. }
1163  Programación / Programación C/C++ / Re: (C++) Sobre la estructuración del código en: 11 Julio 2013, 08:29 am
Entiendo que los dos archivos tienen que coexistir en el programa a la vez, no ?

Si estás en c, yo creo que la mejor opción es tener una variable que redirija el flujo del programa en una dirección u otra. Lo más normal sería añadir un 4º parámetro a la función para elegir el camino... un int que haga las veces de booleano, por ejemplo.

Si no, también podrías sacar lo que es común a dos funciones independientes ( funcA ( para lo que hay antes del if ) y funcB ( para lo que hay después ), de tal forma que:

Código
  1. void Transicion(Datos* param,short incrx,short incry)
  2. {
  3.    for (short ini = 1; ini < 21; ini++)
  4.    {
  5.      funcA( param, incrx, incry, i );
  6.      funcB( param, incrx, incry, i );
  7.    }
  8. }
  9.  
  10. void Transicion2(Datos* param,short incrx,short incry)
  11. {
  12.    for (short ini = 1; ini < 21; ini++)
  13.    {
  14.        funcA( param, incrx, incry, ini );
  15.  
  16.        if (param->Valor == 1)
  17.            circlefill(param->Lienzo,param->X*20+10,param->Y*20+10,5,pallete_color[14]);
  18.  
  19.        if (param->Valor == 2)
  20.            circlefill(param->Lienzo,param->X*20+10,param->Y*20+10,7,pallete_color[12]);
  21.  
  22.        funcB( param, incrx, incry, ini );
  23.    }
  24. }

Si estás en c++ podrías crear dos clases tal que una herede de la otra y sobreescriba la función o... si quieres aprovechar al máximo el código... que sobreescriba una función secundaria.

Me explico:

Código
  1. class A
  2. {
  3.  public:
  4.    void Transicion( Datos* param, short incrx, short incry )
  5.    {
  6.      // ...
  7.  
  8.      FuncIf( );
  9.  
  10.      // ...
  11.    }
  12.  
  13.  private:
  14.    virtual void FuncIf( Datos* param, short incrx, short incry )
  15.    { }
  16. };
  17.  
  18. class B : public A
  19. {
  20.    virtual void FuncIf( Datos* param, short incrx, short incry )
  21.    {
  22.       if ( ... )
  23.    }
  24. }

1164  Programación / Programación C/C++ / Re: [Duda] Funciones en: 11 Julio 2013, 08:20 am
Las funciones no tienen operadores de indirección.

Lo que sucede es que una función puede devolver algo... y ese algo si puede tener operadores de indirección o, directamente, ser un puntero.

Ejemplo:

Código
  1. class poo
  2. {
  3.  public:
  4.    int a;
  5. };
  6.  
  7. poo* func( );
  8.  
  9. int main( ... )
  10. {
  11.  // ...
  12.  
  13.  func( )->a = 7;
  14. }

De todas formas, visto tu nivel te recomiendo empezar con cosas más sencillas... conseguirás metas más fácilmente y eso te motivará más que lo que estás intentando hacer ahora.

1165  Programación / Programación C/C++ / Re: Matriz n*n en: 10 Julio 2013, 17:25 pm
jajajaja por ese precio también lo hago yo XDDDDD
1166  Programación / Programación C/C++ / Re: Herramientas para C++. Librería MiniHack 1.0 en: 10 Julio 2013, 17:24 pm
jejeje

Tu piensa que si existiesen funciones estándar para hacer todo, el código sería siempre perfectamente portable y quizás no harían falta librerías como la tuya...

... pero la realidad siempre es más cruda, cada sistema operativo tiene sus propias llamadas al sistema, lo que hace que las APIs sean diferentes y esto a su vez conlleva la amargura de saber que es complicado hacer aplicaciones completas que sean portables... salvo que uses librerías portables, como Qt... o la tuya si llegara el caso.

Al final estas librerías tienen por debajo una programación específica para cada arquitectura y separan los elementos específicos con directivas del precompilador ( que es lo que tu has descubierto hoy ).

El problema de usar directivas de precompilador es que dichas directivas se ejecutan antes de que el código pase al compilador, por lo que el compilador va a crear una solución específica para la arquitectura sobre la que esté corriendo... esto quiere decir en cristiano que el código resultante de una compilación no es portable.

Para que el código sea realmente portable tienes que distribuir los fuentes y es responsabilidad de cada usuario el compilar tu librería en su sistema para obtener un código que funcione correctamente en su máquina.

No se si me he explicado con claridad. Si tienes dudas pregunta.
1167  Programación / Programación C/C++ / Re: Matriz n*n en: 10 Julio 2013, 17:17 pm
En este foro se resuelven dudas y se ayuda... no se hacen tareas.

Si lo que quieres es que te lo hagan la pregunta a hacerte es... cuánto estás dispuesto a pagar por ello??
1168  Programación / Programación C/C++ / Re: Herramientas para C++. Librería MiniHack 1.0 en: 10 Julio 2013, 16:28 pm
ooo, no sabía sobre la compilación condicional, me ayudará muchísimo tu ejemplo, muchas gracias. saludos!

Y entonces como estabas haciendo la librería portable??
1169  Programación / Programación C/C++ / Re: Problema con un ejercicio en: 10 Julio 2013, 15:52 pm
Me alegro de haber sido útil :)

Un saludo.
1170  Programación / Programación C/C++ / Re: Problema con un ejercicio en: 10 Julio 2013, 15:40 pm
No te lo he dicho enfadado ni mucho menos.

Lo cierto es que hablar en un foro es algo frío y es difícil transmitir sentimientos o sensaciones.

También tienes que pensar que el foro puede parecer una solución fácil a tus problemas... pero si tu intención es dedicarte a esto en el futuro deberías plantearte el uso del foro como ultimísima opción después de sudar tinta intentando arreglarlo tu ( aunque ello incluya aprender a usar el depurador... cosa que te vendrá genial en el futuro ).

Es muy fácil acostumbrarse a que alguien te resuelva los problemas... pero con eso no aprendes a solucionarlos y llegara un momento en el que no haya nadie para resolverlos ( será cuando te paguen por hacer programas ). Si llega ese momento te prometo que sí que vas a saber lo que es sudar tinta :D
Páginas: 1 ... 102 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