1989 – Impaginazione di un testo

È dato un testo in italiano, memorizzato come sequenza di caratteri.
Si vuole produrre un’impaginazione del testo su più colonne (come in un articolo di giornale), producendo il risultato su stampante e su disco.

Le colonne devono essere separate tra loro da tre spazi bianchi.
Se non è possibile che una parola entri tutta intera alla fine della riga di una colonna, la parola non viene spezzata, ma portata nella riga successiva aumentando gli spazi di separazione tra le parole già presenti nella lista corrente, in modo che il testo risulti allineato sia a destra sia a sinistra nella colonna.
Il testo non contiene parole più lunghe di 15 caratteri.

Deve essere richiesto in input:

  • il numero di colonne su cui impaginare il testo;
  • il numero di caratteri per ogni colonna;
  • il numero di righe per l’intera pagina.

Il numero di caratteri su un’intera riga della pagina risulterà dal prodotto tra il numero di colonne e il numero di caratteri per colonna aumentato del numero di spazi di separazione tra le colonne.

Il candidato produca un’analisi del problema, specificando le condizioni aggiuntive.

Sviluppi inoltre l’algoritmo e codifichi in un linguaggio di programmazione conosciuto uno o più segmenti del programma.