Creazione metodo e richiamo nel Main

di il
13 risposte

Creazione metodo e richiamo nel Main

GetVenditeAlDiSopra(v)- restituisce il numero di vendite che hanno un valore superiore a V
è giusto il metodo come l'ho creato?

public class LibroMastro {

private int venditeEffettuate;
double vendite [];
private int massimoVendite;

public LibroMastro(int massimo) {
venditeEffettuate = 0;
massimoVendite = massimo;
vendite = new double [massimo];
}

public int getVenditeEffettuate() {
return venditeEffettuate;
}

public int getVenditeAlDiSopra(int v) {
if(vendite[venditeEffettuate] > v) {

}
return venditeEffettuate;
}

13 Risposte

  • Re: Creazione metodo e richiamo nel Main

    Formatta il codice sorgente come indicato nel Regolamento (punto 7), altrimenti risulta molto difficile leggerlo.
  • Re: Creazione metodo e richiamo nel Main

    Fabrizio1993 ha scritto:


    GetVenditeAlDiSopra(v)- restituisce il numero di vendite che hanno un valore superiore a V
    è giusto il metodo come l'ho creato?
    public int getVenditeAlDiSopra(int v) {		
    	if(vendite[venditeEffettuate] > v) {
    			
    		}
    		return venditeEffettuate;
    	}
    No, proprio sbagliato.
    Primo, non puoi banalmente indirizzare usando venditeEffettuate. Se venditeEffettuate vale es. 10, gli indici "validi" (dove ci sono vendite sensate) sono quelli 0...9 mentre il 10 ovviamente non è valido.

    Secondo, se vuoi "contare" allora devi proprio scansionare tutte le vendite e per ciascun valore chiederti: questo è maggiore di v? quest'altro è maggiore di v? ecc.... E appunto contarle.
  • Re: Creazione metodo e richiamo nel Main

    andbin ha scritto:


    Fabrizio1993 ha scritto:


    GetVenditeAlDiSopra(v)- restituisce il numero di vendite che hanno un valore superiore a V
    è giusto il metodo come l'ho creato?
    public int getVenditeAlDiSopra(int v) {		
    	if(vendite[venditeEffettuate] > v) {
    			
    		}
    		return venditeEffettuate;
    	}
    No, proprio sbagliato.
    Primo, non puoi banalmente indirizzare usando venditeEffettuate. Se venditeEffettuate vale es. 10, gli indici "validi" (dove ci sono vendite sensate) sono quelli 0...9 mentre il 10 ovviamente non è valido.

    Secondo, se vuoi "contare" allora devi proprio scansionare tutte le vendite e per ciascun valore chiederti: questo è maggiore di v? quest'altro è maggiore di v? ecc.... E appunto contarle.

    Devo fare un ciclo for ...quindi V è vendite[venditeEffettuate]?
  • Re: Creazione metodo e richiamo nel Main

    andbin ha scritto:


    Fabrizio1993 ha scritto:


    GetVenditeAlDiSopra(v)- restituisce il numero di vendite che hanno un valore superiore a V
    è giusto il metodo come l'ho creato?
    public int getVenditeAlDiSopra(int v) {		
    	if(vendite[venditeEffettuate] > v) {
    			
    		}
    		return venditeEffettuate;
    	}
    No, proprio sbagliato.
    Primo, non puoi banalmente indirizzare usando venditeEffettuate. Se venditeEffettuate vale es. 10, gli indici "validi" (dove ci sono vendite sensate) sono quelli 0...9 mentre il 10 ovviamente non è valido.

    Secondo, se vuoi "contare" allora devi proprio scansionare tutte le vendite e per ciascun valore chiederti: questo è maggiore di v? quest'altro è maggiore di v? ecc.... E appunto contarle.

    public int getVenditeAlDiSopra(int v) {
    int contatore = 0;
    for(int x = 0; x < vendite.length; x++) {
    contatore++;
    }
    return contatore;
    }
  • Re: Creazione metodo e richiamo nel Main

    Fabrizio1993 ha scritto:


    public int getVenditeAlDiSopra(int v) {
    		int contatore = 0;
    		for(int x = 0; x < vendite.length; x++) {
    			contatore++;
    		}
    		return contatore;
    }
    Così le stai contando tutte (oltretutto anche oltre il numero logico di valori) ... non SOLO quelle con valore > v.

    Per i cicli, invece di vendite.length usa sempre venditeEffettuate. venditeEffettuate è il numero "logico" di valori che stai gestendo. vendite.length invece è la capacità "fisica" dell'array. Sono due cose diverse.
  • Re: Creazione metodo e richiamo nel Main

    andbin ha scritto:


    Fabrizio1993 ha scritto:


    public int getVenditeAlDiSopra(int v) {
    		int contatore = 0;
    		for(int x = 0; x < vendite.length; x++) {
    			contatore++;
    		}
    		return contatore;
    }
    Così le stai contando tutte (oltretutto anche oltre il numero logico di valori) ... non SOLO quelle con valore > v.

    Per i cicli, invece di vendite.length usa sempre venditeEffettuate. venditeEffettuate è il numero "logico" di valori che stai gestendo. vendite.length invece è la capacità "fisica" dell'array. Sono due cose diverse.
    public double getVenditeAlDiSopra(double v) {
    for(int x = 0; x < venditeEffettuate; x++) {
    if(x > v) {

    }
    }
    return venditeEffettuate;

    Ma c'è qualcosa che non mi quadra , V che valore ha?e nel main quando lo richiamo mi esce solo il numero delle vendite efettuate
  • Re: Creazione metodo e richiamo nel Main

    Fabrizio1993 ha scritto:


    public double getVenditeAlDiSopra(double v) {
    		for(int x = 0; x < venditeEffettuate; x++) {
    			if(x > v) {
    				
    			}
    		}
    		return venditeEffettuate;
    No, devi comunque usare un "contatore". E appunto contare le vendite il cui valore è > v .
  • Re: Creazione metodo e richiamo nel Main

    andbin ha scritto:


    Fabrizio1993 ha scritto:


    public double getVenditeAlDiSopra(double v) {
    		for(int x = 0; x < venditeEffettuate; x++) {
    			if(x > v) {
    				
    			}
    		}
    		return venditeEffettuate;
    No, devi comunque usare un "contatore". E appunto contare le vendite il cui valore è > v .

    public double getVenditeAlDiSopra(double v) {
    int contatore = 0;
    for(int x = 0; x < venditeEffettuate; x++) {
    if(x > v) {
    contatore++;
    }
    }
    return contatore;

    non devo fare x > v giusto? il valore con V ,quindi venditeEffettuate > v ?
  • Re: Creazione metodo e richiamo nel Main

    Fabrizio1993 ha scritto:


    public double getVenditeAlDiSopra(double v) {
    		int contatore = 0;
    		for(int x = 0; x < venditeEffettuate; x++) {
    			if(x > v) {
    				contatore++;
    			}
    		}
    		return contatore;
    No, x è l'indice, non ha senso confrontarlo con un double!!
  • Re: Creazione metodo e richiamo nel Main

    andbin ha scritto:


    Fabrizio1993 ha scritto:


    public double getVenditeAlDiSopra(double v) {
    		for(int x = 0; x < venditeEffettuate; x++) {
    			if(x > v) {
    				
    			}
    		}
    		return venditeEffettuate;
    No, devi comunque usare un "contatore". E appunto contare le vendite il cui valore è > v .
    public double getVenditeAlDiSopra(double v) {
    int contatore = 0;
    for(int x = 0; x < venditeEffettuate; x++) {
    if(vendite[x] > v) {
    contatore++;
    }
    }
    return contatore;
    }
    ora nel main faccio system.out.println(valore.getVenditeAlDiSopra(*qui dentro che valore devo mettere ,un double,ma se metto 0 mi esce 3 perchè ho aggiunto 3 vendite));
  • Re: Creazione metodo e richiamo nel Main

    Fabrizio1993 ha scritto:


    public double getVenditeAlDiSopra(double v) {
    		int contatore = 0;
    		for(int x = 0; x < venditeEffettuate; x++) {
    			if(vendite[x] > v) {
    				contatore++;
    			}
    		}
    		return contatore;			
    	}

    Fabrizio1993 ha scritto:


    ora nel main faccio system.out.println(valore.getVenditeAlDiSopra(*qui dentro che valore devo mettere ,un double,ma se metto 0 mi esce 3 perchè ho aggiunto 3 vendite));
    Dipende dalle vendite inserite. Se fossero 4 inserite, es. 30, 60, 20, 50 e al getVenditeAlDiSopra passi 40, ottieni solo 2 (conta il 50 e 60).
  • Re: Creazione metodo e richiamo nel Main

    andbin ha scritto:


    Fabrizio1993 ha scritto:


    public double getVenditeAlDiSopra(double v) {
    		int contatore = 0;
    		for(int x = 0; x < venditeEffettuate; x++) {
    			if(vendite[x] > v) {
    				contatore++;
    			}
    		}
    		return contatore;			
    	}

    Fabrizio1993 ha scritto:


    ora nel main faccio system.out.println(valore.getVenditeAlDiSopra(*qui dentro che valore devo mettere ,un double,ma se metto 0 mi esce 3 perchè ho aggiunto 3 vendite));
    Dipende dalle vendite inserite. Se fossero 4 inserite, es. 30, 60, 20, 50 e al getVenditeAlDiSopra passi 40, ottieni solo 2 (conta il 50 e 60).
    public static void main(String[] args) {
    LibroMastro valore = new LibroMastro(100);
    valore.aggiungiVendita(2.23);
    valore.aggiungiVendita(3.34);
    valore.aggiungiVendita(4.34);
    valore.aggiungiVendita(5.67);
    System.out.println(valore.getMediaVendite());
    System.out.println(valore.getVenditeEffettuate());
    System.out.println(valore.getVenditeAlDiSopra(40));
    mi esce 0.0
  • Re: Creazione metodo e richiamo nel Main

    andbin ha scritto:


    Fabrizio1993 ha scritto:


    public double getVenditeAlDiSopra(double v) {
    		int contatore = 0;
    		for(int x = 0; x < venditeEffettuate; x++) {
    			if(vendite[x] > v) {
    				contatore++;
    			}
    		}
    		return contatore;			
    	}

    Fabrizio1993 ha scritto:


    ora nel main faccio system.out.println(valore.getVenditeAlDiSopra(*qui dentro che valore devo mettere ,un double,ma se metto 0 mi esce 3 perchè ho aggiunto 3 vendite));
    Dipende dalle vendite inserite. Se fossero 4 inserite, es. 30, 60, 20, 50 e al getVenditeAlDiSopra passi 40, ottieni solo 2 (conta il 50 e 60).
    Ho capito , risolto mi viene ..se passo 3 , giustamente mi esce 3 perchè 3 sono i risultati al di sopra di V (3)
Devi accedere o registrarti per scrivere nel forum
13 risposte