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,