Euro 9.98
ISBN 9788896354582
Domenico Signorelli, 106 metodi Java
Domenico Signorelli
106 metodi Java
Interamente svolti, commentati e pronti da eseguire
© 2014 Matematicamente.it
www.matematicamente.it - libri@matematicamente.it
ISBN: 9788896354582
2
Domenico Signorelli, 106 metodi Java
Presentazione del libro
Un libro utile a chi deve sostenere l'esame di fondamenti d'informatica, ma anche a chi vuole avvicinarsi alla programmazione cominciando direttamente con il linguaggio più usato e versatile.
Il lettore viene accompagnato per acquisire con facilità la padronanza del linguaggio di programmazione Java, tramite un approccio esclusivamente operativo, richiedendo solo poche conoscenze teoriche di base.
L'impostazione è molto graduale; ogni riga di codice è commentata in maniera chiara ed esauriente.
Attraverso i 106 metodi vengono ampiamente trattate le strutture fondamentali del linguaggio Java. Nel libro troverai anche una gamma di applicazioni su array e matrici.
Presentazione dell'autore
Domenico Signorelli è laureato in matematica e lavora prevalentemente nella formazione. Per Matematicamente.it ha già pubblicato “Fisica, delitti e digressioni”.
3
Domenico Signorelli, 106 metodi Java
Introduzione
Questo lavoro non intende sostituire nessuno dei manuali reperibili sul mercato, alcuni dei quali molto ben fatti.
Ho voluto semplicemente dare un taglio operativo allo studio del linguaggio, realizzando una ricca rassegna di metodi per accompagnare lo studente, che abbia già acquisito le nozioni teoriche di base, in un progressivo percorso di crescita nella manipolazione di strutture di fondamentale importanza quali gli array e le matrici.
L'idea di realizzare questo “prontuario” di metodi è nata dalle mie esperienze di docente in corsi specifici e quindi dall'aver osservato quali sono i reali bisogni di uno studente che si debba cimentare nelle sfide di creazione di codice.
L'approccio usato ha come obiettivo il raggiungimento delle competenze necessarie per affrontare un tipico esame di Java di livello universitario; molti degli spunti riportati in queste pagine sono proprio il frutto di un'attenta selezione di tipologie, fatta su appelli di esami proposti da varie università.
Il libro evidenzia la centralità del metodo come strumento principale di realizzazione di codice di programmazione.
I 106 metodi qui presentati, tutti già compilati e pronti per essere eseguiti, puntano a far immergere lo studente direttamente in un ambiente applicativo, guidandolo in maniera quanto più possibile graduale in un iter crescente di difficoltà.
Ho cercato di commentare in ogni programma le porzioni salienti per chiarire le parti che in genere risultano più ostiche.
Anche nella scrittura del codice ho tenuto presente l'esigenza dello studente di comprendere il funzionamento delle applicazioni e a tal proposito ho usato una terminologia chiara e intuitiva.
I nomi dei metodi e i nomi delle variabili, che di volta in volta sono stati usati, sono immediati e rappresentativi del loro scopo.
Spesso per fare ciò ho rinunciato all'utilizzo di nomi pratici e compatti a tutto vantaggio della chiarezza.
Ho fatto questo nella consapevolezza che nelle prime fasi dello studio sia più importante la comprensione che la praticità.
Non appena lo studente diventerà più sicuro, potrà sostituire i lunghi nomi da me usati con parole più brevi e meno ingombranti.
I termini scelti per i metodi, anche se lunghi e “inusuali”, hanno il merito di essere autoesplicativi e di consentire perciò, non solo un'immediata comprensione dell'obiettivo del programma, ma anche una veloce reperibilità di consultazione in caso di esigenza.
4
Domenico Signorelli, 106 metodi Java
La catalogazione usata per l'indice oltre a presentare un'esauriente sintesi del singolo programma, presenta in grassetto il nome di ogni metodo agevolando così ogni bisogno di ricerca nel manuale.
Per semplificare la leggibilità del codice ho usato i tipici colori che le parole chiave assumono in un editor specifico in modo tale da permettere allo studente un'immediata individuazione delle keywords e un più semplice lavoro di memorizzazione delle stesse.
5
Domenico Signorelli, 106 metodi Java
Indice
–
Prima parte: array
Tema 1
Scrivere un metodo visualizzaArray che riceve in ingresso un array di interi V e ne stampa a video gli elementi. 12
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. 13
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. 14
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. 15
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. 16
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. 17
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. 18
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. 19
Tema 9
Scrivere un metodo isArrayCrescente che riceve in ingresso un array di interi V e verifica se l'array è crescente. 20
Tema 10
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. 21
Tema 11
Scrivere un metodo verificaSommaEProdottoDiOgniElementoConSuccessivo 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. 22
Tema 12
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. 23
Tema 13
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. 25
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]. 26
Tema 15
Scrivere un metodo esisteCorrispondenteInModulo 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. 27
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. 28
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. 29
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. 30
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. 32
7
Domenico Signorelli, 106 metodi Java
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. 33
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. 34
Tema 22
Scrivere un metodo isArrayValoriAlternatiPariDispari 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. 35
Tema 23
Scrivere un metodo sommaElementiPrimoArrayConIndiceDatoDaElementiSecondoArray 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. 36
Tema 24
Scrivere un metodo stampaElementiDelPrimoArrayMaggioriDegliElementiDelSecondoArray che riceve in ingresso due vettori di interi A e B e stampa gli elementi di A maggiori di tutti gli elementi di B. 37
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. 38
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. 39
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. 40
Tema 28
Scrivere un metodo esisteElementoInACheSommatoConElementoDiBVerificaSommaK 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. 41
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. 42
Tema 30
Scrivere un metodo estraiElementiDelPrimoArrayMultipliDiQualcheElementoDelSecondo 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. 44
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. 46
Tema 32
Scrivere un metodo creaArrayConElementiDiAPresentiMassimoDueVolteInBeMinimoQuattroInC 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. 47
Tema 33
Scrivere un metodo verificaSeOgniElementoDelPrimoArrayOccorrePiuVolteNelSecondoArray che riceve in ingresso due vettori di interi A e B e restituisce TRUE se ciascun elemento del primo vettore è presente al più una volta nel secondo, FALSE altrimenti. 49
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. 50
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. 51
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. 52
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. 53
9
Domenico Signorelli, 106 metodi Java
–
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. 55
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. 56
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. 57
Tema 41
Scrivere un metodo isPrimaColonnaUgualeUltimaColonna che riceve una matrice di interi M e restituisce TRUE se la prima colonna è uguale all'ultima. 58
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. 59
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. 60
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. 61
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. 62
Tema 46
Scrivere un metodo prodottoRighePerColonne che riceve in ingresso due matrici quadrate di interi e restituisce il risultato del prodotto righe per colonne. 63
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. 64
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. 65
10
Domenico Signorelli, 106 metodi Java
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. 66
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]. 67
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. 68
Tema 52
Scrivere un metodo isTriangolareInferiore che riceve in ingresso una matrice di interi M e restituisce TRUE se essa risulta triangolare inferiore; FALSE altrimenti. 69
Tema 53
Scrivere un metodo isTriangolareSuperiore che riceve in ingresso una matrice di interi M e restituisce TRUE se essa risulta triangolare superiore; FALSE altrimenti. 71
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. 73
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. 74
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. 75
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. 76
11
Domenico Signorelli, 106 metodi Java
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.
Descrizione
Un libro utile a chi deve sostenere l'esame di fondamenti d'informatica, ma anche a chi vuole avvicinarsi alla programmazione cominciando direttamente con il linguaggio più usato e versatile. Il lettore viene accompagnato per acquisire con facilità la padronanza del linguaggio di programmazione Java, tramite un approccio esclusivamente operativo, richiedendo solo poche conoscenze teoriche di base. L'impostazione è molto graduale; ogni riga di codice è commentata in maniera chiara ed esauriente. Attraverso i 106 Metodi vengono ampiamente trattate le strutture fondamentali del linguaggio Java. Nel libro troverai anche una gamma di applicazioni su array e matrici.
Indice
Prima parte – array
Tema 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 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.
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 restituisce 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 triangolare inferiore; FALSE altrimenti.
Tema 53. Scrivere un metodo isTriangolareSuperiore che riceve in ingresso una matrice di interi M e restituisce TRUE se essa risulta triangolare 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 creaArrayConDifferenzaTraSommaRiga Esomma 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 Signorelli è laureato in Matematica e lavora prevalentemente nella formazione. Per Matematicamente.it ha pubblicato "Fisica, Dellitti e Digressioni" e "106 Metodi Java".