iniciar-programa
define-nueva-instruccion ve (n) como
 inicio
     si no si-es-cero (n) entonces
         inicio

             si frente-libre entonces avanza
              sino
               inicio
                 gira-izquierda;
                 si frente-libre entonces avanza;
               fin;
            repetir 50 veces
             inicio
                mientras no-junto-a-zumbador y frente-libre hacer
                 avanza;
               si frente-bloqueado entonces
                  gira-izquierda;
            fin;

            si junto-a-zumbador entonces
                ve(precede(n));


         fin;

 fin;
 define-nueva-instruccion aba como
  inicio
      mientras no-orientado-al-oeste hacer
        gira-izquierda;
     mientras frente-libre hacer avanza;
     gira-izquierda;
     mientras frente-libre hacer avanza;
     gira-izquierda;
  fin;


define-nueva-instruccion cuenta(n) como
  inicio
     si junto-a-zumbador y frente-libre entonces
        inicio
          coge-zumbador;
          cuenta(sucede(n));
        fin;
        ve(n);
       mientras junto-a-zumbador hacer
        inicio
           cuenta(0);
         fin;
      aba;
      repetir n veces deja-zumbador;
      apagate;


  fin;
    inicia-ejecucion
      aba;
     cuenta(0);
       apagate;
    termina-ejecucion
finalizar-programa
