Paolo Boldi
Problemi per la lezione del 3/11
- [La parola più lunga] Scrivete un'applicazione che legga una stringa e determini, al suo interno, la parola più lunga (o
meglio, una qualunque parola di lunghezza massima) e la stampi.
Una parola è una sequenza massimale di caratteri alfabetici: per determinare se un carattere è alfabetico, usate l'opportuno metodo statico
della classe
Character
.
- [A ritroso] Scrivete un programma che legga un testo terminato da una riga vuota,
e che ristampi il testo al contrario (dall'ultima riga alla prima e, per ciascuna riga, dall'ultimo carattere al primo).
Suggerimento: Usate uno StringBuilder
per costruire la stringa che alla fine verrà stampata; ogni volta che
leggerete una nuova riga, concatenerete all'inizio del builder la stringa stessa un carattere per volta.
Per risparmiare tempo… Per provare questo programma (ed eventualmente anche per i successivi) conviene che predisponiate, mediante un editor di
testo, un file di esempio (cioè, un testo concluso con una riga vuota), e che usiate il meccanismo di redirezione dello
standard input che avete imparato nella prima lezione su Linux.
- [Media armonica di frazioni] Scrivere un programma che operi come segue:
- legge una sequenza di frazioni (numeratore e denominatore), terminata quando il numeratore inserito è 0;
- stampa la loro media armonica; la media armonica è il reciproco della media aritmetica dei reciproci.
- [Conversione numeri] Scrivete un'applicazione che, presa in ingresso una
stringa contente numeri di tre cifre al massimo, stampi in uscita la
stringa ottenuta sostituendo ai numeri la loro rappresentazione in parole (senza tener conto delle eccezioni).
Per es. data la stringa: "oggi ho comprato 16 mele per 382 soldi"
l'applicazione deve produrre la stringa "oggi ho comprato diecisei mele per trecentoottantadue soldi".
Suggerimento 1: potete utilizzare il metodo static isDigit della classe
involucro Character per identificare le cifre presenti tra i caratteri
della stringa.
Suggerimento 2: nel caso vi dovesse servire (ma ne potete fare a meno), nella classe Integer
c'è un metodo statico che converte una stringa (costituita solo da cifre) in un int: corrisponde
alla funzione C atoi(int).