Esercitazione #6

Istruzioni

In questa esercitazione, si utilizzeranno le principali strutture di controllo di Java.

Prima della fine dell'esercitazione, inviare tutti i file .java prodotti (anche se incompleti) a rbruni@cli.di.unipi.it come attachment di un messaggio di posta elettronica con Subject: ES-06.


Esercizi

Per gli esercizi che richiedono di leggere dei dati in input da tastiera, scaricare la classe Input.java. Un esempio di uso dei metodi di questa classe è contenuto nella classe EuroInput.java.

Qualora l'esercizio richieda un qualche tipo di iterazione, CHIARIRE IN UN COMMENTO se si tratta di iterazione determinata oppure indeterminata e motivare l'uso del costrutto impiegato.


  • [0]  Avviare Eclipse, creare un nuovo progetto chiamato ES-06 e sviluppare al suo interno un'opportuna classe Java per ognuno dei seguenti esercizi.
    Ricordarsi di importare il file Input.java all'interno del progetto ES-06.
  • [1]  Scrivere il programma Righe che chiede all'utente un intero positivo n, e stampa n righe, ciascuna contenente n ripetizioni del numero n. Se l'intero letto è minore o uguale a zero si ripete la lettura fino a quando l'utente immette un valore positivo.

    Per stampare la riga le sole istruzioni di stampa consentite sono:

    System.out.print(n)   // stampa il valore di n  senza andare a capo
    System.out.println()  // va a capo
    

    Esempio di interazione con il programma (in blu l'input dell'utente):

    java Righe
    
    n: -5
    n: 0
    n: 3
    
    333
    333
    333
    
  • [2]  Scrivere il programma Gradini che chiede all'utente un intero positivo n, e stampa una scala con n gradini. Se l'intero letto è minore o uguale a zero si ripete la lettura fino a quando l'utente immette un valore positivo.

    Esempio di interazione con il programma (in blu l'input dell'utente):

    java Gradini
    
    Gradini: -5
    Gradini: 0
    Gradini: 3
    
    +-+
      |
      +-+
        |
        +-+
          |
    
  • [3]  Ricordate il programma Interesse3? Vediamo come farne una versione più generale usando le istruzioni iterative.
    Scrivere il programma Interessi che legge il capitale iniziale, il tasso annuale e gli anni di giacenza e stampa il prospetto degli interessi maturati e del capitale accumulato per ogni anno di giacenza.
  • [4]  Scrivere il programma Somma che chiede all'utente una sequenza di interi conclusa dal valore 0 e stampa la somma e la media di tutti i valori letti.
  • [5]  Scrivere il programma ContaNumeriCrescenti che chiede all'utente una sequenza di valori numerici crescenti e ne stampa la lunghezza (la lettura termina quando si immette un valore minore o uguale al suo precedente).

    Esempio di interazione con il programma (in blu l'input dell'utente):

    java ContaNumeriCrescenti
    
    numero: -12
    numero: 0
    numero: 3
    numero: 8
    numero: 6
    
    Hai immesso una sequenza di numeri crescenti lunga 4
    
  • [6]  Una stringa è detta palindroma se può essere letta indifferentemente da sinistra verso destra o da destra verso sinistra (es. "ailatiditalia"). Scrivere un programma Palindroma che chiede ripetutamente all'utente di immettere una stringa e stampa un messaggio per indicare se è palindroma o no. Il programma termina quando l'utente immette la stringa vuota.
  • [7]  Usare il programma Palindroma dell'esercizio precedente per stabilire in modo veloce quale dei seguenti file contiene solo stringhe palindrome.

    Suggerimento: sfruttare la redirezione dello standard input e output (lanciando il programma da linea di comando) e i comandi grep e wc

  • [8]  Scrivere il programma Divisori che chiede all'utente un intero maggiore di 1 e ne stampa la lista di tutti i divisori. Se l'intero letto è minore o uguale a 1 si ripete la lettura fino a quando l'utente immette un valore accettabile.