Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347

    Come si fa a capire cosa fa un metodo?

    ciao, stavo facendo qualche esercizio di java e mi è capitato uno dove chiede di descrivere la funzione che svolge questo metodo:
    codice:
     
    public static int[] metodoB(int v[], int a)
    {
    int[] w = new int[v.length];
      for (int i=0; i< w.length; i++)
        w[i]=1;
      if (a<=0) 
        a=1;
      int l = v.length*a;
      for(int i=0; i<l; i++){
        int p = i % a;
        w[p]*=v[p];
      }
    return w;
    }
    le istruzioni interne si capisce che fanno però in generale non riesco a capire questo metodo... c'è un modo (una linea guida) per capire al volo cosa fa un metodo? e potete darmi una mano? grazie

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

    Re: Come si fa a capire cosa fa un metodo?

    Originariamente inviato da John360
    le istruzioni interne si capisce che fanno però in generale non riesco a capire questo metodo... c'è un modo (una linea guida) per capire al volo cosa fa un metodo?
    Prova innanzitutto a seguire il "flusso" e vedere cosa fa con un caso specifico di invocazione. Immagina array v={1, 2, 3, 4, 5, 6, 7, 8} e a=4.
    Poi prova a cambiare solo a, es. a=3, a=2.
    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
    Oct 2011
    Messaggi
    347
    io ho capito che crea un array w della stessa lunghezza di v e contenente in ogni posizione 1, poi controlla la variabile a e se è minore o uguale a zero gli assegna 1 come valore, poi moltiplica la lunghezza di v che in questo caso è 4 per a che è 4 e la assegna alla variabile l = 16 e poi non ho capito che fa alla fine...

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da John360
    a che è 4 e la assegna alla variabile l = 16 e poi non ho capito che fa alla fine...
    i % a è il "modulo" (resto della divisione). E quel 'p' calcolato è un indice che poi usa per entrambi gli array. Quindi in questo caso 'i' va da 0 a 15 (compreso) e 'p' va da 0 a 3 (compreso). Ora prova a dedurre .... (inizia dagli indici calcolati)
    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
    Oct 2011
    Messaggi
    347
    sisi questo lo avevo capito però ancora non riesco a capire il senso della funzione.... moltiplica ogni volta il numero che ha w nella posizione p per quello che ha v nella stessa posizione ad esempio nel primo caso moltiplica 1*1 e lo assegna a w[0].. però non ho ancora capito

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da John360
    le istruzioni interne si capisce che fanno però in generale non riesco a capire questo metodo... c'è un modo (una linea guida) per capire al volo cosa fa un metodo? e potete darmi una mano?
    L'unico modo è quello di fornire un input e vedere l'output, e cercare di capire cosa riconduce il primo al secondo.

    Questo è un problema "logico", non strettamente legato alla programmazione (anche perché, di fatto, non stai programmando), visto che il codice sorgente non è tuo, ed è sostanzialmente il fulcro dell'esercizio, che ovviamente non può essere risolto dal forum e non è di particolare utilità alla community se non a te stesso esclusivamente (che eviti la risoluzione dell'esercizio), e non è questa la finalità del forum.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.