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

define-nueva-instruccion vea como
    inicio
        avanza;
        norte;
        avanza; avanza; avanza;
        oeste;
        avanza;
        sur;
    fin;

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

define-nueva-instruccion cuenta(i) como
    inicio
        si junto-a-zumbador entonces
            inicio
                coge-zumbador;
                cuenta(sucede(i));

            fin
            sino
                inicio
                    avanza;
                    multiplicar(i);
                fin;

   fin;

define-nueva-instruccion vacia como
    inicio
        sur;
        avanza;
        mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
        este;
        avanza; avanza;
        norte;
        avanza; avanza;
    fin;

define-nueva-instruccion rieganum como
    inicio
        mientras junto-a-zumbador hacer coge-zumbador;
        sur;
        avanza; avanza;
        este;
        mientras algun-zumbador-en-la-mochila hacer
            inicio
                deja-zumbador;
                si frente-libre entonces avanza;
            fin;
        oeste;
        mientras frente-libre hacer avanza;
        este; avanza; avanza; avanza;
        norte;
        avanza; avanza;

    fin;

define-nueva-instruccion  denominador como
    inicio
        mientras junto-a-zumbador hacer coge-zumbador;
         sur;
        repetir 2 veces avanza;
        oeste;
        avanza;
        este;
    fin;

define-nueva-instruccion coge-regados como
    inicio
        este;
        avanza;
        sur; repetir 3 veces avanza;
        oeste;
        mientras frente-libre hacer avanza;
        este;
        mientras frente-libre hacer
            inicio
                 mientras junto-a-zumbador hacer coge-zumbador;
                 avanza;
            fin;
        oeste;
        mientras frente-libre hacer avanza;
        norte;
   fin;
define-nueva-instruccion cociente  como
    inicio
         mientras junto-a-zumbador hacer coge-zumbador;
         norte;
         repetir 3 veces avanza;
         este;
         avanza;
         mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
         coge-zumbador;
         coge-regados;
    fin;

define-nueva-instruccion residuo como
    inicio
      si junto-a-zumbador entonces
          inicio
        mientras junto-a-zumbador hacer
            inicio
                avanza;
                si junto-a-zumbador entonces coge-zumbador;
            fin;
        si no-junto-a-zumbador entonces
            inicio
                este;
                avanza; avanza;
                norte;
                avanza;
                mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
                sur;
                avanza;
                oeste;
                avanza;
                cociente;
            fin;
        fin;
  fin;
define-nueva-instruccion denominador2 como
    inicio
      si algun-zumbador-en-la-mochila  entonces
          inicio
               si junto-a-zumbador entonces
                   inicio
                       deja-zumbador;
                       si frente-libre entonces avanza;
                       denominador2;
                   fin
               sino
                        inicio
                                   oeste;
                                   mientras frente-libre hacer avanza;
                                   este;
                                   avanza; avanza;
                                   denominador2;
                        fin;
          fin
          sino
              inicio
                   oeste;
                   si no-junto-a-zumbador entonces
                       inicio
                           mientras frente-libre hacer avanza;
                           este;
                           avanza; avanza;
                           cociente;
                       fin;
                   si junto-a-zumbador entonces residuo;

              fin;
   fin;
    inicia-ejecucion
    vea;
    cuenta(0);

    vacia;
    rieganum;
    denominador;
    denominador2;
        apagate;
    termina-ejecucion
finalizar-programa

