Visualizzazione dei risultati da 1 a 6 su 6

Discussione: procedure e funzioni

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    255

    procedure e funzioni

    scusate sono un princiante di java e sto studiando metodi funzioni e procedure e ho un problema con questa funzione,non mi funziona secondo me sbaglio nel ritornare la funzione...chi mi corregge
    codice:
    class Inverti
    {
        public static void main(String []args)
        {
        int []array;
        int n;
        System.out.println("inserisc il numero di elementi di un array");
        n=Leggi.unint();
        array = new int[n];
            for(int i=0;i<array.length;i++)
            {
            System.out.println(" array["+i+"]=");
            array[i]=Leggi.unint();
            }
        
        System.out.println("l'arrai invertito è:");
            for(int i=0;i<array.length;i++)
            {
            System.out.println(" array["+i+"]="+inverti(array));
            }
        }
        public static int inverti(int []a)
        {
        int temp;
            for(int i=0;i<=a.length/2-1;i++)
            {
            temp=a[i];
            a[i]=a[a.length-1-i];
            a[a.length-1-i]=temp;
            }
            return a;
        }
    }
    grazie anticipatamente

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: procedure e funzioni

    Originariamente inviato da s_p_81
    funzioni e procedure
    In Java si chiamano "metodi" e basta.

    Originariamente inviato da s_p_81
    codice:
            for(int i=0;i<array.length;i++)
            {
            System.out.println(" array["+i+"]="+inverti(array));
            }
    Non ha senso mettere lì la invocazione di inverti()!! La devi fare 1 volta sola prima del for. Il metodo modifica l'array passato, quindi dopo ti basta semplicemente stampare gli elementi.

    E il metodo potrebbe anche avere come ritorno un void (non int che non ha senso).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    255
    scusa hai ragione,ma l'esercizio mi chiede di farlo utilizzando una funzione,dunque senza void.come posso richiamare il metodo nel main senza che mi dia errore

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da s_p_81
    l'esercizio mi chiede di farlo utilizzando una funzione
    Ripeto che qui si chiamano "metodi". E se per funzione intendi in generale una procedura che fornisce un valore di ritorno, allora ok. Ma a quel punto dovresti avere come tipo di ritorno int[] (non solo int) e poi far ritornare esattamente il reference all'array avuto come argomento.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    255
    ho seguito il tuo consiglio,ho restituito un int[],ma mi da ancora un piccolo errorino in fase di esecuzione
    codice:
    class Inverti
    {
        public static void main(String []args)
        {
        int []array;
        int n;
        System.out.println("inserisc il numero di elementi di un array");
        n=Leggi.unint();
        array = new int[n];
            for(int i=0;i<array.length;i++)
            {
            System.out.println(" array["+i+"]=");
            array[i]=Leggi.unint();
            }
        arra[i]=inverti(a,i);
        System.out.println("l'arrai invertito è:");
            for(int i=0;i<array.length;i++)
            {
            System.out.println(" array["+i+"]="+array[i]);
            }
        }
        public static int inverti(int []a,int i)
        {
        int temp;
            for(i=0;i<=a.length/2-1;i++)
            {
            temp=a[i];
            a[i]=a[a.length-1-i];
            a[a.length-1-i]=temp;
            }
            return a[i];
        }
    }

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da s_p_81
    codice:
        arra[i]=inverti(a,i);
    
        public static int inverti(int []a,int i)
    
            return a[i];
    Ma che senso ha??!! Devi solamente passare la variabile 'array' al metodo e il valore di ritorno lo riassegni pari pari ad 'array'.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.