Prova di valutazione 3:
Analisi di sequenze

Questa prova di autovalutazione consiste nella scrittura di alcune applicazioni Java, che hanno la finalità di verificare la capacità di progettare e realizzare algoritmi per la scansione e l'analisi di alcune sequenze numeriche. 

Nella parte finale del modulo è possibile scrivere eventuali problemi che sono stati riscontrati nello svolgimento di questa prova.

Attenzione, il testo dell'esercizio (e la relativa soluzione) possono essere diversi a seconda che si intenda usare la classe Scanner oppure l'oggetto Lettore.in. In particolare, quando si parla di sequenza di numeri, bisogna intendere:

Inoltre, per sequenza non vuota di numeri si intende una sequenza che comprende almeno un numero.


Esercizio 1: Primo e ultimo.

Scrivere una applicazione PrimoUltimo che legge dalla tastiera una sequenza non vuota di numeri interi e calcola e visualizza sullo schermo il valore del primo e dell'ultimo elemento della sequenza. Ad esempio:

Scrivi una sequenza non vuota di numeri interi (terminata da <X>):
10 8 0 -5 22 14 X
Il primo elemento della sequenza vale 10
L'ultimo elemento della sequenza vale 14

Quando hai scritto, compilato, eseguito e verificato l'applicazione PrimoUltimo, copia e incolla il contenuto del file PrimoUltimo.java nella seguente casella di testo.


Esercizio 2: Media aritmetica.

Definizione: La media aritmetica di una sequenza non vuota è il rapporto tra la somma degli elementi della sequenza e il numero di elementi della sequenza stessa (ovvero, la sua lunghezza). Ad esempio, la media aritmetica della della sequenza 1.5 3.5 7.0 vale (1.5+3.5+7.0)/3 ovvero 4.0.

Scrivere una applicazione MediaAritmetica che legge dalla tastiera una sequenza non vuota di numeri reali e calcola e visualizza sullo schermo la media aritmetica della sequenza. Ad esempio:

Scrivi una sequenza non vuota di numeri reali (terminata da <X>):
1.5 3.5 7.0 X
La media aritmetica della sequenza è 4.0

Quando hai scritto, compilato, eseguito e verificato l'applicazione MediaAritmetica, copia e incolla il contenuto del file MediaAritmetica.java nella seguente casella di testo.


Esercizio 3: Escursione.

Definizione: L'escursione di una sequenza non vuota è la differenza tra l'elemento di valore massimo della sequenza e quello di valore minimo. Ad esempio, l'escursione della sequenza 10 -2 8 20 vale 22.

Scrivere una applicazione Escursione che legge dalla tastiera una sequenza non vuota di numeri interi e calcola e visualizza sullo schermo l'escursione della sequenza. Ad esempio:

Scrivi una sequenza non vuota di numeri interi (terminata da <X>):
10 8 0 -5 22 14 X
L'escursione della sequenza è 27

Quando hai scritto, compilato, eseguito e verificato l'applicazione Escursione, copia e incolla il contenuto del file Escursione.java nella seguente casella di testo.


Esercizio 4: Coppie di elementi consecutivi.

Scrivere un'applicazione CoppieElementiConsecutivi che legge dalla tastiera una sequenza non vuota di numeri interi e visualizza sullo schermo tutte le coppie di elementi consecutivi della sequenza. Ad esempio:

Scrivi una sequenza non vuota di numeri interi (terminata da <X>):
1 5 3 2 1 8 X
Le coppie di elementi consecutivi sono:
1 5
5 3
3 2
2 1
1 8

Altri casi:

Quando hai scritto, compilato, eseguito e verificato l'applicazione CoppieElementiConsecutivi, copia e incolla il contenuto del file CoppieElementiConsecutivi.java nella seguente casella di testo.


Esercizio 5: Numero di sottosequenze massimali di zeri consecutivi nella linea.

Questo esercizio è abbastanza difficile. 

Premessa:

Data una sequenza, per sottosequenza si intende una sottosequenza di elementi consecutivi della sequenza. Ad esempio, data la sequenza S = 1 2 3 4 5, allora 1 2 3 e 2 3 4 sono sottosequenze di S, mentre 1 2 4 non è sottosequenza di S.

In particolare, una sottosequenza di zeri è una sottosequenza formata solo da elementi che valgono zero (0).

Una sottosequenza massimale di zeri di una sequenza data è una sottosequenza di zeri che non può essere ulteriormente estesa (a destra o a sinistra) con elementi che valgono ancora zero. Ad esempio, nella sequenza 1 2 0 0 0 5, sono sottosequenza di zeri sia 0 (con il solo primo zero), che 0 (con il solo secondo zero) che 0 0 (con il primo e secondo zero) che 0 0 0  (con tutti e tre gli zeri). Tra queste sottosequenze di zeri, solo l'ultima è massimale.

Scrivere un'applicazione NumeroSequenzeZeri che legge dalla tastiera una sequenza non vuota di numeri interi e calcola e visualizza sullo schermo il numero di sottosequenze massimali di zeri consecutivi nella sequenza letta dalla tastiera. Ad esempio:

Scrivi una sequenza non vuota di numeri interi (terminata da <X>):
1 0 0 2 0 0 0 8 X
La sequenza contiene 2 sotto-sequenze massimali di zeri consecutivi

Altri casi:

Suggerimento:

Quando hai scritto, compilato, eseguito e verificato l'applicazione NumeroSequenzeZeri, copia e incolla il contenuto del file NumeroSequenzeZeri.java nella seguente casella di testo.


Difficoltà e problemi

Riporta nella seguente casella di testo eventuali difficoltà e problemi riscontrati nello svolgimento di questa prova di autovalutazione.


Invio della soluzione proposta

Scrivi chi sei nei seguenti campi

Cognome
Nome

Invia il messaggio

Premi il bottone Invia messaggio per inviare il messaggio, oppure il bottone Cancella per cancellare il contenuto del modulo.

Qualche secondo dopo aver premuto Invia messaggio, ti apparirà una pagina che riporta il testo del messaggio inviato.