Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 30

Discussione: metodo somma

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    49

    metodo somma

    Salve a tutti , volevo chiedere un aiuto per un esame che mi tormenta di programmazione java ....

    io , in sintesi , devo fare questo

    Sviluppare la classe ArrayEsercizi.java, che contiene (solo) i metodi statici elencati sotto.

    NB: SVILUPPARE E TESTARE UN METODO ALLA VOLTA inserendo l'invocazione del metodo in ProvaIntArray.java


    ELENCO DEI METODI DA SVILUPPARE:

    // ************************************************** *
    /* public static int somma(int[] a)

    riceve come parametro un array a di int, restituisce la somma dei valori degli elementi dell'array.
    */
    public static int somma(int[] a) {
    /* sviluppare il codice del metodo */
    }

    la mia soluzione è questa

    codice:
    public static int somma (int[] v)  {
           int tot = 0 ; 
           for (int i = 0 ; i < v.length ; i++ )  
           tot += v[i] ;        
              return tot ;   
    
     }//fine metodo somma

    Invece nell'applicazione per richiamare il metodo somma ho scritto questo ...... :

    codice:
    public class ProvaIntArray
    {   
            public static void main (String args [])
           int v[] = ArrayEsercizi.somma  ;
      
        System.out.print("Array v ottenuto da somma: " , tot);
    	 
      }
    
    L'errore che mi da 
    cannot find symbol : variabile somma 
     :messner:  :messner: 
    
    {

  2. #2
    Sbagli sia l'invocazione che il modo direcepire il valore di ritorno del metodo, il codice corretto è questo:
    codice:
    public class ArrayEsercizi {
    
        public static int somma (int[] v)  {
    	int tot = 0 ; 
    	for (int i = 0 ; i < v.length ; i++ )  
    	    tot += v[i] ;        
    	return tot ;   
    
        }
        public static void main (String args [])
        {
    	int v[] = {3,4,6};
    	int tot =  ArrayEsercizi.somma(v)  ;
    
    	System.out.print("Array v ottenuto da somma: " + tot);
    
    
        }
    }
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    49
    ma se non volessi impostargli i valori tra le graffe : 3, 4 e 6 per intenderci .....


    p.s. bella la citazione degli after

  4. #4
    Originariamente inviato da lurens79
    ma se non volessi impostargli i valori tra le graffe : 3, 4 e 6 per intenderci .....
    Instanzi l'array impostando la dimensione su n (maggiore di 0), e poi gli passi n elementi utilizzando un apposito indice.
    n lo scegli tu, oppure lo fai scegliere all'utente.

    Esempio: array di interi, di lunghezza 5
    codice:
    int v[] = new int[5];

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    49
    bene ... son riuscito a risolvere l'esercizio precedente e , tra l'altro , l'array dovevo leggerlo con un metodo array.read che ho chiamato così da ProvaIntArray .... int a []=ArrayUtil.read();
    Ora sto cercando di risolvere l'ennesimo esercizio che è questo :

    Aggiungere alla classe EserciziArray.java il metodo statico specificato sotto.
    Testare il metodo invocandolo in ProvaIntArray.java.

    /* public static boolean sonocopia(int[] a, int[] b)

    riceve due array di int (a e b) e verifica se a e' una copia di b. In caso positivo, il metodo restituisce true; altrimenti restituisce false.

    NB: se due array hanno lunghezza diversa, si puo' dire che a non e' una copia di b senza controllarne il contenuto.
    */
    public static boolean sonocopia(int[] a, int[] b) {
    /* sviluppare il codice del metodo */
    }

    Premetto che non utilizzerò il metodo equals vorrei chiedere inanzitutto se il metodo puo essere giusto :
    codice:
    public static boolean sonocopia(int[] a, int[] b) 
    {
      while ( a.length == b.length)
      {
       int j = 0 ;
       int i = 0 ; 
      if ( a[i] == b [j] )
       return true ;
     else
       return false ;
             
    }
    e poi come mai la chiamata dall'applicazione è sbagliata ? ( anche qui ahimè )
    codice:
    int b []=ArrayUtil.read();
          ArrayUtil.println(b);
       b= ArrayEsercizi.sonocopia(a);
    mi da sempre lìerrore cannot find symbol ....

  6. #6
    Originariamente inviato da lurens79
    codice:
    public static boolean sonocopia(int[] a, int[] b) 
    {
      while ( a.length == b.length)
      {
       int j = 0 ;
       int i = 0 ; 
      if ( a[i] == b [j] )
       return true ;
     else
       return false ;
             
    }
    Non va bene. Il metodo puoi strutturarlo in questo modo:
    codice:
    public static boolean sonocopia(int[] a, int[] b) 
    {
        if( a.length != b.length )
            return false;
    
        for(int i = 0; i < a.length; i++){
            //qui puoi completarlo tu...
        }
    
        return true;         
    }
    Originariamente inviato da lurens79
    codice:
    int b []=ArrayUtil.read();
          ArrayUtil.println(b);
       b= ArrayEsercizi.sonocopia(a);
    mi da sempre lìerrore cannot find symbol ....
    il metodo sonocopia vuole due argomenti e non restituisce un terzo array.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    49
    provo a capire cosa ci devo metterenel corpo del metodo .....

    devo usare lo stesso indice i tipo

    if a [i] == b [i] ?

    o devo introdurre un altro indice come avevo fatto io ?

    Come posso fare per il metodo da ProvaIntArray ?

  8. #8
    Originariamente inviato da lurens79
    devo introdurre un altro indice come avevo fatto io ?
    No, in quanto l'ordine è importante. L'i-esimo elemento di a, deve essere uguale all'i-esimo elemento di b.

    Originariamente inviato da lurens79
    Come posso fare per il metodo da ProvaIntArray ?
    Come dice la traccia,
    - leggi l'array a (ipotizza di salvarlo nella variabile primo)
    - leggi l'array b (ipotizza di salvarlo nella variabile secondo)
    - e li passi al metodo sonocopia, così
    codice:
    boolean esito = EserciziArray.sonocopia(primo, secondo);
    tutto questo devi farlo nel main della classe ProvaIntArray.

  9. #9
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    non è per fare polemica, ma è un consiglio che dovresti prendere sul serio
    prima di iniziare a programmare darei una lettura minima alle basi java

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    49
    credimi .... la lettura gli e l'ho data eccome ..... ma non è facile all'inizio sopratutto se fai tutto da solo .. questi aiuti mi servono un sacco per capire

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.