Media geometrica

di il
1 risposte

Media geometrica

Ciao sono un ragazzo alle prime armi con la programmazione Java e sono ore che mi scervello su un esercizio che all'apparenza mi sembrava semplice.
l'esercizio in questione e': Calcolare la media geometrica di un elenco di valori positivi. (Per calcolare la media geometrica bisogna moltiplicare ogni valore e poi fare la radice ennesima). Io ho pensato di utilizzare un ciclo do-while con valore sentinella , ma non so dove sto sbagliando.
Il codice fatto da me e':

import java.util.Scanner;

public class Esempio {
public static void main(String[] args) {
Scanner tastiera = new Scanner (System.in);
int numero;
System.out.println("Inserire i numeri da analizzare:");
numero = tastiera.nextInt();
do {
numero = tastiera.nextInt();
somma = numero * numero;
double valore = Math.pow(somma, 1.0/2);
System.out.println(valore);

} while (numero > 0);

}
}

grazie in anticipo.

1 Risposte

  • Re: Media geometrica

    Andre_Flav ha scritto:


    l'esercizio in questione e': Calcolare la media geometrica di un elenco di valori positivi. (Per calcolare la media geometrica bisogna moltiplicare ogni valore e poi fare la radice ennesima). Io ho pensato di utilizzare un ciclo do-while con valore sentinella , ma non so dove sto sbagliando.
    Innanzitutto, non so se l'hai notato, all'inizio chiedi un numero che poi non usi perché nel do-while ne chiedi già un altro.
    Poi dove è la dichiarazione della variabile somma ??

    E comunque quella che hai fatto NON è una media geometrica (vedi su Wikipedia). Cosa sia non lo so ....
    Prima devi moltiplicare tutti i valori. Quindi devi avere una variabile inizializzata a 1 e poi ciascun valore inserito lo "accumuli" in quella variabile tramite moltiplicazione. E solo alla fine, quando hai terminato l'input, fai la radice n-esima. NON è quello che hai fatto ..

    E inoltre nota, usi un valore negativo/zero come sentinella per terminare il ciclo. Ok, ma se inserisci il valore sentinella, ora lo stai USANDO per i calcoli! No, ovviamente.

    Ripensa un po' il tutto.

    P.S. puoi anche chiedere inizialmente all'utente quanti numeri gestire. Diventa più semplice e non devi trattare alcun valore in modo "speciale".
Devi accedere o registrarti per scrivere nel forum
1 risposte