Esercizio metodo

di il
4 risposte

Esercizio metodo

Ancora io con i miei dubbi da nabbo
Sono all'inizio quindi abbiate pietà di me
Scrivere un metodo static int[] soloDispari (int[] a) che preso come parametro un array a di numeri interi restituisce un nuovo array avente come elementi, nello stesso ordine di a, tutti i numeri dispari presenti in a. La dimensione dell’array restituito deve essere pertanto uguale al numero di interi dispari presenti in a.
Ad esempio, se a è [10,3,20,4,6,5,1], il metodo deve restituire l’array [3,5,1].

ecco la mia soluzione, dove ho sbagliato?
int[] prova={10,3,20,4,6,5,1};
System.out.println(soloDispari(prova));


int[] soloDispari (int[] a) {
		int conto=0;
		for (int i=0; i<a.length; i++){
			if (a[i]%2!=0) {conto++;}
			}
			
int[]risultato = new int[conto]; 
			int posRisultato=0;
			for (int i=0; i<conto; i++){
			     if (a[i]%2!=0) {risultato[posRisultato]=a[i]; posRisultato++;}
			}
			return risultato;
			}

4 Risposte

  • Re: Esercizio metodo

    Rados ha scritto:


    Scrivere un metodo static int[] soloDispari (int[] a) che preso come parametro un array a di numeri interi restituisce un nuovo array avente come elementi, nello stesso ordine di a, tutti i numeri dispari presenti in a. La dimensione dell’array restituito deve essere pertanto uguale al numero di interi dispari presenti in a.
    Ad esempio, se a è [10,3,20,4,6,5,1], il metodo deve restituire l’array [3,5,1].

    ecco la mia soluzione, dove ho sbagliato?
    1) Il secondo for lo devi fare andare per i<a.length, non basta certo i<conto.
    2) Passare un array direttamente a println ti dà come risultato qualcosa del tipo [I@70dea4e. È normale, gli array non ridefiniscono il toString, rimane quello ereditato da Object che è in grado di fornire solo quella forma di informazione. O fai un ciclo for e stampi tu i singoli elementi, oppure sfrutti il metodo statico toString di java.util.Arrays .

    Fatte queste modifiche e presupponendo che tutto il resto della "impalcatura" del codice (che non hai postato!) sia corretta/appropriata, dovrebbe di certo funzionarti.

    P.S. Se hai scritto il codice esattamente come l'hai postato, sappi che è scritto davvero male a livello di spaziature, indentazioni, ecc... Il codice è poco leggibile. Capisco che sei all'inizio ... ma cerca di scriverlo meglio. E se posti sul forum, posta il codice completo, non solo spezzoni il cui contesto/locazione non è chiaro.
  • Re: Esercizio metodo

    1) cavolo hai ragione, se lo faccio <conto non ha senso, perchè devo ripassare a
    2) non abbiamo fatto il metodo statico, spiegati meglio sul ciclo for magari lo capisco
    Solo da pochi giorni sto usando eclipse, prima usavo un programma in cui bastava scrivere il succo del codice, all'università abbiamo fatto solo le varie istruzioni if, while, for, do, poi array, variabili e metodi.
    L'esercizio l'ho preso da un esame completo in cui compare anche la parola "static" che per ora non so cosa sia
    Quindi non capisco cosa intendi per impalcatura, cosa altro dovrei copiare?
  • Re: Esercizio metodo

    Rados ha scritto:


    spiegati meglio sul ciclo for magari lo capisco
    Dalla invocazione di soloDispari hai in output un nuovo array. Itera su questo (solito ciclo for per indice) e stampa i singoli elementi, uno per riga o in fila separati da virgola ... come ti pare (o come ti è stato chiesto).

    Rados ha scritto:


    L'esercizio l'ho preso da un esame completo in cui compare anche la parola "static" che per ora non so cosa sia

    Quindi non capisco cosa intendi per impalcatura, cosa altro dovrei copiare?
    Per fare una qualunque minima cosa in Java serve definire almeno una classe e se la applicazione è una classica applicazione console o grafica, dovrà partire dal metodo statico main.
    In sostanza:
    public class Prova {
        public static void main(String[] args) {
            // ...... parte da qui .......
        }
    }
    Questo è davvero il minimo, senza non fai niente. Non puoi non avere queste cose (classe e metodo main) altrimenti o non è Java ... o c'è qualcosa sotto che non ci dici ....
  • Re: Esercizio metodo

    Si hai ragione, quella parte di codice non la posto mai , mi sono rifatto nell'altro topic che ho creato oggi, ho postato un codice ordinato fammi sapere
Devi accedere o registrarti per scrivere nel forum
4 risposte