Laboratorio di Programmazione: Esercitazione 6
Metodi statici che operano su arrays
Si definiscano, all'interno della classe ArrayUtil realizzata nel Compito 3, gli ulteriori seguenti metodi statici:
- Un metodo indiceMax il quale, preso come argomento un array di interi (di lunghezza > 0), restituisca l' indice dell'elemento
di valore massimo.
Esempio: se l'array è {5, 27, -3, 62, -74, 21, 15, 18}, l'indice del massimo (di valore 62) è 3;
in tal caso il metodo restituirà quindi l'intero 3.
- Un metodo sonoTuttiPari il quale, preso come argomento un array di interi, restituisca true
se gli elementi dell'array sono tutti pari, false altrimenti.
- Un metodo contieneAlmenoUnNegativo il quale, preso come argomento un array di interi, restituisca true
se l' array contiene almeno un elemento negativo, false altrimenti.
- Un metodo indicePrimoElementoNegativo il quale, preso come argomento un array di interi, restituisca
l'indice del primo elemento negativo; se l'array non contiene elementi negativi restituisca -1.
- Un metodo indiceUltimoElementoNegativo il quale, preso come argomento un array di interi, restituisca
l'indice dell'ultimo elemento negativo; se l'array non contiene elementi negativi restituisca -1.
- Un metodo copiaElementiIndicePari il quale, preso come argomento un array (ad es. di doubles),
costruisca e restituisca un nuovo array (più corto!) contenente (nello stesso ordine) i valori
di indice pari (cioè 0,2,4, ...) dell' array argomento.
- Un metodo copiaElementiValorePari il quale, preso come argomento un array di interi,
costruisca e restituisca un nuovo array (più corto!) contenente (nello stesso ordine) gli elementi
di valore pari dell' array argomento.
Nota: Naturalmente il numero degli elementi di valore pari non è noto a priori;
il metodo richiesto deve prima creare un array di dimensione tale da poter contenere
tutti gli elementi pari che potrebbero esserci, e poi alla fine ricopiarli in un array della lunghezza corretta.
- Un metodo indiceUltimoElementoDiValoreCompresoFra il quale, presi come argomenti due interi inf e sup
e un array di interi, restituisca l' indice dell' ultimo elemento dell'array il cui valore risulti compreso
fra inf e sup (estremi compresi); se un tale elemento non esiste, restituisca -1.
Nota: se è inf > sup l'intervallo si consideri vuoto: in tal caso non vi possono essere
elementi aventi la proprietà richiesta.
- Un metodo creaInverso il quale, preso come argomento un array (ad es. di doubles, o di int, o di stringhe), costruisca e
restituisca un nuovo array che contenga gli elementi dell'array di partenza nell'ordine inverso.
Esempio: l'inverso dell'array {21, 5, 17, 23, 6, 19} è l' array {19, 6, 23, 17, 5, 21}.
- Un metodo inverti il quale, preso come argomento un array (ad es. di doubles, o di int, o di stringhe), lo
modifichi in modo che esso diventi l'inverso dell'array di partenza. Il metodo NON deve creare un nuovo array,
né usare un array di appoggio.
- Un metodo sonoInversi il quale, presi come argomenti due arrays, restituisca true se essi sono
l'uno l'inverso dell'altro, restituisca false altrimenti.
Nota: se i due arrays non hanno la stessa lunghezza sicuramente essi non sono l'uno l'inverso dell'altro.
- Un metodo èOrdinato il quale, preso come argomento un array di interi, restituisca true
se l'array è ordinato (in ordine crescente), restituisca false altrimenti.
Esempio: l'array {5, 7, 23, 23, 23, 51, 62, 62, 74, 75, 91} è ordinato;
l'array {5, 7, 23, 23, 18, 23, 51, 62, 74, 75, 91} non è ordinato;
l'array {34, 38, 54, 21, 76, 64, 32, 35} non è ordinato;
l'array {38, 35, 30, 29, 14, 8, 7} non è ordinato (in ordine crescente).
Si definisca poi, in un file separato, una classe ProvaArrayUtil2 contenente soltanto un main che
permetta di provare i metodi precedenti.