iniciar-programa
   define-nueva-instruccion gira(n) como inicio
      repetir n veces
         gira-izquierda;
   fin;
   define-nueva-instruccion mult(n) como inicio
      si junto-a-zumbador entonces inicio
         coge-zumbador;
         mult(n);
         repetir n veces
            deja-zumbador;
      fin;
   fin;
   define-nueva-instruccion cuenta(n) como inicio
      si junto-a-zumbador entonces inicio
         coge-zumbador;
         cuenta(sucede(n));
      fin
      sino inicio
         avanza;
         repetir n veces inicio
            si junto-a-zumbador entonces
               coge-zumbador;
         fin;
         si junto-a-zumbador entonces inicio
            repetir n veces
               deja-zumbador;
            gira(2);
            repetir 2 veces
               avanza;
            mult(n);
            gira(2);
            avanza;
            cuenta(sucede(n));
         fin;
      fin;
   fin;
   define-nueva-instruccion ordena(n) como inicio
      si junto-a-zumbador entonces inicio
         coge-zumbador;
         ordena(sucede(n));
      fin
      sino inicio
         gira(2);
         avanza;
         repetir n veces
            deja-zumbador;
         gira(2);
         avanza;
         avanza;
         deja-zumbador;
         gira(2);
         avanza;
         gira(2);
         cuenta(sucede(n));
      fin;
   fin;
   inicia-ejecucion
      avanza;
      ordena(1);
      apagate;
   termina-ejecucion
finalizar-programa