Indice del libro

Segue un elenco di esercizi. Le soluzioni possono essere discusse online su Wikiversità, alla pagina Java/Esercizi.

Esercizi per impratichirsi su una alla volta delle strutture di base del linguaggio.

  1. Data una stringa, formarne una nuova con i caratteri successivi di quella di partenza, usando un ciclo for. Esempio: "testo" ====> "uftup".
    1. Variante che ignora gli spazi e i segni di punteggiatura.
  2. Data una stringa, convertire le lettere maiuscole in minuscole e viceversa, usando un ciclo for.
  3. Implementa i seguenti programmi Unix: grep, cat

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
  1. 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.
  2. 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.
  3. 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.