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:
  1. 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.

  2. Un metodo sonoTuttiPari il quale, preso come argomento un array di interi, restituisca true se gli elementi dell'array sono tutti pari, false altrimenti.

  3. Un metodo contieneAlmenoUnNegativo il quale, preso come argomento un array di interi, restituisca true se l' array contiene almeno un elemento negativo, false altrimenti.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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}.

  10. 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.

  11. 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.

  12. 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.