Module: Sub-rotinas: procedimentos e funções - 1


Problem

7/12

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.