Encurtar o código do programa
                                  
                                    
  
         
        
             Problem
                                  Rabbit Clover continua a aprender programação. Ele já estudou as linhas. Recentemente, passou ao estudo das sub-rotinas, nomeadamente dos procedimentos. Mas ele não entende como usá-los. Recentemente, Clover queria escrever um programa que imprimisse as palavras mais longas de duas sentenças em uma coluna (se houver várias dessas palavras, ele usaria a primeira que encontrasse). Ele esqueceu completamente os procedimentos e escreveu um programa muito complexo.
Aqui está ela:
var max, n: inteiro;
s1, s2, palavraMax, palavra:string;
começar
    readln(s1);
    readln(s2);
    máximo := 0;
    s1 := s1 + ' ';
    enquanto comprimento(s1) > 0 para começar
        n := pos(' ', s1);
        palavra := copiar(s1, 1, n);
        se comprimento(palavra) > máximo então comece
            max := comprimento(palavra);
            palavraMax := palavra;
        fim;
        delete(s1, 1, n);
    fim;
    writeln(palavraMax);
    
    máximo := 0;
    s2 := s2 + ' ';
    enquanto comprimento(s2) > 0 para começar
        n := pos(' ', s2);
        palavra := copiar(s2, 1, n);
        se comprimento(palavra) > máximo então comece
            max := comprimento(palavra);
            palavraMax := palavra;
        fim;
        delete(s2, 1, n);
    fim;
    writeln(palavraMax);
fim.
Concordo, este é um programa bastante difícil de entender. 
Ajude Clover the Rabbit a melhorar o programa selecionando as mesmas ações no procedimento.