Una studentessa universitaria disperata

di il
8 risposte

Una studentessa universitaria disperata

Buonasera.
sono nuova su questo sito e a dire il vero è la prima volta che faccio una cosa del genere, ma non sono talmente disperata che non so più cosa fare.
ad ogni modo, devo consegnare un homework entro mercoledì e ci sto lavorando da giovedì ma ahimè con scarsi risultati.
ecco il testo dell'esercizio: Scrivere un metodo in Java
static int metodo(int[] a)
che preso come parametro un array a di numeri interi (int[]), restituisce il numero di elementi che sono minori o uguali della media aritmetica di tutti gli elementi presenti nell'array stesso.
Ad esempio, se a={3, 7, 10, 20, 2}, il metodo deve restituire 3 in quanto l'array contiene 3 elementi minori o uguali a 8.4 (la media aritmetica di tutti i suoi elementi).

qualche buon anima disposta ad aiutarmi c'è?
come prima cosa in teoria dovrei calcolare la somma e la media dei numeri che ho scelto, ma poi?

8 Risposte

  • Re: Una studentessa universitaria disperata

    È più facile di quanto sembri. Posta la prima parte del programma.
    Sarà un ciclo che sommerà tutti gli elementi del vettore, per poi dividerlo per il numero degli elementi. Questa sarà la media. Attenzione che si parla di valori interi.

    Farai un secondo ciclo, per ogni elemento, dove confronterai ogni valore con la media, aggiornando un contatore inizialmente inizializzato a zero.

    Per un medio programmatore saranno 5 minuti tutto compreso
  • Re: Una studentessa universitaria disperata

    vittoria.ciardone ha scritto:


    qualche buon anima disposta ad aiutarmi c'è?
    come prima cosa in teoria dovrei calcolare la somma e la media dei numeri che ho scelto, ma poi?
    Oltre a quanto ti è già stato detto, in generale (e a grandi linee) i passi sono:

    - ciclo for per scorrere l'array e sommare i valori (serve una variabile che fa da "sommatoria", inizialmente = 0)
    - calcolo della media
    - altro ciclo for per scorrere l'array e conteggiare quanti valori sono = della media (serve una variabile che fa da "contatore", inizialmente = 0, e che sarà il risultato da restituire)

    Scrivi del codice, per dubbi chiedi.
  • Re: Una studentessa universitaria disperata

    Cercando con google "java media array" si trova come primo risultato
  • Re: Una studentessa universitaria disperata

    @vittoria, "disperata", che esagerazione!

    PRIMA di scrivere il codice, a questi livelli, si deve ragionare so come si potrebbe fare SEMPLICEMENTE (e LETTERALMENTE) CON CARTA E MATITA!

    POI si scrive il codice!
  • Re: Una studentessa universitaria disperata

    patel ha scritto:


    Cercando con google "java media array" si trova come primo risultato
    Non aprire neanche quel link, non impareresti nulla.
    quanto di più sbagliato si possa fare (usare Google in questa fase)
  • Re: Una studentessa universitaria disperata

    Allora, vi ringrazio inanzitutto per l'aiuto.
    prima di leggere le risposte, sono riuscita a svolgere la prima parte da sola del compito, quindi ho calcolato la somma e la media dei valori, ora non resta che fare la seconda, ovvero scorrere l'array e vederequali valori sono <= della media
    qui di seguito vi incollo il programma svolto:
    package id2;

    public class MainClass {

    public static void main(String[] args) {
    int a[]= {3,6,12,24,2};
    System.out.println(somma(a));
    }



    static int somma(int[]a) {
    int media=0;
    int somma=0;
    for( int i=0;i<=a.length-1;i=i+1) {
    somma=somma+a;
    }
    media=somma/a.length;

    return media;
    }

    }

    la media int viene 9,ho eseguito il programma correttamente
  • Re: Una studentessa universitaria disperata

    Ti stai abbastanza avvicinando.
    Potresti sempre controllare, prima di fare divisioni, di non farle per zero (es. se il vettore è vuoto, con lunghezza zero).
    la funzione "somma" in realtà ritorna la media?

    meglio se ne fai due
    - somma (che ritorna la somma)
    - media (che chiama somma, e poi calcola la media)
  • Re: Una studentessa universitaria disperata

    vittoria.ciardone ha scritto:


    qui di seguito vi incollo il programma svolto:
    "Nì", cioè sì più o meno ma non è ancora proprio a posto.

    Innanzitutto il metodo somma in realtà restituisce la media (banalmente: si cambia il nome al metodo).

    P.S. for( int i=0;i<=a.length-1;i=i+1) è tecnicamente corretto. Ma generalmente la forma più tipica è:

    for (int i=0; i<a.length; i++)

    Nota: i<=a.length-1 è infatti equivalente a i<a.length
Devi accedere o registrarti per scrivere nel forum
8 risposte