Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
•
Indice
PRIMA PARTE – ARRAYTema 1
Scrivere un metodo visualizzaArray che riceve in ingresso un array di interi V e ne stampa a video gli elementi.
Tema 2
Scrivere un metodo stampaArrayCapovolto che riceve in ingresso un array di interi V e stampa a video i suoi elementi in ordine inverso, dall’ultimo valore al primo.
Tema 3
Scrivere un metodo stampaElementiPositivi che riceve in ingresso un array di interi V e stampa a video tutti e solo gli elementi positivi in esso contenuti.
Tema 4
Scrivere un metodo sommaElementiArray che riceve in ingresso un array di interi V e restituisce il valore della somma di tutti i suoi elementi.
Tema 5
Scrivere un metodo verificaSeDueArraySonoUguali che riceve in ingresso due array A e B di interi e restituisce TRUE se gli array sono uguali, FALSE altrimenti.
Tema 6
Scrivere un metodo invertiArray che riceve in ingresso un array di interi V e ne inverte gli elementi effettuando uno spostamento degli stessi.
Tema 7
Scrivere un metodo scambiaElementiDiDueArrayInOrdineInverso che riceve in ingresso due array di interi A e B e trasferisce gli elementi dall’uno all’altro invertendone l’ordine.
Tema 8
Scrivere un metodo trovaMassimoInArray che riceve in ingresso un array di interi V e stampa a video il valore più alto in esso presente.
Tema 9
Scrivere un metodo isArrayCrescente che riceve in ingresso un array di interi V e verifica se l’array è crescente.
Tema 10
Scrivere un metodo verificaSommaTraIndiceEdElemento che riceve in ingresso un array di interi V erestituisce TRUE se ogni elemento di V, a partire dal secondo, è pari alla somma i + v[i-1], cioè parialla somma dell’indice della posizione che esso occupa e del valore dell’elemento che lo precede
Tema 11
Scrivere un metodo verificaSommaEprododttoDiOgniElementoConSuccessivo che riceve in ingresso un vettore di interi V (di dimensione pari) e un intero k e restituisce TRUE se per ogni elemento di V in posizione pari la sua somma con l’elemento successivo è minore o uguale a k e il suo prodotto con l’elemento successivo è maggiore o uguale a k.
Tema 12
Scrivere un metodo creaArrayConElementiDiAcorrispondentiAgliElementi MinoriDiB che riceve in ingresso due array di double A e B e restituisce un array contenente gli elementi di A che si trovano nelle stesse posizioni in cui, nell’array B, si trovano i valori minori.
Tema 13
Scrivere un metodo estraiPositiviPosizioniDispariMaggioriDelParametro Fornito che riceve in ingresso un vettore di interi V e un intero k e restituisce un sottovettore di interi A contenente tutti gli elementi di V di valore positivo e strettamente maggiore di k che si trovano in posizione dispari.
Tema 14
Scrivere un metodo creaVettoreConSommeDegliElementiPositivi che riceve in ingresso un array di interi V e restituisce un vettore di interi Z di dimensione pari alla dimensione di V, in cui l’i-esimo elemento è dato dalla somma degli elementi positivi a partire da V[ i ].
Tema 15
Scrivere un metodo esisteCorispondenteInModulo che riceve in ingresso due vettori di interi A e B, e restituisce TRUE se per ogni elemento di A esiste in B un elemento con lo stesso valore assoluto ma di segno opposto, FALSE altrimenti.
Tema 16
Scrivere un metodo contaDistintiInArray che riceve in ingresso un array di interi V e restituisce il numero di elementi distinti di V, cioè quelli che compaiono una sola volta.
Tema 17
Scrivere un metodo contaReplicatiInArray che riceve in ingresso un array di interi V e restituisce il numero di elementi replicati di V, cioè quelli che occorrono più volte.
Tema 18
Scrivere un metodo unisciDueArrayOrdinati che riceve in ingresso due array ordinati di interi A e B e restituisce un unico array costituito dagli elementi di A e B, congiunti in modo crescente.
Tema 19
Scrivere un metodo ricercaSequenziale che riceve in ingresso un array di interi V e uno specifico elemento da cercare al suo interno. Il metodo scorre uno alla volta tutti i valori fino a trovare l’elemento voluto e restituisce la posizione che esso occupa nell’array. Se l’elemento cercato non si trova nell’array, il metodo restituisce il valore -1.
Tema 20
Scrivere un metodo ricercaBinaria che riceve in ingresso un array ordinato di interi V e uno specifico elemento da cercare al suo interno. Il metodo suddivide l’array in due metà e scarta, di volta in volta, la metà che di certo non contiene il valore cercato.
Tema 21
Scrivere un metodo estraiMassimiDaiSottovettori che riceve un vettore di interi V e un intero k e restituisce un sottovettore W formato dai massimi dei sottovettori di V ottenuti considerando k elementi consecutivi di V alla volta.
Tema 22
Scrivere un metodo isArrayValoriAlternaiPariDispari che riceve in ingresso un vettore di interi V e restituisce TRUE se V è un vettore a valori alternati pari e dispari, cioè se non ci sono due elementi consecutivi entrambi pari o entrambi dispari. Si consideri lo 0 come valore pari.
Tema 23
Scrivere un metodo sommaElementiPrimoArrayConIndiceDatoDaElementi SecondoArray che riceve in ingresso due array di interi A e B, e calcola la somma degli elementi di A i cui indici coincidono con gli elementi di B.
Tema 24
Scrivere un metodo stampaElementiDelPrimoArrayMaggioriDegli ElementiDelSecondoArray che riceve in ingresso due vettori di interi A e B e stampa gli elementi di A maggiori di tutti gli elementi di B.
Tema 25
Scrivere un metodo trovaDueConsecutiviPositiviOppureNegativi che riceve in ingresso un vettore V e restituisce TRUE se in V sono presenti due elementi consecutivi entrambi positivi o entrambi negativi.
Tema 26
Scrivere un metodo verificaSeUnArrayContieneUnSecondoArray che riceve in ingresso due vettori di interi A e B, e restituisce TRUE se il vettore B è contenuto in A, cioè se tutti gli elementi di B sono presenti in A consecutivamente e nello stesso ordine.
Tema 27
Scrivere un metodo creaArrayConFattoriali che riceve in ingresso un vettore di interi V e restituisce un vettore A della stessa dimensione di V contenente in ogni cella il fattoriale del corrispondente elemento dell’array V.
Tema 28
Scrivere un metodo esisteElementoInACheSommatoConElementoDiB verificaSommaK che riceve in ingresso due vettori di interi A e B e un intero k e restituisce TRUE se per ogni elemento di A esiste in B un elemento corrispondente tale che A[ i ] + B[j] = k, FALSE altrimenti.
Tema 29
Scrivere un metodo creaVettoreConElementiDiARipetutiInB che riceve in ingresso due vettori di interi A e B e restituisce un vettore di interi Z contenente gli elementi di A che sono presenti in B un numero di volte pari all’elemento stesso.
Tema 30
Scrivere un metodo estraiElementiDelPrimoArrayMultipliDiQualche ElementoDelSecondo che riceve in ingresso due vettori A e B di interi, e restituisce un vettore Z contenente gli elementi di B che sono multipli di qualche elemento di A.
Tema 31
Scrivere un metodo creaArrayConMedieOppureConDifferenze che riceve in ingresso un vettore di interi V e restituisce un vettore A della stessa dimensione di V così costituito.
Tema 32
Scrivere un metodo creaArrayConElementiDiApresentiMassimoDueVolte InBeMinimoQuattroInC che riceve in ingresso tre array di interi A, B, C e restituisce un array che contiene solo gli elementi di A presenti massimo due volte in B e minimo quattro volte in C.
Tema 33
Scrivere un metodo verificaSeOgniElementoDelPrimoArrayOccorrePiu VolteNelSecondoArray che riceve in ingresso due vettori di interi A e B e estituisce TRUE se ciascun elemento del primo vettore è presente al più una volta nel secondo, FALSE altrimenti.
Tema 34
Scrivere un metodo trovaElementoConMaggioreFrequenzaInArray che riceve in ingresso un array di interi V e restituisce l’elemento dell’array che compare più volte.
Tema 35
Scrivere un metodo isPariSommaElementiPrecedenti che riceve in ingresso un array di interi V e restituisce un array di boolean, della stessa dimensione di V, in cui il valore dell’i-esima posizione è uguale a TRUE se la somma degli elementi in posizione minore uguale ad i è un numero pari; FALSE altrimenti.
Tema 36
Scrivere un metodo isPariSommaElementiSuccessivi che riceve in ingresso un array di interi V e restituisce un array di boolean, della stessa dimensione di V, in cui il valore dell’i-esima posizione è uguale a TRUE se la somma degli elementi in posizione maggiore uguale ad i è un numero pari; FALSE altrimenti.
Tema 37
Scrivere un metodo creaArrayConElementiMultipliDeiPrecedenti che riceve in ingresso un array di interi V e restituisce un array di interi A contenente gli elementi di V che sono multipli di tutti gli elementi da cui sono preceduti.
SECONDA PARTE – MATRICI
Tema 38
Scrivere un metodo riempiMatrice che consente di impostare le dimensioni di una matrice e di inserire gli elementi al suo interno.
Tema 39
Scrivere un metodo visualizzaMatrice che riceve in ingresso una matrice di interi M e visualizza i suoi elementi secondo una struttura bidimensionale di righe e colonne.
Tema 40
Scrivere un metodo sommaElementiMatrice che riceve in ingresso una matrice di interi M e dopo aver effettuato la somma dei suoi elementi ne restituisce il risultato.
Tema 41
Scrivere un metodo isPrimaColonnaUgualeUltimaColonna che riceve una matrice di interi M e restituisce TRUE se la prima colonna è uguale all’ultima.
Tema 42
Scrivere un metodo isPrimaColonnaInversaDiUltimaColonna che riceve una matrice di interi M e restituisce TRUE se nella prima colonna ci sono gli stessi elementi dell’ultima colonna ma in ordine inverso.
Tema 43
Scrivere un metodo isPrimaRigaInversaDiUltimaRiga che riceve una matrice di interi M e restituisce TRUE se nella prima riga ci sono gli stessi elementi dell’ultima riga ma in ordine inverso.
Tema 44
Scrivere un metodo isSommaOgniRigaUguale che riceve in ingresso una matrice di interi M e restituisce TRUE se la somma degli elementi di ciascuna riga di M fornisce lo stesso risultato; FALSE altrimenti.
Tema 45
Scrivere un metodo moltiplicaDueRighe che riceve in ingresso una matrice di interi M e due interi R1 ed R2 e restituisce il risultato del prodotto tra la riga R1 e la riga R2.
Tema 46
Scrivere un prodottoRighePerColonne che riceve in ingresso due matrici quadrate di interi e restituisce il risultato del prodotto righe per colonne.
Tema 47
Scrivere un metodo verificaSeMatriciUguali che riceve in ingresso due matrici di interi M e Q e confronta uno a uno gli elementi per stabilire se le matrici sono uguali.
Tema 48
Scrivere un metodo trovaMassimoInMatrice che riceve in ingresso una matrice di interi M e stampa a video il valore più alto in essa presente.
Tema 49
Scrivere un metodo verificaSeMatriceIdentica che riceve in ingresso una matrice di interi M e restituisce TRUE se la matrice è identica; FALSE altrimenti. Una matrice si dice identica se gli elementi sulla diagonale principale sono tutti uguali a 1 e gli elementi al di fuori della diagonale sono uguali a 0.
Tema 50
Scrivere un metodo verificaSeMatriceSimmetrica che riceve in ingresso una matrice di interi M e restituisce TRUE se la matrice è simmetrica; FALSE altrimenti. Una matrice si dice simmetrica se l’elemento in posizione [ i ][j] è uguale all’elemento in posizione [j][ i ].
Tema 51
Scrivere un metodo creaTrasposta che riceve in ingresso una matrice di interi e crea la sua trasposta, cioè una matrice in cui saranno invertite righe e colonne.
Tema 52
Scrivere un metodo isTriangolareInferiore che riceve in ingresso una matrice di interi M e restituisce TRUE se essa risulta trinagolare inferiore; FALSE altrimenti.
Tema 53
Scrivere un metodo isTriangolareSuperiore che riceve in ingresso una matrice di interi M e restituisce TRUE se essa risulta trinagolare superiore; FALSE altrimenti.
Tema 54
Scrivere un metodo creaArrayConElementiDiagonalePrincipale che riceve in ingresso una matrice quadrata di interi M e preleva gli elementi della diagonale principale collocandoli in un array.
Tema 55
Scrivere un metodo creaArrayConElementiNonNulliDiagonale Principale che riceve in ingresso una matrice quadrata di interi M e restituisce un array contenente gli elementi non nulli che si trovano sulla sua diagonale principale.
Tema 56
Scrivere un metodo creaArrayConElementiDiagonaleSecondaria che riceve in ingresso una matrice quadrata di interi M e preleva gli elementi della diagonale secondaria collocandoli in un array.
Tema 57
Scrivere un metodo creaArrayConPositiviDiagonaleSecondaria che riceve in ingresso una matrice quadrata M e restituisce un array contenente gli elementi positivi presenti sulla diagonale secondaria.
Tema 58
Scrivere un metodo creaArrayEstraendoTuttiGliElementiPerRiga che riceve in ingresso una matrice di interi M e crea un array estraendo tutti gli elementi della matrice riga per riga.
Tema 59
Scrivere un metodo creaArrayEstraendoTuttiGliElementiPerColonna che riceve in ingresso una matrice di interi M e crea un array estraendo tutti gli elementi della matrice colonna per colonna.
Tema 60
Scrivere un metodo verificaSeEsisteSequenzaInMatrice che riceve una matrice di interi M e un intero n, e restituisce TRUE se all’interno di M esiste una sequenza di numeri da 1 fino a n; FALSE altrimenti.
Tema 61
Scrivere un metodo sommaCornice che riceve in ingresso una matrice di interi M e restituisce la somma degli elementi che si trovano sul perimetro di M.
Tema 62
Scrivere un metodo isRigaCentraleUgualeColonnaCentrale che riceve in ingresso una matrice quadrata di interi M di dimensione dispari e restituisce TRUE se gli elementi della riga centrale sono uguali agli elementi della colonna centrale; FALSE altrimenti.
Tema 63
Scrivere un metodo sommaMultipliDelParametroK che riceve una matrice quadrata di interi M e un intero k e restituisce la somma degli elementi di M multipli dell’intero k.
Tema 64
Scrivere un metodo creaMatriceEstraendoMinimoMassimoDalle Righe che riceve una matrice quadrata di interi M e restituisce una matrice che in ogni riga conterrà il valore minimo e il valore massimo di ciascuna riga di M.
Tema 65
Scrivere un metodo creaArrayMoltiplicandoSommaRigaConSomma Colonna che riceve una matrice quadrata di interi M e restituisce un array V i cui elementi in posizione i-esima sono ottenuti effettuando prima la somma degli elementi della riga i-esima della matrice M, poi la somma degli elementi della colonna i-esima della stessa matrice e infine moltiplicando i due risultati ottenuti.
Tema 66
Scrivere un metodo isOgniElementoArrayPresenteInMatrice che riceve in ingresso una matrice di interi M e un vettore di interi V e restituisce TRUE se ciascun elemento del vettore è presente nella matrice; FALSE altrimenti.
Tema 67
Scrivere un metodo verificaCheNessunElementoDelVettoreSiaPresente
NellaMatrice che riceve in ingresso una matrice M e un vettore V e restituisce TRUE se nessun elemento del vettore è presente nella matrice; FALSE altrimenti.
Tema 68
Scrivere un metodo isOgniElementoDelVettoreMaggioreDiAlmenoUn ElementoDellaMatrice che riceve in ingresso una matrice di interi M e un vettore di interi V e restituisce TRUE se ciascun elemento del vettore è maggiore di almeno un elemento nella matrice; FALSE altrimenti.
Tema 69
Scrivere un metodo creaMatriceEstraendoColonnePari che riceve una matrice di interi M e restituisce la sottomatrice Q ottenuta da M estraendo le colonne di indice pari. Si consideri la colonna di indice zero come colonna pari.
Tema 70
Scrivere un metodo creaMatriceEstraendoRigheDispari che riceve una matrice di interi M e restituisce la sottomatrice Q ottenuta da M estraendo le righe di indice dispari.
Tema 71
Scrivere un metodo stampaDiagonaliTranneElementoCentrale che riceve in ingresso una matrice quadrata di interi M di dimensione dispari e stampa a video gli elementi di M presenti sulle due diagonali escluso l’elemento centrale.
Tema 72
Scrivere un metodo sommaMaggioriDelleRighePariConMinoriDelle RigheDispari che riceve una matrice quadrata di interi M e un intero k e restituisce un intero dato dalla somma degli elementi di M maggiori dell’intero k sulle righe di M di indice pari e minori dell’intero k sulle righe di M di indice dispari.
Tema 73
Scrivere un metodo creaMatriceConMinimoEconMediaDiOgniRiga che riceve una matrice quadrata di interi M e restituisce una matrice contenente il minimo e la media degli elementi contenuti in ciascuna delle righe di M.
Tema 74
Scrivere un metodo creaArrayConDifferenzaTraSommaRigaEsomma Colonna che riceve una matrice quadrata di interi M e restituisce un vettore V i cui elementi in posizione i-esima sono dati effettuando la differenza tra la somma degli elementi della riga i-esima e la somma degli elementi della colonna i-esima.
Tema 75
Scrivere un metodo stampaElementiPariRighePariSottoDiagonale che riceve in ingresso una matrice quadrata M e crea un array con gli elementi pari appartenenti alle righe pari posti nel triangolo inferiore al di sotto della diagonale principale.
Tema 76
Scrivere un metodo creaArrayConElementiDiagonalePrincpaleMaggiori DellaMediaDellaDiagonale che riceve in ingresso una matrice quadrata di interi M e restituisce un array V contenente tutti gli elementi della diagonale principale il cui valore è maggiore della media degli elementi della diagonale stessa.
Tema 77
Scrivere un estraiMatriceConIndiciInizialiFornitiDaiParametri che riceve in ingresso una matrice di interi M e due interi R e C e restituisce la sottomatrice di dimensione massima estraibile a partire dalla posizione (R,C).
Tema 78
Scrivere un metodo estraiMatriceDalPrimoElementoAquelloConIndici FornitiDaiParametri che riceve in ingresso una matrice di interi M e due interi R e C e restituisce la sottomatrice a partire dall’elemento in posizione (0,0) fino all’elemento in posizione (R,C).
Tema 79
Scrivere un metodo creaArrayConElementiSottoDiagonalePrincipale NonDuplicati che riceve in ingresso una matrice quadrata M e restituisce un array V contenente gli elementi di M al di sotto della diagonale principale senza duplicati.
Tema 80
Scrivere un metodo dimezzaMatriceEazzeraElementiPresentiInArray che riceve in ingresso una matrice quadrata M e un array V e restituisce la matrice Q ottenuta dalle ultime M.length / 2 colonne di M e contenente i corrispondenti elementi di M che non sono presenti nell’array V, 0 altrimenti.
Tema 81
Scrivere un metodo isPalindroma che riceve in ingresso una matrice M e restituisce TRUE se la matrice è palindroma; FALSE altrimenti. Una matrice si dice palindroma se la prima riga è uguale all’ultima riga, la seconda è uguale alla penultima e così via, in modo che le colonne risultino uguali sia che vengano lette dall’alto verso il basso sia che vengano lette dal basso verso l’alto.
Tema 82
Scrivere un metodo eliminaUnaRigaEunaColonna che riceve in ingresso una matrice quadrata di interi M e due interi R e C e restituisce una matrice Q ottenuta da M eliminando la riga R e la colonna C.
Tema 83
Scrivere un metodo creaArrayConElementiInColonnePariMaggioriDel ParametroK che riceve in ingresso una matrice di interi M e un intero k e restituisce un array contenente tutti gli elementi di M strettamente maggiori di k presenti sulle colonne pari. Si consideri la colonna di indice 0 una colonna pari.
Tema 84
Scrivere un metodo creaArrayConSommeRigheDellaTriangolare Superiore che riceve in ingresso una matrice quadrata M e restituisce un array in cui l’i-esima posizione conterrà la somma degli elementi appartenenti, di volta in volta, a una riga della parte triangolare superiore della matrice.
Tema 85
Scrivere un metodo creaArrayConElementiAlDiSopraDiagonalePrincipale che riceve in ingresso una matrice quadrata di interi M e restituisce un array V contenente tutti gli elementi appartenenti al triangolo al di sopra della diagonale principale.
Tema 86
Scrivere un metodo creaMatriceEstraendoCroceEsclusoElementoCentrale che riceve in ingresso una matrice quadrata di interi M di dimensione dispari e restituisce una matrice contenente gli elementi di M presenti sulla riga e sulla colonna centrali escluso l’elemento centrale.
Tema 87
Scrivere un metodo creaMatriceEstraendoDiagonaliEsclusoElemento Centrale che riceve in ingresso una matrice quadrata di interi M di dimensione dispari e restituisce una matrice contenente gli elementi di M presenti sulle diagonali escluso l’elemento centrale.
Tema 88
Scrivere un metodo creaArrayConQuattroQuadrantiDellaMatrice EscludendoElementiCentrali che riceve in ingresso una matrice quadrata di interi M di dimensione dispari, e restituisce un array V contenente gli elementi situati nei quadranti che si ottengono da M escludendo la riga centrale e la colonna centrale.
Tema 89
Scrivere un metodo verificaSeCiSonoDuplicatiInColonne che riceve in ingresso una matrice M e restituisce TRUE se ogni colonna di M non contiene elementi duplicati; FALSE altrimenti.
Tema 90
Scrivere un metodo isOgniElementoRigaCentraleMultiploDiAlmenoUn ElementoColonnaCentrale che riceve in ingresso una matrice quadrata M di interi di dimensione dispari e restituisce TRUE se per ogni elemento presente sulla riga centrale di M esiste un suo multiplo sulla colonna centrale.
Tema 91
Scrivere un metodo isIesimoElementoArrayUgualeAprodottoIesimaRiga OsommaIesimaColonna che riceve in ingresso una matrice quadrata di interi M di dimensione e un array di interi V e restituisce TRUE se l’i-esimo elemento di V è uguale al prodotto degli elementi dell’i-esima riga di M oppure è uguale alla somma degli elementi dell’i-esima colonna di M.
Tema 92
Scrivere un metodo creaMatriceEstraendoRighePariConSommaDispari che riceve in ingresso una matrice di interi M e restituisce una matrice di interi contenente tutte le righe di M di indice pari in cui la somma degli elementi sia dispari.
Tema 93
Scrivere un metodo azzeraColonneCompreseTraParametri che riceve in ingresso una matrice quadrata di interi M e due interi h e k e sostituisce con lo zero il valore di tutti gli elementi delle colonne di indice compreso tra h e k.
Tema 94
Scrivere un metodo verificaSeCiSonoDuplicatiInMatrice che riceve in ingresso una matrice di interi M e restituisce TRUE se M presenta elementi duplicati; FALSE altrimenti.
Tema 95
Scrivere un metodo estraiMatriceEscludendoLaCornice che riceve in ingresso una matrice di interi M e restituisce la sottomatrice ottenuta escludendo la prima e l’ultima riga e la prima e l’ultima colonna, cioè escludendo la cornice di M.
Tema 96
Scrivere un metodo creaMatriceInvertendoUnaRigaEunaColonna che riceve una matrice quadrata di interi M e due numeri R e C e restituisce una matrice contenente due righe, ottenute invertendo la riga R di M e la colonna C di M.
Tema 97
Scrivere un metodo scambiaDiPostoDueRighe che riceve una matrice di interi M e due numeri R1 e R2 e restituisce la stessa matrice dopo aver effettuato lo scambio tra le righe R1 ed R2.
Tema 98
Scrivere un metodo scambiaDiPostoDueColonne che riceve una matrice di interi M e due numeri C1 e C2 e restituisce la stessa matrice dopo aver effettuato lo scambio tra le righe C1 ed C2.
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.
Tema 100
Scrivere un metodo trovaElementoConMaggioreFrequenzaInMatrice che riceve una matrice di interi M e restituisce l’elemento della matrice che compare più volte.
Tema 101
Scrivere un metodo verificaSeNellaMatriceCiSonoElementiMultipliDiAltri che riceve una matrice di interi M e restituisce TRUE se M contiene elementi che sono multipli di altri elementi presenti nella matrice; FALSE altrimenti.
Tema 102
Scrivere un metodo creaArrayConElementiComuniInRigaEcolonnaDateDa Parametri che riceve una matrice di interi M e due numeri n e k e restituisce un array contenente gli elementi presenti sia nella riga n che nella colonna k.
Tema 103
Scrivere un metodo creaMatriceEscludendoColonneConElementiMinori OmaggioriDeiParametri che riceve in ingresso una matrice di interi M e due numeri interi min e max, e restituisce una matrice ottenuta eliminando da M tutte le colonne che presentano almeno un valore minore di min o maggiore di max.
Tema 104
Scrivere un metodo creaMatriceEscludendoElementiDiagonalePrincipale che riceve una matrice di interi M e restituisce una matrice ottenuta da M eliminando gli elementi che appartengono alla diagonale principale.
Tema 105
Scrivere un metodo eliminaUltimaColonnaEdEstraiElementiConIndici EntrambiPariOdispari che riceve una matrice quadrata di interi M e restituisce una sottomatrice escludendo l’ultima colonna se la dimensione è dispari e contenente solo gli elementi di M i cui indici di riga e di colonna sono entrambi pari oppure entrambi dispari.
Tema 106
Scrivere un metodo verificaCheUnaMatriceSiaContenutaInUnAltraMatrice che riceve in ingresso due matrici di interi M e Q e restituisce TRUE se la matrice di dimensione minore è interamente contenuta nella matrice di dimensione maggiore. Gli elementi della matrice minore, all’interno della maggiore, devono essere disposti nello stesso ordine e in maniera attigua.
•
Autore
Domenico SignorelliDomenico Signorelli è laureato in Matematica e lavora prevalentemente nella formazione. Per Matematicamente.it ha pubblicato "Fisica, Dellitti e Digressioni" e "106 Metodi Java".
Domenico Signorelli, 106 metodi Java
T
E
M A 8
Scrivere un metodo trovaMassimoInArray che riceve in ingresso un
array di interi V e stampa a video il valore più alto in esso presente.
Ad esempio, sia V l’array così costituito
3 5 1 7 9 2 4 6 1
allora trovaMassimoInArray (V) = 9
public class tema8 {
public static int trovaMassimoInArray (int[] V) {
//il primo elemento di V viene scelto arbitrariamente
come massimo provvisorio
int max = V[0];
//effettuiamo una scansione dell'array partendo dal
secondo elemento
for (int i = 1; i < V.length; i++) {
//se durante la scansione incontriamo un elemento più
grande del primo, aggiorniamo il valore di max
if (V[i] > max)
max = V[i]; }
return max;
}
/* Applicazione di Prova: Inizializziamo due array su cui
testare il metodo; il primo array conterrà solo elementi
positivi, il secondo array conterrà solo elementi
negativi. */
public static void main(String[] args) {
int[] A={3,5,1,7,9,2,4,6,1};
System.out.println(“Il valore piu’ grande contenuto
nell’array A, e’:”);
System.out.println(trovaMassimoInArray (A));
System.out.println(); 30
Domenico Signorelli, 106 metodi Java
int[] B ={-15,-4,-6};
System.out.println(“Il valore piu’ grande contenuto
nell’array B, e’:”);
System.out.println(trovaMassimoInArray (B));
}
} 31
Domenico Signorelli, 106 metodi Java
T
E
M A 9
Scrivere un metodo isArrayCrescente che riceve in ingresso un array di
interi V e verifica se l’array è crescente.
Ad esempio, sia V l’array così costituito
1 2 3 4 5 6 7 8 9
allora isCrescente (V) = TRUE
public class tema9 {
public static boolean isArrayCrescente (int[] V) {
//inizializziamo una variabile boolean impostandola sul
valore TRUE, assumendo che l’array sia crescente
boolean crescente = true;
// verifichiamo se ogni elemento di V è minore
dell'elemento che lo segue
for (int i = 0; crescente && i < V.length-1; i++)
if (V[i] >= V[i+1])
crescente = false;
return crescente;
}
/* Applicazione Di Prova: Inizializziamo tre array su cui
testare il metodo; il primo array sarà crescente, il
secondo array sarà non decrescente, il terzo array sarà
non crescente. */
public static void main(String[] args) {
int[] A = { 1, 2, 5, 7 };
System.out.println(isArrayCrescente (A)); // array
crecsente
System.out.println();
int[] B = { 1, 2, 5, 5, 7 }; // array non decrescente (ma
non crescente)
System.out.println(isArrayCrescente (B));
System.out.println(); 32
Domenico Signorelli, 106 metodi Java
int[] Z = { 1, 2, 5, 3, 7 }; // un array non crescente
System.out.println(isArrayCrescente (Z));
}
} 33
Domenico Signorelli, 106 metodi Java
T
E
M A 1 0
Scrivere un metodo verificaSommaTraIndiceEdElemento che riceve in
ingresso un array di interi V e restituisce TRUE se ogni elemento di V,
a partire dal secondo, è pari alla somma i + V[i-1], cioè pari alla somma
dell’indice della posizione che esso occupa e del valore dell’elemento
che lo precede.
Ad esempio, se V =[5, 6, 8, 11, 15, 20, 26], il metodo restituirà TRUE,
in quanto: V[1] = 1 + V[0], V[2] = 2 + V[1] e così via.
public class tema10{
public static boolean verificaSommaTraIndiceEdElemento
(int[] V){
boolean esito = true;
for (int i = 1; i < V.length && esito; i++){
if (V[i] != i + V[i-1])
esito = false;
i++;
}
return esito;
}
/* Applicazione di Prova */
public static void main(String[] args){
int[] V= {5,6,8,11,15,20,26};
System.out.println(verificaSommaTraIndiceEdElemento (V));
}
} 34
Domenico Signorelli, 106 metodi Java
T
E
M A 1 1
Scrivere un metodo
verificaSommaEprododttoDiOgniElementoConSuccessivo
che riceve in ingresso un vettore di interi V (di dimensione pari) e un
intero k e restituisce TRUE se per ogni elemento di V in posizione pari
la sua somma con l’elemento successivo è minore o uguale a k e il suo
prodotto con l’elemento successivo è maggiore o uguale a k.
Ad esempio, se V =[14, 6, 6, 10, 16, 6, 18, 4] e k = 30 il metodo
restituirà TRUE.
public class tema11{
public static boolean
verificaSommaProdottoDiOgniElementoConSuccessivo (int[]
V, int k){
for (int i = 0; i < V.length; i += 2)
if (V[i] + V[i+1] >= k && V[i] * V[i+1] <= k)
return false;
return true;
}
/* Applicazione di Prova */
public static void main(String[] args) {
int[] V = {14, 6, 6, 10, 16, 6, 18, 4};
System.out.println(verificaSommaProdottoDiOgniElementoCon
Successivo (V, 30));
}
} 35
Domenico Signorelli, 106 metodi Java
T
E
M A 1 2
Scrivere un metodo
creaArrayConElementiDiAcorrispondentiAgliElementiMinoriDiB
che riceve in ingresso due array di double A e B e restituisce un array
contenente gli elementi di A che si trovano nelle stesse posizioni in cui,
nell’array B, si trovano i valori minori.
Ad esempio, siano A e B gli array così costituiti
A 6. 7. 0. 10. 4. 9. 8. B 1. 3. 4. 3. 1. 2. 1.
0 1 4 3 1 1 3 0 9 4 9 0 2 0
= =
allora
creaArrayConElementiDiAcorrispondentiAgliElementiMinoriDiB (A,
B) darà 6.0 4.1 8.3
public class tema12 {
public static
double[]creaArrayConElementiDiAcorrispondentiAgliElementi
MinoriDiB (double[] A, double[] B) {
//il primo elemento di V viene scelto arbitrariamente
come minimo provvisorio
double min = B[0];
// prepariamo un array temporaneo in cui inserire gli
elementi del primo array che corrispondono
// alle posizioni degli elementi minori del secondo array
double[] arrayTemporaneo = new double[A.length];
// creiamo un indice per scorrere l’array temporaneo
int indice = 0;
//effettuiamo una scansione degli array
for (int i = 0; i < B.length; i++)
36
Domenico Signorelli, 106 metodi Java
//se durante la scansione incontriamo un elemento più
piccolo di min, aggiorniamo il valore di min
if (B[i] < min) {
min = B[i]; }
// una volta trovato il valore più basso di B, scorriamo
nuovamente l’array per verificare se ci sono
// altri valori uguali al min
for (int i = 0; i < B.length; i++)
if (B[i] == min) {
// ogni volta che in B troviamo un valore uguale al min,
inseriamo nell’array temporaneo il corrispondente
// valore dell’array A
arrayTemporaneo[indice] = A[i];
indice++;
}
// prepariamo un array con la giusta dimensione
double [] arrayFinale = new double[indice];
for (int i = 0; i < arrayFinale.length; i++) {
// trasferiamo gli elementi che erano stati memorizzati
nell’array temporaneo
arrayFinale[i] = arrayTemporaneo[i]; }
return arrayFinale;
}
/* Applicazione di Prova */
public static void main(String[] args) {
double[] A={6.0, 7.1, 0.4, 10.3, 4.1, 9.1, 8.3};
double[] B={1.0, 3.9, 4.4, 3.9, 1.0, 2.2, 1.0};
double[] V =
creaArrayConElementiDiAcorrispondentiAgliElementiMinoriDi
B ( A, B);
for (int i = 0; i < V.length; i++)
System.out.println(V[i]);
}
} 37
Domenico Signorelli, 106 metodi Java
T
E
M A 1 3
Scrivere un metodo
estraiPositiviPosizioniDispariMaggioriDelParametroFornito
che riceve in ingresso un vettore di interi V e un intero k, e restituisce
un sottovettore di interi A contenente tutti gli elementi di V di valore
positivo e strettamente maggiore di k che si trovano in posizione
dispari. V l’array così costituito
Ad esempio, sia 18 -4 7 -1 12 21
allora estraiPositiviPosizioniDispariMaggioriDiK (V,5) darà
21
public class tema13 {
public static int[]
estraiPositiviPosizioniDispariMaggioriDiK (int[] V, int
k){
// creiamo inizialmente un array temporaneo in cui
posizionare gli elementi che soddisfano il criterio
int[] arrayTemporaneo = new int[V.length];
// indice per scorrere l’array temporaneo
int indiceArray = 0;
for (int i = 1; i < V.length; i += 2){
// effettuiamo il doppio controllo
if (V[i] > 0 && V[i] > k) {
// trasferiamo nell’array temporaneo gli elementi che
soddisfano il requisito
arrayTemporaneo[indiceArray] = V[i];
indiceArray++; }
}
// adesso creiamo un array W con la giusta dimensione
int[] arrayFinale = new int[indiceArray];
for (int i = 0; i < W.length; i++){
38
Domenico Signorelli, 106 metodi Java
// trasferiamo gli elementi che erano stati memorizzati
nell’array temporaneo
arrayFinale[i] = arrayTemporaneo[i]; }
return arrayFinale;
}
/* Applicazione di Prova */
public static void main(String[] args){
int[] V ={18, -4, 7, -1, 12, 21};
// creiamo un array in cui conservare il risultato del
metodo applicato all’array V
int[] A = estraiPositiviPosizioniDispariMaggioriDiK (V,
5);
// creiamo un ciclo per stampare gli elementi dell’array
contenente i risultati
for (int i = 0; i < A.length; i++)
System.out.println(A[i]);
}
} 39
Domenico Signorelli, 106 metodi Java
T
E
M A 1 4
Scrivere un metodo creaVettoreConSommeDegliElementiPositivi che
riceve in ingresso un array di interi V e restituisce un vettore di interi Z
di dimensione pari alla dimensione di V, in cui l’i-esimo elemento è
dato dalla somma degli elementi positivi a partire da V[i].
Ad esempio, sia V un array così costituito
8 -3 4 -7 9 1 2
allora creaVettoreConSommeDegliElementiPositivi (V) darà
24 16 16 12 12 3 2
public class tema14{
public static int[]
creaVettoreConSommeDegliElementiPositivi (int[] V){
// dichiariamo un array Z con la stessa dimensione di V
int[] Z = new int[V.length];
for (int i = 0; i < V.length; i++){
// creiamo il contenitore in cui effettuare e conservare
la somma
// è importante collocare il contenitore somma in questa
posizione in modo che per ogni elemento
// venga cancellato il risultato delle somme precedenti
int somma = 0;
// per sommare gli elementi creiamo un ciclo che parta
esattamente dallo stesso valore sul quale si trova il
// ciclo precedente
for (int j = i; j < V.length; j++){
if (V[j] > 0)
somma += V[j];
}
// collochiamo la somma degli elementi positivi, a
partire dall’i-esimo elemento, nell’array Z
40
Domenico Signorelli, 106 metodi Java
Z[i] = somma;
}
return Z;
}
/* Applicazione di Prova */
public static void main(String[] args){
int[] V = {8, -3, 4, -7, 9, 1, 2};
int[] Z = creaVettoreConSommeDegliElementiPositivi (V);
for (int i = 0; i < Z.length; i++){
System.out.println(Z[i]);}
}
} 41
Domenico Signorelli, 106 metodi Java
T
E
M A 1 5
Scrivere un metodo esisteCorispondenteInModulo che riceve in
ingresso due vettori di interi A e B, e restituisce TRUE se per ogni
elemento di A esiste in B un elemento con lo stesso valore assoluto ma
di segno opposto, FALSE altrimenti.
Ad esempio, siano A e B due array così costituiti
A = -8 5 9 -7 B = 7 2 8 -5 -9 4
allora esisteCorrispondenteInModulo (A, B) = TRUE
public class tema15{
public static boolean esisteCorrispondenteInModulo (int[]
A, int[] B){
// scorriamo gli elementi dell’array A
for (int i = 0; i < A.length; i++) {
boolean esiste = false;
// scorriamo l’array B cercando un elemento uguale all’i-
esimo elemento di A ma di segno opposto
for (int j = 0; j < B.length && !esiste; j++)
if (A[i] == -B[j])
esiste = true;
if (!esiste)
return false;}
return true;
}
/* Applicazione di Prova */
public static void main(String[] args){
int[] A ={-8, 5, 9, -7};
int[] B ={7, 2, 8, -5, -9, 4 };
System.out.println(esisteCorrispondenteInModulo (A, B));
// otterremo TRUE
System.out.println();
int[] Z ={7, 2, 8, -5, 9, 4};
System.out.println(esisteCorrispondenteInModulo (A, Z));
// otterremo FALSE
}
} 42
Domenico Signorelli, 106 metodi Java
T
E
M A 1 6
Scrivere un metodo contaDistintiInArray che riceve in ingresso un
array di interi V e restituisce il numero di elementi distinti di V, cioè
quelli che compaiono una sola volta.
Ad esempio, se V =[15, 12, 3, 15, 7, 12]�il risultato sarà 2, infatti solo
V[2] e V[4] compaiono una sola volta ciascuno; se V =[15, 12, 15,
12]�il risultato sarà 0, infatti non ci sono elementi distinti.
public class tema16{
public static int contaDistintiInArray (int[] V){
int j;
// creiamo una variabile contatore che sarà aggiornata
ogni volta che verrà individuato un elemento senza
// duplicati nell'array
int contatore = 0;
for (int i = 0; i < V.length; i++){
for (j = 0; j < V.length; j++)
// effettuiamo i controlli, tenendo in considerazione il
fatto che l’indice i deve essere diverso dall’indice j
// per evitare di considerare un elemento come se fosse
il duplicato di se’ stesso
if (i != j && V[i] == V[j])
break;
if (j == V.length)
contatore ++;
}
return contatore;
}
/* Applicazione di Prova */
public static void main(String args[]) {
int[] V ={1,2,3,4,5,6,7,8,9};
System.out.println(contaDistintiInArray (V)); // in
questo caso otterremo 9
System.out.println(); 43
Domenico Signorelli, 106 metodi Java
int[] W ={1, 7, 1, 3, 4, 7}; // in questo caso otterremo
2
System.out.println(contaDistintiInArray (W));
System.out.println();