iniciar-programa
define-nueva-instruccion norte como mientras no-orientado-al-norte hacer gira-izquierda;
define-nueva-instruccion sur como mientras no-orientado-al-sur hacer gira-izquierda;
define-nueva-instruccion este como mientras no-orientado-al-este hacer gira-izquierda;
define-nueva-instruccion oeste como mientras no-orientado-al-oeste hacer gira-izquierda;

define-nueva-instruccion toma(n) como
inicio
  si junto-a-zumbador entonces
    inicio
      coge-zumbador;
      toma(n);
      repetir n veces deja-zumbador;
    fin
  sino
    inicio
      este;
      avanza;
      sur;
      avanza;
      oeste;
      avanza;
    fin;
fin;

define-nueva-instruccion multiplica(n) como
inicio
  si junto-a-zumbador entonces
    inicio
      coge-zumbador;
      multiplica(sucede(n));
    fin
  sino
    inicio
      sur;
      avanza;
      toma(n);
    fin;
fin;

define-nueva-instruccion multiplicar como
inicio
  norte;
  avanza;
  este;
  avanza;
  norte;
   avanza;
  oeste;
  avanza;
  norte;
  avanza;
  multiplica(0);
fin;

define-nueva-instruccion resultado(n) como
inicio
  si no si-es-cero(n) entonces
    inicio
      si junto-a-zumbador entonces
        inicio
          coge-zumbador;
          resultado(precede(n));
        fin
      sino
        inicio
          sur;
          avanza;
          repetir n veces deja-zumbador;
        fin;
    fin
  sino
    inicio
      este;
      avanza;
      norte;
      avanza;
      oeste;
      avanza;
      deja-zumbador;
      este;
      avanza;
      sur;
      avanza;
      oeste;
      avanza;
      norte;
    fin;
fin;

define-nueva-instruccion cociente(n) como
inicio
  si junto-a-zumbador entonces
    inicio
      coge-zumbador;
      cociente(precede(n));
    fin
  sino
    inicio
      repetir n veces deja-zumbador;
    fin;
fin;

define-nueva-instruccion divide(n) como
inicio
  si junto-a-zumbador entonces
    inicio
      coge-zumbador;
      divide(sucede(n));
    fin
  sino
    inicio
      sur;
      avanza;
      este;
      avanza;
      norte;
      avanza;
      mientras orientado-al-norte hacer resultado(n);
      si junto-a-zumbador entonces cociente(n);
    fin;
fin;

define-nueva-instruccion dividir como
inicio
  este;
  repetir 2 veces avanza;
  norte;
  avanza;
  divide(0);
fin;



    inicia-ejecucion
        multiplicar;
        dividir;
        apagate;
    termina-ejecucion
finalizar-programa
