Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/04/2014, 11:12
Avatar de ras_chalo
ras_chalo
 
Fecha de Ingreso: junio-2010
Mensajes: 369
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: algoritmo maestro-detalle

Cita:
Iniciado por HackmanC Ver Mensaje
Hola,

Código:
i=0
j=0
familia[ i ] <-- campo[Aj]
familia[ i ] <-- campo[Bj]

i<-- 2
j<--2

DONDE ( j< n ) 

   SI (campo[Aj] == campo[A (j+1)] )
       familia[ i ]  <-- campo [Bj]
        i<-- i+1
        j<-- j+1

   SINO
        familia[ i ] <-- campo[Bj]
        familia[ i+1 ] <-- campo[A (j+1)] 
        i<-- i+1
        j<-- j+1
   FIN SI
Un par de comentarios, nada más, en la primera línea roja se produce una instrucción NOP (posiblemente, un buen compilador de cualquier lenguaje debería de eliminarla completamente), es decir, esa instrucción no es útil porque no hace nada, inmediatamente después le asignas un valor diferente a "familia[ i ]".

La otra es que las instrucciónes "i<-- i+1" están tanto dentro del "SI" como dentro del "SINO" y son idénticas, es decir, tanto si entra al "SI" como al "SINO" siempre las ejecuta. Así que podrías sacarlas del SI y ponerlas después del SI; pero siempre dentro del "DONDE".

Si funciona o no el algoritmo es otra cosa,

Saludos,
tienes razon, no me fije al pasarlo al computador, ya que lo escribi a mano alzada...

aqui lo dejo con las modificaciones,
Código seudocodigo:
Ver original
  1. i=0
  2. j=1
  3. familia[ i ] <-- campo[Aj]
  4. familia[ i + 1 ] <-- campo[Bj]
  5.  
  6. i<-- 2
  7. j<--2
  8.  
  9. DONDE ( j< n )
  10.  
  11. SI (campo[Aj] == campo[A (j+1)] )
  12.    familia[ i ] <-- campo [Bj]
  13.  
  14.  
  15. SINO
  16.    familia[ i ] <-- campo[Bj]
  17.    familia[ i+1 ] <-- campo[A (j+1)]
  18.  
  19. FIN SI
  20.    i<-- i+1
  21.    j<-- j+1
  22. FIN DONDE
  23.  
  24. RETORNAR (familia[])

que dices ahora, esta correcto??