ESERCIZI 1

  1. Scrivere un programma che legge (fino a quando incontra un numero negativo) una serie di numeri interi positivi e stampa i tre numeri più grandi della serie. Ad esempio, se la serie di numeri è [ 4, 12, 8, 5, 1, 11, 3 ] allora il programma stampa:
    I tre numeri più grandi sono: 12, 11, 8
  2. Una tripla pitagorica è una tripla di numeri interi a, b, c tali che   1 <= a <= b <= c   e   a2 + b2 = c2. Tali terne a, b, c sono le misure dei lati di un triangolo rettangolo (da qui il nome). Scrivere un programmma che legge un intero M e stampa tutte le triple pitagoriche con c <= M.
  3. Scrivere un programma che legge un intero n e stampa le cifre di n in lettere. Ad esempio, se n = 3427, il programma stampa: tre quattro due sette.
  4. Definire una nuova classe Data per rappresentare date. I campi necessari, tutti di tipo intero, sono giorno, mese e anno.
    Definire
  5. Aggiungere alla classe Employee un campo di tipo Data che contiene la data di nascita del dipendente. Modificarnee il costruttore in modo che prenda come argomento anche la data di nascita espressa tramite una stringa.
  6. Definire delle classi per la gestione (semplificata) di operazioni bancarie, secondo le seguenti indicazioni.
  7. Scrivere un programma che legge dalla linea di comando il pathname di un file di testo e un intero n e stampa a video le n parole più frequenti del file.
    1. Definire una classe ElencoParole che permette di lavorare con elenchi di parole. La classe deve definire almeno i seguenti costruttore e metodi:
      ElencoParole(String pathname)
      Costruisce un oggetto di tipo ElencoParole relativo al file specificato da pathname (che si suppone contenga un elenco di parole).
      int numeroParole()
      Ritorna il numero di parole dell'elenco.
      boolean trova(String par)
      Cerca la parola par nell'elenco e se la trova ritorna true, altrimenti ritorna false.
      String[] trova(String[] parArray)
      Ritorna in un array tutte le parole dell'array parArray che compaiono nell'elenco. Se nessuna parola compare nell'elenco ritorna un array con zero componenti.
    2. Aggiungere alla classe ElencoParole dell'esercizio precedente un metodo String[] ortografia(String par) che se la stringa par non compare nell'elenco allora ritorna in un array tutte le parole dell'elenco che differiscono da par solamente in un carattere. Se invece la stringa par è presente nell'elenco, allora ritorna null. Ecco alcuni esempi:
      STRINGA DI INPUT 	PAROLE RITORNATE
      alvero albero altero alzero avvero
      orologie omologie orologio urologie
      proglamma programma
      porgramma ARRAY VUOTO
      programma NULL
      ostografia optografia ortografia
    3. Aggiungere alla classe ElencoParole dell'esercizio sopra un metodo String[] anagrammi(String par) che ritorna in un array tutte le parole dell'elenco che sono anagrammi della parola par. Ecco alcuni esempi:
      PAROLA DI INPUT 	ANAGRAMMI
      albero albore lobare
      torta ratto rotta trota
      parole polare
      programma NESSUN ANAGRAMMA
      giornale algerino laringeo regalino rigelano rilegano
    4. Implementare un metodo uniElenchi(String path1, String path2, String unipath) che unisce in un nuovo elenco (scritto nel file specificato da unipath) tutte le parole degli elenchi contenuti nei file specificati da path1 e path2. Si assume che ogni linea dei file contiene esattamente una parola e che le parole sono ordinate alfabeticamente. Il nuovo file deve contenere anch'esso le parole una per linea, ordinate alfabeticamente e senza ripetizioni. Ecco un esempio con elenchi molto piccoli:
      ELENCO 1 	ELENCO 2 	ELENCO UNIONE
      albero alba alba
      borsa albero albero
      dirottare botte borsa
      programma programma botte
      zuppa zoppa dirottare
      zuppa programma
      zoppa
      zuppa