Prova di valutazione 13:
Array III

Questa prova di valutazione consiste nella scrittura di alcuni metodi Java per la gestione di array.

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


Esercizio 1: Inserimento ordinato.

Definire una classe InserimentoOrdinato che definisce i seguenti metodi di classe:

Per il test della classe InserimentoOrdinato è possibile utilizzare la classe di test JUnit TestInserimentoOrdinato.java.

Quando hai scritto, compilato, eseguito e verificato quanto definito, seleziona, copia e incolla la definizione della classe InserimentoOrdinato nella seguente casella di testo.


Esercizio 2: Massimi.

Si vuole scrivere un metodo di classe massimi che, ricevendo come parametro un array a non nullo e non vuoto di interi, calcola il numero di elementi dell'array a che hanno in a valore massimo. 

Detto in altro modo, va prima calcolato l'elemento max di valore massimo di a, e quindi il numero di occorrenze di max in a

Ad esempio, se a è l'array { 1, 2, 3 } , il massimo è l'elemento di valore 3, e il numero di elementi di a che hanno valore 3 è 1. Pertanto, 1 è il valore da restituire in questo caso. 

Se invece a è l'array { 1, 2, 3, 1, 3, –1 } , il massimo è ancora l'elemento di valore 3, ma a contiene due elementi di valore 3, e quindi va restituito il valore 2

Definire una classe Massimi nell'ambito della quale sono definiti i seguenti metodi di classe: 

Nel risolvere questo esercizio, può essere utile scrivere anche dei metodi di test per tutti i metodi definiti.

Quando hai scritto, compilato, eseguito e verificato quanto definito, seleziona, copia e incolla la definizione della classe Massimi nella seguente casella di testo.


Esercizio 3: Intersezione.

In questo esercizio, gli array di interi vengono utilizzati per rappresentare insiemi di interi, come segue:

In queste ipotesi, scrivere un metodo di classe int[] intersezione(int[] a, int[] b) che, ricevendo come parametri una coppia di array non nulli di interi a e b che rappresentano una coppia di insiemi s e t (in ciascuno dei due array a e b non ci sono elementi ripetuti), calcola e restituisce un nuovo array di interi che rappresenta l'insieme intersezione di s e t. Ad esempio, se a e b valgono rispettivamente { 1, 2, 5 } e { 0, 7, 3, 5, 2 }, allora va restituito l'array { 2, 5 } oppure, indifferentemente, l'array { 5, 2 }

Il metodo int[] intersezione(int[] a, int[] b) deve: 

  1. calcolare il numero com di elementi comuni tra a e b
  2. creare un array di interi intersezione di lunghezza com
  3. assegnare a ciascun elemento di intersezione il valore di un diverso elemento comune tra a e b
  4. restituire intersezione.  

Si definisca il metodo intersezione nell'ambito di una classe Intersezione. Definire anche tutti i metodi di supporto del caso (ad esempio, un metodo che calcola il numero di elementi comuni tra a e b) e metodi di test per tutti i metodi definiti. 

Osservazione: una precondizione del metodo intersezione è che sia l'array a che l'array b (considerati individualmente) non hanno elementi ripetuti o duplicati

Quando hai scritto, compilato, eseguito e verificato quanto definito, seleziona, copia e incolla la definizione della classe Intersezione nella seguente casella di testo.



Esercizio 4: Test per Intersezione.

Definire una classe di test JUnit per la classe Intersezione.

Poi, copia e incolla la definizione della classe TestIntersezione 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 valutazione.


Invio della soluzione proposta

Scrivi chi sei nei seguenti campi

Cognome
Nome
Email

Premi Invia messaggio per inviare il messaggio, oppure 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.