iniciar-programa
define-nueva-instruccion divide7(n) como inicio
si junto-a-zumbador y orientado-al-norte entonces inicio
coge-zumbador;
si junto-a-zumbador entonces inicio
coge-zumbador;
si junto-a-zumbador entonces inicio
coge-zumbador;
si junto-a-zumbador entonces inicio
coge-zumbador;
si junto-a-zumbador entonces inicio
coge-zumbador;
si junto-a-zumbador entonces inicio
coge-zumbador;
si junto-a-zumbador entonces inicio
coge-zumbador;
divide7(sucede(n));
fin
sino  inicio
mientras no-orientado-al-sur  hacer gira-izquierda;
deja-zumbador;
deja-zumbador;
deja-zumbador;
deja-zumbador;
deja-zumbador;
deja-zumbador;
divide7(n);
fin;
fin
sino inicio
deja-zumbador;  deja-zumbador;
deja-zumbador;
deja-zumbador;
deja-zumbador;
mientras no-orientado-al-sur hacer gira-izquierda;
divide7(n);
fin;
fin
sino inicio
deja-zumbador;
deja-zumbador;
deja-zumbador;
deja-zumbador;
mientras no-orientado-al-sur hacer gira-izquierda;
divide7(n);
fin;
fin
sino inicio

deja-zumbador;
deja-zumbador;
deja-zumbador;
mientras no-orientado-al-sur hacer gira-izquierda;
divide7(n);
fin;
fin
sino inicio
deja-zumbador;
deja-zumbador;
mientras no-orientado-al-sur hacer gira-izquierda;
divide7(n);
fin;
fin
sino inicio
deja-zumbador;
mientras no-orientado-al-sur hacer gira-izquierda;
divide7(n);
fin;

fin
sino inicio
si junto-a-zumbador entonces inicio
repetir n veces inicio
deja-zumbador;
deja-zumbador;
deja-zumbador;
deja-zumbador;
deja-zumbador;
deja-zumbador;
deja-zumbador;
fin;
fin;
fin;
fin;



 define-nueva-instruccion divide5(n) como inicio
si junto-a-zumbador y orientado-al-norte entonces inicio
coge-zumbador;
si junto-a-zumbador entonces inicio
coge-zumbador;
si junto-a-zumbador entonces inicio
coge-zumbador;
si junto-a-zumbador entonces inicio
coge-zumbador;
si junto-a-zumbador entonces inicio
coge-zumbador;
divide5(sucede(n));
fin
sino  inicio
mientras no-orientado-al-sur  hacer gira-izquierda;
deja-zumbador;
deja-zumbador;
deja-zumbador;
deja-zumbador;
divide5(n);
fin;
fin
sino inicio
deja-zumbador;  deja-zumbador;
deja-zumbador;
mientras no-orientado-al-sur hacer gira-izquierda;
divide5(n);
fin;
fin
sino inicio
deja-zumbador;
deja-zumbador;
mientras no-orientado-al-sur hacer gira-izquierda;
divide5(n);
fin;
fin
sino inicio
deja-zumbador;
mientras no-orientado-al-sur hacer gira-izquierda;
divide5(n);
fin;


fin
sino inicio
si junto-a-zumbador entonces inicio
repetir n veces inicio
deja-zumbador;
deja-zumbador;
deja-zumbador;
deja-zumbador;
deja-zumbador;
fin;
fin;
fin;
fin;




define-nueva-instruccion divide3(n) como inicio
si junto-a-zumbador y orientado-al-norte entonces inicio
coge-zumbador;
si junto-a-zumbador entonces inicio
coge-zumbador;
si junto-a-zumbador entonces inicio
coge-zumbador;
divide3(sucede(n));
fin
sino    inicio
mientras no-orientado-al-sur  hacer gira-izquierda;
deja-zumbador;
deja-zumbador;
divide3(n);
fin;
fin
sino inicio
deja-zumbador;
mientras no-orientado-al-sur hacer gira-izquierda;
divide3(n);
fin;
fin
sino  inicio
si junto-a-zumbador entonces inicio
repetir n veces inicio
deja-zumbador;
deja-zumbador;
deja-zumbador;
fin;
fin;
fin;
fin;

define-nueva-instruccion divide2(n) como inicio
si junto-a-zumbador y orientado-al-norte entonces inicio
coge-zumbador;
si junto-a-zumbador entonces inicio
coge-zumbador;
divide2(sucede(n));
fin
sino    inicio
mientras no-orientado-al-sur  hacer gira-izquierda;
deja-zumbador;
divide2(n);
fin;
fin
sino
si junto-a-zumbador entonces inicio
repetir n veces inicio
deja-zumbador;
deja-zumbador;
fin;
fin;
fin;
define-nueva-instruccion revisa(n) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
revisa(sucede(n));
fin
sino inicio
si ( si-es-cero(precede(precede(n))) o si-es-cero(precede(precede(precede(n))))) o (si-es-cero(precede(precede(precede(precede(precede(n)))))) o si-es-cero(precede(precede(precede(precede(precede(precede(precede(n))))))))) entonces inicio
repetir n veces deja-zumbador;
fin
sino inicio
si no si-es-cero(precede(n)) entonces inicio
repetir n veces deja-zumbador;
  mientras no-orientado-al-norte hacer gira-izquierda;
divide2(0);
mientras no-orientado-al-norte hacer gira-izquierda;
si junto-a-zumbador entonces divide3(0);
mientras no-orientado-al-norte hacer gira-izquierda;
si junto-a-zumbador entonces divide5(0);
mientras no-orientado-al-norte hacer gira-izquierda;
si junto-a-zumbador entonces divide7(0);
fin;
fin;
fin;
fin;
define-nueva-instruccion checa como inicio
si no junto-a-zumbador entonces inicio
mientras no-orientado-al-norte hacer gira-izquierda;
si orientado-al-norte entonces inicio
si frente-libre entonces inicio
avanza;
revisa(0);
si no-junto-a-zumbador  entonces inicio
mientras no-orientado-al-sur hacer gira-izquierda;
si frente-libre entonces avanza;
fin;
 fin ;
 fin;
 si no-junto-a-zumbador entonces inicio
mientras no-orientado-al-oeste hacer gira-izquierda;
si orientado-al-oeste entonces inicio
si frente-libre entonces inicio
avanza;
revisa(0);
si no-junto-a-zumbador  entonces inicio
mientras no-orientado-al-este hacer gira-izquierda;
si frente-libre entonces avanza;
fin;
 fin ;
 fin;
                fin;
 si no-junto-a-zumbador  entonces inicio
  mientras no-orientado-al-sur hacer gira-izquierda;
si orientado-al-sur entonces inicio
si frente-libre entonces inicio
avanza;
revisa(0);
si no-junto-a-zumbador  entonces inicio
mientras no-orientado-al-norte hacer gira-izquierda;
si frente-libre entonces avanza;
fin;
 fin ;
 fin;
      fin;
 si no-junto-a-zumbador entonces inicio
  mientras no-orientado-al-este hacer gira-izquierda;
si orientado-al-este entonces inicio
si frente-libre entonces inicio
avanza;
revisa(0);
si no-junto-a-zumbador  entonces inicio
mientras no-orientado-al-oeste  hacer gira-izquierda;
si frente-libre entonces avanza;
fin;
 fin ;
 fin;
 fin;
fin;
fin;

    inicia-ejecucion
    mientras junto-a-zumbador hacer inicio
    mientras junto-a-zumbador hacer coge-zumbador;
    checa;
    fin;

        apagate;
    termina-ejecucion
finalizar-programa
