Module: Sottoprogrammi: procedure e funzioni - 1


Problem

7/12

Accorciare il codice del programma

Problem

Rabbit Clover continua a imparare a programmare. Ha già studiato le linee. Recentemente è passato allo studio delle subroutine, ovvero delle procedure. Ma non capisce come usarli. Di recente, Clover ha voluto scrivere un programma che stampasse le parole più lunghe di due frasi in una colonna (se ci sono molte di queste parole, allora prenderà la prima che incontra). Si è completamente dimenticato delle procedure e ha scritto un programma molto complesso.
Eccola qui:
var max, n: numero intero;
s1, s2, parolaMax, parola:stringa;

inizio
    readln(s1);
    readln(s2);
    massimo := 0;
    s1 := s1 + ' ';
    mentre lunghezza(s1) > 0 per iniziare
        n := pos(' ', s1);
        parola := copia(s1, 1, n);
        if lunghezza(parola) > max quindi iniziare
            max := lunghezza(parola);
            parolaMax := parola;
        FINE;
        cancella(s1, 1, n);
    FINE;
    writeln(parolaMax);
    
    massimo := 0;
    s2 := s2 + ' ';
    mentre lunghezza(s2) > 0 per iniziare
        n := pos(' ', s2);
        parola := copia(s2, 1, n);
        if lunghezza(parola) > max quindi iniziare
            max := lunghezza(parola);
            parolaMax := parola;
        FINE;
        cancella(s2, 1, n);
    FINE;
    writeln(parolaMax);
FINE.
D'accordo, questo è un programma piuttosto difficile da capire. 
Aiuta Clover il Coniglio a migliorare il programma selezionando le stesse azioni nella procedura.