Ancora javascript
raga mi aiutate....creare una pagine web che permetta in javascript di scrivere "n" numeri e stamparne la media utilizzando una casella di testo per inserire il primo valore e poi gestisca opportunamente l'evento di inserimento di altri numeri (per esempio mediante un pulsante).il risultato viene visualizzato in una finestra alert().
Risposte
gli altri numeri dovrebbero essere inseriti sempre in quella textfield ed alla pressione del bottone lui dovrebbe rilevare il valore inserito e fare la media con quelli inseriti in precedenza?
si
nessuno potrebbe aiutarmi
comunque non funziona
eh hai ragione m sn dimenticato di fare la media della somma 
cosi dovrebbe andare

cosi dovrebbe andare
non funziona
Prova così. Stampa la media di 10 valori, ma puoi aumentarli cambiando la variabile numTot. Si può modificare anche facendogli calcolare la media ad libitum.
<html> <head> <title>Calcola la media di n numeri</title> <script type="text/javascript"> var n = 1; var totale = 0; // somma totale dei valori immessi var numTot = 10; // numero di valori di cui calcolare la media function calcolaMedia(val) { /* somma i numeri fino a numTot */ totale = totale + parseFloat(val); /* riga successiva opzionale */ document.form1.inserito.value = 'Numeri inseriti: ' + n.toString(); if (n >= numTot) { /* calcola la media e la visualizza */ alert('La media è ' + (totale/n).toString()) n = 0; totale = 0; }; n++ } </script> </head> <body> <form name="form1"> <label>Valore: </label> <input name="nuovoValore" type="text" value="0" size="5"/> <input name="inserito" type="button" value="Aggiungi" onclick=" calcolaMedia(document.form1.nuovoValore.value);"/> </form> </body> </html>
vorrei inserire un pulsante calcola cosi quando inserisco ad esempio 3 numeri posso premere calcola per fare la media e non aspettare di inserire 10 valori
Ah, non avevo capito. Quindi vuoi una casella di inserimento, un pulsante per inserire il valore più un altro per calcolare la media, giusto?
"tony883":
non funziona
veramente funziona benissimo... ogni numero inserito viene salvato e poi viene fatta la media degli n numeri inseriti fino a quel momento. ti ho solo messo la media in una textbox non editabile, ma nn credo ci voglia la scala a cambiarla con un alert(media) visto che tu stesso conosci alert.
Così va bene?
<html> <head> <title>Calcola la media di n numeri</title> <script type="text/javascript"> var n = 1; var totale = 0; // somma totale dei valori immessi </script> </head> <body> <form name="form1"> <label>Valore: </label> <input name="nuovoValore" type="text" value="0" size="5"/> <input name="inserito" type="button" value="Aggiungi" onclick="totale = totale + parseFloat(document.form1.nuovoValore.value); n++"/> <input name="inserito" type="button" value="Calcola" onclick="alert('La media è ' + (totale/n).toString()); n = 0; totale = 0;"/> </form> </body> </html>
Così è anche meglio... 

<html> <head> <title>Calcola la media di n numeri</title> <script type="text/javascript"> var n = 0; var totale = 0; // somma totale dei valori immessi function aggiungiValore (val) { totale = totale + parseFloat(val); n++; } function calcolaMedia () { alert('La media è ' + (totale/n).toString()); n = 0; totale = 0; } </script> </head> <body> <form name="form1"> <label>Valore: </label> <input name="nuovoValore" type="text" value="0" size="5"/> <input name="inserito" type="button" value="Aggiungi" onclick="aggiungiValore(document.form1.nuovoValore.value)"/> <input name="inserito" type="button" value="Calcola" onclick="calcolaMedia();"/> </form> </body> </html>
grazie mi potresti spiegare riga per riga cosa hai fatto
1 <script type="text/javascript"> 2 var n = 0; 3 var totale = 0; // somma totale dei valori immessi 4 5 function aggiungiValore (val) { 6 totale = totale + parseFloat(val); 7 n++; 8 } 9 10 function calcolaMedia () { 11 alert('La media è ' + (totale/n).toString()); 12 n = 0; 13 totale = 0; 14 } 15 </script>
Righe 2 e 3: definisco due variabili che conterranno rispettivamente il numero di valori immessi e la loro somma
Righe 5-8: definisco la funzione che aggiunge il nuovo valore immesso dall'utente (che è sotto forma di stringa) al totale corrente. Per convertire in numero tale valore utilizzo la funzione predefinita parseFloat(). Incremento poi n, perché è stato aggiunto un valore.
Righe 10-14: definisco la funzione che calcola la media, che è data da totale diviso n, e la visualizza. Utilizzo la funzione toString() per convertirla in una stringa e sommarla al messaggio da passare ad alert(). Azzero le due variabili n e totale, per procedere con il calcolo della media di nuovi valori.
1 <form name="form1"> 2 <label>Valore: </label> 3 <input name="nuovoValore" type="text" value="0" size="5"/> 4 <input type="button" value="Aggiungi" onclick="aggiungiValore(document.form1.nuovoValore.value)"/> 5 <input type="button" value="Calcola" onclick="calcolaMedia();"/> 6 </form>
Riga 2: creo un'etichetta
Riga 3: creo un campo d'inserimento per i valori da inserire
Riga 4: creo un pulsante d'inserimento e associo all'evento click del mouse l'esecuzione della funzione aggiungiValore() definita in precedenza. A tale funzione passo il valore inserito nel campo precedente, cioè document.form1.nuovoValore.value.
Riga 5: creo un pulsante per il calcolo della media e associo all'evento click del mouse da parte dell'utente l'esecuzione della funzione calcolaMedia().
"gigilatrottola":
veramente funziona benissimo...
Confermo, anche se a me funziona in Firefox solo rimuovendo la dichiarazione di DOCTYPE all'inizio del file, oppure modificando
form1.media.value = parseFloat(media / i);
in
document.form1.media.value = parseFloat(media / i);
"anonymous_be1147":1 <script type="text/javascript"> 2 var n = 0; 3 var totale = 0; // somma totale dei valori immessi 4 5 function aggiungiValore (val) { 6 totale = totale + parseFloat(val); 7 n++; 8 } 9 10 function calcolaMedia () { 11 alert('La media è ' + (totale/n).toString()); 12 n = 0; 13 totale = 0; 14 } 15 </script>
Righe 2 e 3: definisco due variabili che conterranno rispettivamente il numero di valori immessi e la loro somma
Righe 5-8: definisco la funzione che aggiunge il nuovo valore immesso dall'utente (che è sotto forma di stringa) al totale corrente. Per convertire in numero tale valore utilizzo la funzione predefinita parseFloat(). Incremento poi n, perché è stato aggiunto un valore.
Righe 10-14: definisco la funzione che calcola la media, che è data da totale diviso n, e la visualizza. Utilizzo la funzione toString() per convertirla in una stringa e sommarla al messaggio da passare ad alert(). Azzero le due variabili n e totale, per procedere con il calcolo della media di nuovi valori.
1 <form name="form1"> 2 <label>Valore: </label> 3 <input name="nuovoValore" type="text" value="0" size="5"/> 4 <input type="button" value="Aggiungi" onclick="aggiungiValore(document.form1.nuovoValore.value)"/> 5 <input type="button" value="Calcola" onclick="calcolaMedia();"/> 6 </form>
Riga 2: creo un'etichetta
Riga 3: creo un campo d'inserimento per i valori da inserire
Riga 4: creo un pulsante d'inserimento e associo all'evento click del mouse l'esecuzione della funzione aggiungiValore() definita in precedenza. A tale funzione passo il valore inserito nel campo precedente, cioè document.form1.nuovoValore.value.
Riga 5: creo un pulsante per il calcolo della media e associo all'evento click del mouse da parte dell'utente l'esecuzione della funzione calcolaMedia().
grazie mille