Laboratorio di Programmazione: Esercitazione 2.

  1. Definire una classe Media contenente solo un main il quale legga da consolle una sequenza di interi terminata da un non intero, e ne (calcoli e) scriva su consolle la media aritmetica (che può essere un numero con la virgola!). Che cosa succede se la sequenza è vuota? Perché? Rimediare semplicemente generando un messaggio di errore, oppure (soluzione migliore, se si è capaci) forzando l'utente ad immettere almeno un elemento (vedi esempio in rete nei programmi illustrati a lezione: iterazione/MaxCostringe ...ecc.)
  2. Definire una classe MaxDiff contenente solo un main il quale legga da consolle una sequenza di interi terminata da un non intero, contenente almeno un elemento, e scriva su consolle la differenza fra il numero più grande e il numero più piccolo della sequenza. In prima stesura trascurare il caso di sequenza vuota; per trattarlo, vedi suggerimenti esercizio precedente.
  3. Definire una classe QuantiDispari contenente solo un main il quale legga da consolle una sequenza di interi terminata da un non intero e scriva su consolle quanti sono i numeri dispari nella sequenza.
  4. Definire una classe Esponenziale contenente:
  5. Un po' più difficile: Definire una classe DuePiuGrandi contenente solo un main il quale legga da consolle una sequenza di numeri interi costituita da almeno due interi (rappresentanti ad es. redditi di persone, oppure punteggi in un concorso, ecc.) terminata da un non intero, e scriva su consolle i due valori più grandi (che possono anche essere uguali). Per semplicità, non si controlli che vengano effettivamente immessi almeno due valori (oppure ispirarsi ai suggerimenti esercizio 0).
    Consigli per l'ideazione del nucleo dell' esercizio.
    Si scriva prima il ciclo a partire dal seguente INVARIANTE.
    Al generico passo:
    la variabile max contiene il più grande dei valori letti finora;
    la variabile viceMax contiene il secondo più grande dei valori letti finora.
    Che cosa si deve fare allora nel corpo del ciclo? Leggere un nuovo valore e poi ...

    Si premetta poi l' inizializzazione in cui:
    si leggono i primi due valori e li si memorizza opportunamente in max e viceMax.