iniciar-programa
define-nueva-instruccion multiplica (n) como
  inicio
  si junto-a-zumbador entonces
     inicio
     coge-zumbador;
      multiplica (sucede (n));
   fin;
     si frente-libre entonces avanza;
      mientras junto-a-zumbador hacer
        inicio
          coge-zumbador;
          gira-izquierda;
          avanza;
          repetir 3 veces gira-izquierda;
          avanza;
          repetir 3 veces gira-izquierda;
          avanza;
          repetir n veces deja-zumbador;
          repetir 2 veces gira-izquierda;
          avanza;
          gira-izquierda;
          avanza;
          gira-izquierda;
          avanza;
          gira-izquierda;
        fin;

    fin;
    define-nueva-instruccion residuo (n) como
    inicio
      si junto-a-zumbador entonces
       inicio
       coge-zumbador;
        residuo (sucede (n));
        fin;
       gira-izquierda;
        avanza;
        repetir n veces deja-zumbador;
        apagate;
       fin;
  define-nueva-instruccion divide (n) como
    inicio
       si junto-a-zumbador entonces
     inicio
     coge-zumbador;
      divide (sucede (n));

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

     mientras junto-a-zumbador  hacer
     inicio
          si junto-a-zumbador entonces coge-zumbador;

          repetir 3 veces gira-izquierda;
     avanza;
     gira-izquierda;
     avanza;
     gira-izquierda;
     avanza;
     si junto-a-zumbador entonces
        coge-zumbador;

         si junto-a-zumbador entonces
          inicio
         repetir 2 veces gira-izquierda;
         avanza;
         repetir 3 veces gira-izquierda;
         avanza;
         repetir 3 veces gira-izquierda;
         avanza;
         repetir 3 veces gira-izquierda;
         fin
         sino
         inicio
           repetir 2 veces gira-izquierda;
         avanza;
         repetir 3 veces gira-izquierda;
         avanza;
         repetir 3 veces gira-izquierda;
         avanza;
         repetir 3 veces gira-izquierda;
         si junto-a-zumbador entonces
         inicio
          repetir 3 veces gira-izquierda;
          avanza;
          repetir n veces deja-zumbador;
          mientras junto-a-zumbador hacer
            inicio
            si junto-a-zumbador entonces coge-zumbador;
            repetir 2 veces gira-izquierda;
            avanza;
            si junto-a-zumbador entonces coge-zumbador
            sino
            inicio
             repetir 2 veces gira-izquierda;
             avanza;
             si junto-a-zumbador entonces residuo(0);
            fin;
            si junto-a-zumbador entonces
            inicio
            repetir 2 veces gira-izquierda;
            avanza;
             fin
             sino
            inicio
             repetir 2 veces gira-izquierda;
             avanza;
             si junto-a-zumbador entonces residuo(0);
            fin;

            fin;


          fin
          sino
           inicio
              gira-izquierda;
               avanza;
             repetir 3 veces gira-izquierda;
               avanza;
               deja-zumbador;
              apagate;
         fin;
          fin;
     fin;
      si no-junto-a-zumbador entonces
      inicio
       gira-izquierda;
      avanza;
      repetir 3 veces gira-izquierda;
      avanza;
       deja-zumbador;
       repetir 2 veces gira-izquierda;
       avanza;
       gira-izquierda;
       avanza;
       gira-izquierda;
      repetir  n veces deja-zumbador;
      divide(0);


       fin;


  fin;






    inicia-ejecucion
    si frente-libre entonces avanza;
    gira-izquierda;
    repetir 3 veces avanza;
    gira-izquierda;
    si frente-libre entonces avanza;
    gira-izquierda;
    multiplica(0);
    gira-izquierda;
    repetir 2 veces avanza;
    repetir 3 veces gira-izquierda;
    avanza;
    gira-izquierda;
    avanza;
    gira-izquierda;
    avanza;
     si junto-a-zumbador entonces
     inicio
       repetir 2 veces gira-izquierda;
       avanza;
       repetir 3 veces gira-izquierda;
       avanza;
       repetir 3 veces gira-izquierda;
       avanza;
       repetir 3 veces gira-izquierda;
       divide (0);
     fin
     sino
      inicio
      apagate;
     fin;

        apagate;
    termina-ejecucion
finalizar-programa
