Concetti Chiave

  • Il metodo creaArrayConElementiRipetutiEsattamentePvolte restituisce un array di interi con elementi presenti esattamente p volte in una matrice M.
  • Viene utilizzato un metodo di supporto per contare le presenze di ciascun elemento nella matrice M, incrementando un contatore ad ogni occorrenza.
  • Un array temporaneo viene creato per memorizzare gli elementi che soddisfano la condizione di apparire esattamente p volte, evitando duplicati.
  • L'array finale viene creato con la dimensione appropriata e popolato con gli elementi dell'array temporaneo.
  • Il metodo include una funzione per visualizzare l'array finale, stampando gli elementi in output.

Indice

  1. Esempio di matrice
  2. Tema 99
  3. Creazione dell'array finale
  4. Visualizzazione dell'array

Tema 99

Scrivere un metodo creaArrayConElementiRipetutiEsattamentePvolte che riceve in ingresso una matrice M e un intero p e restituisce un array di interi contenente gli elementi presenti esattamente p volte in M.

Esempio di matrice

Ad esempio, sia M la matrice così costituita

3 18 15 7 2
1 9 11 4 6
7 2 6 3 5
5 1 25 2 1
3 2 33 4 4
allora creaArrayConElementiRipetutiEsattamentePvolte (M,2) darà
7 6 5
 public class tema99{ // ci serviamo di un metodo di supporto per calcolare se un elemento è presente // più volte nella matrice public static int presenzaInMatrice (int k, int[][] M){ // inzializziamo un contatore che verrà incrementato ogni volta che un elemento // si ripete int contaPresenze = 0; for (int i = 0; i 

Creazione dell'array finale

length; j++){ if (M[ i ][j] == k) contaPresenze++;} } return contaPresenze; } public static int[] creaArrayConElementiRipetutiEsattamentePvolte (int[][] M, int p){ // creiamo un array temporaneo con dimensione massima data dal prodotto delle // due dimensioni // di M, nel caso p fosse uguale a 1 e gli elementi di M fossero tutti distinti int[] arrayTemporaneo = new int[M.length * M[0].length]; // prepariamo un indice per la scansione dell’array finale int indiceArray = 0; // cominciamo a scorrere gli elementi della matrice for (int i = 0; i metodo precedente se un elemento è presente esattamente p // volte if (presenzaInMatrice (M[ i ][j], M) == p){ // con una variabile boolean controlliamo che lo stesso elemento non venga // inserito più volte nell’array boolean giàInserito = false; // scorriamo gli elementi dell’array for (int k = 0; k dimensione pari al valore // raggiunto dall’indice di scansione int[] arrayFinale = new int[indiceArray]; for (int i = 0; i

Visualizzazione dell'array

length; i++){ // trasferiamo gli elementi dell’array temporaneo nell’array finale con la // giusta dimensione arrayFinale[ i ] = arrayTemporaneo[ i ];} return arrayFinale; } public static void visualizzaArray (int[] V) { for (int i = 0; i Applicazione di prova */ public static void main(String[] args){ int[][] M = {{3,18,15,7,2}, {1,9,11,4,6}, {7,2,6,3,5}, {5,1,25,2,1}, {3,2,33,4,4}}; int[]V = creaArrayConElementiRipetutiEsattamentePvolte (M,2); visualizzaArray (V); } }

Domande da interrogazione

  1. Qual è lo scopo del metodo `creaArrayConElementiRipetutiEsattamentePvolte`?
  2. Il metodo `creaArrayConElementiRipetutiEsattamentePvolte` riceve in ingresso una matrice M e un intero p, restituendo un array di interi contenente gli elementi presenti esattamente p volte nella matrice M.

  3. Come viene verificata la presenza di un elemento nella matrice?
  4. La presenza di un elemento nella matrice viene verificata tramite il metodo di supporto `presenzaInMatrice`, che conta quante volte un elemento k appare nella matrice M.

  5. Qual è la logica per evitare duplicati nell'array finale?
  6. Per evitare duplicati nell'array finale, viene utilizzata una variabile booleana `giàInserito` che controlla se l'elemento corrente è già presente nell'array temporaneo prima di aggiungerlo.

  7. Come viene creato l'array finale a partire dall'array temporaneo?
  8. L'array finale viene creato con dimensione pari al valore raggiunto dall'indice di scansione, e gli elementi vengono trasferiti dall'array temporaneo all'array finale con la giusta dimensione.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community