Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Svetlana94
    Registrato dal
    Nov 2013
    residenza
    Milano
    Messaggi
    19

    Problema : utilizzare un array modificato in un metodo..

    Salve a tutti, mi sono bloccata su questo esercizio e non riesco più ad andare avanti .. vi scrivo solo ciò che chiede nella seconda parte (dove io ho riscontrato il problema):

    -Definire un metodo che riceve come parametro due array di interi, creando un terzo array ottenuto inserendo la somma ed il prodotto degli elementi di ciascuno di essi in maniera alternata:
    per esempio, dati gli array {1,2,3,4,5} e {6,7,8,9,10} il loro risultato sarebbe un terzo array contenente {7,6,9,14,11,33,13,36,15,50}.

    Prima di questo, l'esercizio chiedeva di creare un array e poi modificarlo con un metodo, ed ora non riesco ad utilizzare l'array modificato in precedenza perchè non me lo trova!
    Vi ringrazio anticipatamente per l'aiuto.

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Senza vedere il codice come facciamo a dirti perché non ti trova l'array?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Sinceramente non si capisce.
    Che intendi che non te lo trova? Puoi almeno postare il codice che hai scritto?

  4. #4
    Utente di HTML.it L'avatar di Svetlana94
    Registrato dal
    Nov 2013
    residenza
    Milano
    Messaggi
    19
    Non ho postato il codice perchè pensavo che non fosse necessario.. comunque questo è il programma :

    Main:

    codice:
    int a;                    int b;
                        Scanner kb = new Scanner(System.in);
                        System.out.println("Inserisci la dimensione del vettore:");
                        int dimensione = kb.nextInt();
                        int interi[] = new int[dimensione];
                        System.out.println("Inserisci i numeri del vettore:");
                    
                  for(int i=0; i<interi.length; i++){
                        interi[i] = kb.nextInt();
                  }  
                       
                  do{
                        System.out.println("Inserisci due numeri, il primo deve essere\nminore del secondo:");
                        a = kb.nextInt();
                        b = kb.nextInt();
                        
                        if(a>b){
                            System.out.println("Errore!");
                        }else{
                            System.out.println("Ok!");
                        }
                        
                  }while(!(a<b)); //il ciclo continua finchè il primo numero non è minore del secondo.
                  
                        System.out.println("Il vettore e' stato modificato:");
                        Metodini.occorrenzeContenuto(interi, a, b); //chiamiamo il metodo statico.
                        
            
            }
    Classe:

    codice:
    public class Metodini {            
                public static void occorrenzeContenuto(int x[], int a, int b){ //x è l'array interi.
                        
                        for(int i=0; i<x.length; i++){ 
                            if(x[i]<=a){
                                x[i]=a;
                            }else if((x[i]>=a)&&(x[i]<=b)){
                                x[i]=b;
                            }
                        }
                        
                        for(int j=0; j<x.length; j++){ //ciclo per stampare l'array.
                            System.out.print(x[j]);
                        }
                }
                
                public static void uniformaContenuto(int vector[], int vector2[]){
                      //E' qui che devo richiamare l'array interi[] modificato precedentemente nel
                      //metodo occorrenzeContenuto.
                        
                }

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Svetlana94 Visualizza il messaggio
    codice:
                public static void uniformaContenuto(int vector[], int vector2[]){
                      //E' qui che devo richiamare l'array interi[] modificato precedentemente nel
                      //metodo occorrenzeContenuto.
                        
                }
    Passalo come argomento ... no?

    Metodini.occorrenzeContenuto(interi, a, b);
    Metodini.uniformaContenuto(interi, ..........);
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it L'avatar di Svetlana94
    Registrato dal
    Nov 2013
    residenza
    Milano
    Messaggi
    19
    Ma così mi prende l'array originale e non quello modificato dal primo metodo..

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Svetlana94 Visualizza il messaggio
    Ma così mi prende l'array originale e non quello modificato dal primo metodo..
    Sbagliato. occorrenzeContenuto riceve una copia del riferimento all'array .... non una copia dell'array (questo è il concetto che vale in generale). Quindi qualunque modifica ai valori fatta da occorrenzeContenuto è anche visibile dal "chiamante".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Tag per questa discussione

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.