Newsgroup: it.comp.lang.javascript
Titolo: Le funzioni

Premetto che ho iniziato da poco a cimentarmi con JavaScript.
Non capisco perchč non funziona questo semplice script, con il quale
l'utente immette quanti numeri casuali vuole che siano generati dallo
script, e di questi farne la media: 
<html>
<head>
<title></title>
<script language="JavaScript">
function rand(s){
var totale = 0;
for(i = 0; i < s; i++){
totale+=Math.random();
window.status="generati " + i + " numeri";
}
document.write(totale,/,s);
}
</script>
</head>
<body>
<form>
<input type="text" name="numero" size="8">
<input type="button" value="Vai" onClick="rand(this.form)">
</form>
</body>
</html>

 script, e di questi farne la media: 
Non è il luogo più adatto per un corso, comunque questa pagina funziona, segue 
una spiegazione sommaria:
-------------------------------------------------------- begin ---------
<html>
<head>
<title></title>
<script language="JavaScript">
function rand()
	{
	var totale = 0;
	var limite = 100;
	var s = parseInt(document.numeri.quanti.value);
	for(i = 0; i < s; i++)
		{
		totale+=Math.round(limite*Math.random());
		window.status="generati " + eval(i+1) + " numeri";
		}
	document.numeri.numero.value=Math.round(totale/s);
	}
</script>
</head>
<body>
<form name="numeri">
Quanti? <INPUT TYPE="text" NAME="quanti" size="4"> <BR>
Risultato: <input type="text" name="numero" size="8"> <BR>
<input type="button" value="Vai" onClick="rand()">
</form>
</body>
</html>
--------------------------------------------------------- end ----------
- var limite = 100
	Math.random() genera un numero compreso fra 0 e 1. Basta moltiplicarlo 
per il massimo che vuoi ottenere per ottenere un numeo compreso fra 0 e il 
massimo; se vuoi un numeo fra 10 e 15 fai 10+Math.round(5*Math.random())
- var s = parseInt(document.numeri.quanti.value);
	Non avevi previsto (anche se pensavi di si :-) un campo in cui l'utente 
potesse scrivere quanti numeri vuole generare. 
	parseInt() perché una cosa letta da un campo text è sempre una stringa, 
quindi la trasformo in numero intero;
- totale+=Math.round(limite*Math.random());
	Qui ed alla fine uso Math.round() perché il risultato delle operazioni è 
un numero decimale.
- window.status="generati " + eval(i+1) + " numeri";
	Nel ciclo "for...." i comincia da 0 e finisce a 99, quindi conta 
effettivamente 100 cicli, ma assume il valore di 99 alla fine. Allora (i+1) 
diventa 100 (ma và!? :-) ed eval() serve a fare l'operazione di somma, 
altrimenti sarebbe un concatenamento di stringhe ed otterresti i+1=99+1=991(!)
Cosa c'era di sbagliato?
Un bel po' di cose, fra le più improbabili c'era l'uso di document.write nella 
funzione. document.write può scrivere qualcosa nel documento solo finché questo 
viene creato, una volta che è finito non può più far nulla. per visualizzare 
dei risultati devi usare un alert() oppure scriverli in un campo TEXT di un 
form.
Inoltre document.write(totale,/,s) non ha senso, semmai sarebbe dovuto essre 
document.write(totale/s), salvo quanto scritto nel paragrafo precedente.
Come primo assaggio direi che è sufficiente, hai visto le lezioni su JsDir?
-- 
Ciao, Riccardo
------------------------------------------------------------------------
WebMaster: ----> 
http://www.jsdir.com
 <---- (aka 
http://www.jspoint.it
)
------------------------------------------------------------------------
Need a JavaScript password?
http://www.jspoint.it/staffscripts/script021/PazzWordProva/ingresso.html
------------------------------------------------------------------------
"Any sufficientely advanced technology is indistinguishable from magic"
                      Arthur Charles Clarke
------------------------------------------------------------------------

Come primo assaggio direi che è sufficiente, hai visto le lezioni su JsDir?
Si.
I testi di cui mi avvalgo sono validi?
Stò cercando di imparare presto il JavaScript per poi passare alle
applet java avvalendomi del testo "Programmare con Java 2 for dummies"
della Apogeo, per poi fare il grande salto in Java.....
grazie ancora una volta della disponibilità nei confronti di un
novellino come me.
Cioa. 

 <input type="text" name="numero" size="8" id="numero">


 wrote:
Grazie, Paolo č proprio quello che cercavo di capire.
Quindi ID assegna un nome ad una parte di testo, nel mio caso il
contenuto dell'INPUT, e deve necessariamente corrispondere al nome
assegnato all'INPUT:
<input type="text" name="numero" size="8" id="numero">
e non
<input type="text" name="cipolla" size="8" id="aglio">


 novellino come me.
Come per tutti.


 alert(totale+'/'+s);
Scusa Paolo..... forse non ho capito io.
Ma ID non è superfluo dato che c'è gia NAME e che ad Explorer non da fastidio 
il NAME?


 ha scritto nel messaggio
news:MPG.143f1a8e4...@news.libero.it...


 Certo, ho detto una fesseria :-((
Ehi non vorrai mica competere con me? :-)
-- 
Ciao, Riccardo
------------------------------------------------------------------------
