Scrivere un programma che realizza alcune operazioni su array. Il programma, in particolare, deve implementare le seguenti funzionalità.
-
Stampa. Dato un array A e la sua lunghezza n, la funzione stampa a video l'array con valori tutti su una linea separati da virgole. Vengono aggiunte le partentesi quadre per rendere chiaro il fatto che si sta parlando di array.
Esempio. Dato
A = { 7, -2, 0, 1, 3, -8 }
allora a video verrà stampato[ 7, -2, 0, 1, 3, -8, ]
. -
Elementi distinti. Dato un array A e la sua lunghezza n, la funzione deve dare in output un array B con tutti e soli gli elementi distinti trovati in A e restituire la lunghezza m dell'array B.
Esempio. Dato
A = { 1, 2, 3, 1, 2, 3, 4 }
alloradistinti(A) = { 1, 2, 3, 4 }
. -
Massimo. Dato un array A e la sua lunghezza n, la funzione deve restituire il valore massimo trovato all'interno dell'array A. Attenzione al caso array vuoto.
Esempio. Dato
A = { 1, -13, 0, 4, 3, 7 }
alloramax(A) = 7
. -
Minimo. Dato un array A e la sua lunghezza n, la funzione deve restituire il valore minimo trovato all'interno dell'array A. Attenzione al caso array vuoto.
Esempio. Dato
A = { 7, -2, 0, 1, 3, -8 }
alloramin(A) = -8
. -
Normalizzazione. Dato un array A e la sua lunghezza n, la funzione deve dare in output un array B con i valori di A scalati a valori tra 0 e 1 e restituire la lunghezza dell'array B. La normalizzazione può essere ottenuta, nel caso di sequenze di soli valori positivi (>= 0), dividendo ogni elemento per il max dell'array.
Estendere il problema nel caso di array con possibili valori negativi. (Volutamente non sono forniti dettagli.)
Esempio
Dato
A = { 5, 13, 0, 3, 3, 7 }
alloranorm(B) = { 0.38, 1, 0, 0.23, 0.23, 0.53 }
.Dato
B = { -4, 2, -7, 15, 12, 3 }
alloranorm(B) = { 0.14, 0.40, 0, 1, 0.86, 0.45 }
. -
Numero di volte. Dato un array A e la sua lunghezza n, la funzione deve dare in output un array B contentente, per ogni valore distinto in A, il numero di volte che esso è stato trovato in A e restituire la lunghezza m di B.
Esempio
Dato
A = { 7, 4, 7, 1, -5, 7, 1 }
alloradistinti(A) = { 7, 4, 1, -5 }
eoccorrenze(A) = { 3, 1, 2, 1 }
.
Nota. Gli esempi seguono una notazione matematica.
Nota. Se più comodo, si implementare le funzionalità in main diversi.
Attenzione. Il main
deve contenere obbligatoriamente dei test
per le funzioni implementate, ovvero chiamate alle funzioni e stampe
dei valori restituiti. Non è necessario invece implementare nessuna
interazione con l'utente.
Attenzione. Tutte le funzionalità riportate devono essere obbligatoriamente implementate come funzioni.
Consegnare solamente i file sorgenti in un formato testuale. No screenshot, no file di word.