Java/Esercizi
Segue un elenco di esercizi. Le soluzioni possono essere proposte in pagina di discussione.
Facile
[modifica]Esercizi per impratichirsi su una alla volta delle strutture di base del linguaggio.
- Data una stringa, formarne una nuova con i caratteri successivi di quella di partenza, usando un ciclo
for
. Esempio: "testo" ====> "uftup".- Variante che ignora gli spazi e i segni di punteggiatura.
- Data una stringa, convertire le lettere maiuscole in minuscole e viceversa, usando un ciclo for.
- Implementa i seguenti programmi Unix: grep, cat
Medio
[modifica]Esercizi che richiedono l'uso combinato di più strutture del linguaggio.
Un numero viene chiamato numero primo se è diverso da 1 ed è divisibile solo per 1 e per se stesso.
I numeri primi sono 2, 3, 5, 7, 11, 13, 17, 19, ... Quindi, il primo numero primo è 2, il quarto è 7, il settimo è 17; verificalo con un programma che contiene questi metodi:
- boolean isPrimo(int i), determina se un numero è primo, andando per tentativi (lo divide per tutti i numeri inferiori; suggerimento: l'importante è il resto della divisione, usa l'operatore modulo
%
) - int nsimoNumeroPrimo(int n), calcola l'n-simo numero primo
- void main(String[] args)
Qual è il più grande numero primo che nsimoNumeroPrimo può restituire? (Suggerimento)
Qual è il successivo numero primo? (Suggerimento: BigInteger)
Progetti
[modifica]- Editor di testo
- Scrivi una classe EditorFrame che estende JFrame e che rappresenta l'interfaccia grafica di un editor di testo semplice, analogamente al Blocco Note di Windows e al TextEdit del Mac. Metti almeno i pulsanti tipici: per caricare e salvare un file, impostare il tipo di carattere, uscire dal programma, ecc. Scrivi il codice a mano, non generarlo con un editor.
- Scrivi una classe LogicaOperativa, che contiene un metodo per ogni operazione della logica che non appartiene all'interfaccia. Per es. i metodi caricaDaFile, salvaSuFile, terminaProgramma. Implementa questi i metodi.
- Aggiungi gli event listener al frame, richiamando i metodi di questa classe su un oggetto che viene passato nel costruttore.
Suggerimenti:
- la funzionalità di impostare il tipo di carattere può essere implementata direttamente nel frame, non nella classe LogicaOperativa.
Una delle possibili soluzioni è proposta alla pagina Java/Esercizi/Editor di testo, dove è possibile integrarla e discutere il proprio codice.