Como dar importancia al codigo(Solucionado)

Iniciado por nolasco281, 11 Junio 2014, 05:01 AM

0 Miembros y 2 Visitantes están viendo este tema.

eferion

#10
Si quieres que se ejecute primero B sin importar su posición tienes que implementar algún sistema de cola con prioridades:


// Funciones.
// Podrian usar argumentos sin problemas haciendo un par de cambios
void funcionA( )
{
 // ...
}

void funcionB( )
{
 // ...
}

// Definicion de la estructura
typedef struct
{
 int prioridad;
 void (*funcion)(void);
} tarea;

// Declaracion y llenado de la cola (tambien se puede hacer dinamicamente )
tarea tareas[2];
tareas[0].prioridad = 1;
tareas[0].funcion = &funcionA;
tareas[1].prioridad = 2;
tareas[2].funcion = &funcionB;

// Ordenar las tareas
// Los bucles en este caso concreto son ridiculos, estan puestos para generalizar
for ( i = 0; i < 1; i++ )
{
 for ( j = 1; j < 2; j++ )
 {
   if ( tareas[ i ].prioridad < tareas[ j ].prioridad )
   {
     tarea temp = tareas[ i ];
     tareas[ i ] = tareas[ j ];
     tareas[ j ] = tareas[ i ];
   }
}

// Ejecucion por orden
Boton
{
 for ( i = 0; i < 2; i++ )
   tareas[ i ].funcion( );
}


Con lo vago de tu código es complicado hacer una aproximación mayor.

Un saludo.

nolasco281

#11
Gran idea no se me habia ocurrido usar colas y dalerle prioridad como indicas ya que como son FIFO
Grande te comeno se lo soluciono hoy de esa manera  ;-)

Muchas gracias. Saludos.




Gracias  ;-)

solo cambie de lugar algunas cosas y no dio problema mil gracias no hay forma de agradecer enserio
solo me toca agradecer y muchos saludos.

Código (cpp) [Seleccionar]
// Declaracion y llenado de la cola (tambien se puede hacer dinamicamente )
tarea tareas[2];
tareas[0].prioridad = 1;
tareas[0].funcion = &funcionA;
tareas[1].prioridad = 2;
tareas[2].funcion = &funcionB;


funciono solo le di la prioridad a la funcion como indicas y funciono perfecto gracias enorme idea.

Saludos a todos.
Lo que se puede imaginar... se puede programar.