Salve ragazzi! Ho assolutamente bisogno del vostro aiuto... Io studio informatica e il prof di prg ci ha assegnato gli algoritmi su testo, precisamente formattazione di un testo e ricerca parola chiave. Il secondo l'ho fatto senza problemi, ma sul primo sto trovando molte difficoltà...Non è ke qualkuno sarebbe così gentile da darmi una mano?
Dato un insieme di linee di testo di lunghezza arbitraria, riformattare il testo così che le linee stampate non siano più lunghe di n caratteri. Esempio:
• Numero massimo di caratteri per linea n = 40
• Linee di testo in input
_– Prima linea più breve della lunghezza voluta
• Necessità di aggiungere testo dalla linea successiva
– Seconda linea più lunga della lunghezza voluta
• Necessità di riportare testo alla linea successiva
Descrizione dell'algoritmo:
1. Stabilisci il limite della lunghezza della riga e sommagli uno per considerare lo spazio bianco.
2. Inizializza a zero i contatori di carattere di riga e di parola e il segnale di fine-riga a FALSO.
3. Finchè non viene trovato un fine-riga
a. leggi e memorizza il prossimo carattere;
b. se il carattere è uno spazio, allora
b.1. se c'è un nuovo paragrafo allora
1.a. spostati sulla nuova riga e riaggiorna il contatore di caratteri di riga,
b.2. somma la lunghezza della parola corrente a quella della riga,
b.3. se la parola corrente provoca un eccesso di lunghezza della riga allora
3.a. passa alla riga successiva e poni la lunghezza della riga pari a quella della parola corrente,
b.4. copia la parola corrente ed i suoi successivi spazi e riinizializza il contatore di caratteri
b.5. disattiva il segnale di fine-riga di ingresso
b.6. se trovi un fine-riga di ingresso allora
6.a. attiva il segnale di fine riga e passa alla riga successiva.