iniciar-programa
define-nueva-instruccion divide(n) como
    inicio
     si frente-bloqueado entonces
         inicio
       repetir 3 veces gira-izquierda;
       avanza;
       gira-izquierda;
       avanza;
       gira-izquierda;
       avanza;
       repetir 3 veces gira-izquierda;
       si no-junto-a-zumbador entonces apagate;
        fin;
     si junto-a-zumbador entonces
         inicio
         repetir n veces
              inicio
               si junto-a-zumbador entonces
                   inicio
                   coge-zumbador;
                   fin
                   sino
                       inicio
                       repetir 3 veces gira-izquierda;
                       avanza;
                       deja-zumbador;
                       repetir 2 veces gira-izquierda;
                       avanza;
                       repetir 3 veces gira-izquierda;
                       fin;
              fin;
          si junto-a-zumbador entonces
          inicio
         divide(n);
         deja-zumbador;
         sal-de-instruccion;
         fin;
         fin;
    repetir 3 veces gira-izquierda;
    avanza;
    si junto-a-zumbador entonces
        inicio
         repetir n veces
             inicio
             si junto-a-zumbador entonces
             inicio
             coge-zumbador;
             fin
             sino
                 inicio
                 avanza;
                 deja-zumbador;
                 repetir 2 veces gira-izquierda;
                 avanza;
                 repetir 2 veces gira-izquierda;
                 fin;
             fin;
               avanza;
               mientras junto-a-zumbador hacer
               inicio
               coge-zumbador;
               repetir 2 veces gira-izquierda;
               avanza;
               deja-zumbador;
               repetir 2 veces gira-izquierda;
               avanza;
               fin;
        repetir 2 veces gira-izquierda;
        avanza;
        repetir 2 veces gira-izquierda;
        fin;
    si no-junto-a-zumbador entonces
    inicio
    gira-izquierda;
    avanza;
    gira-izquierda;
    repetir 2 veces avanza;
    gira-izquierda;
    avanza;
    deja-zumbador;
    fin
    sino
    gira-izquierda;
    avanza;
    gira-izquierda;
    repetir 2 veces avanza;
    gira-izquierda;
    avanza;
    fin;
define-nueva-instruccion multiplica(n) como
    inicio
        si junto-a-zumbador entonces
            inicio
            coge-zumbador;
            multiplica(n);
            repetir n veces deja-zumbador;
            sal-de-instruccion;
            fin;
        repetir 2 veces gira-izquierda;
        avanza;
        gira-izquierda;
        avanza;
        repetir 3 veces gira-izquierda;
        avanza;
        repetir 3 veces gira-izquierda;
        avanza;
    fin;
define-nueva-instruccion coeficiente(n) como
    inicio
    si junto-a-zumbador entonces
        inicio
        coge-zumbador;
        coeficiente(sucede(n));
        sal-de-instruccion;
        fin;
       repetir 3 veces gira-izquierda;
       si frente-bloqueado entonces
           inicio
           divide(n);
           sal-de-instruccion;
           fin
           sino
               inicio
               gira-izquierda;
               avanza;
               multiplica(n);
               sal-de-instruccion;
               fin;
    fin;
    inicia-ejecucion
    avanza;
    gira-izquierda;
    repetir 2 veces avanza;
    gira-izquierda;
    avanza;
    repetir 3 veces gira-izquierda;
    coeficiente(0);
    repetir 2 veces gira-izquierda;
    repetir 2 veces avanza;
    gira-izquierda;
    avanza;
    coeficiente(0);
        apagate;
    termina-ejecucion
finalizar-programa
