F | acciamo il punto. Argomenti correlati:
|
- funzione isNaN(argomento)
- Is not a number
Si tratta di una funzione che restituisce true (vero) se l'argomento non è un numero, false (falso) altrimenti.
PROVA
Inserire nella casella di testo sottostante un valore numerico, oppure un testo qualunque, e premere il tasto OK. Particolarmente interessante è il caso in cui si scrive una frazione con denominatore zero (ad esempio 4/0).
CODICE DELLA FUNZIONE:
function check(str) {
flag = isNaN(str);
if (flag == true) {
alert(str + " non è un numero");
}
else {
alert(str + " è un numero ");
}
}
- funzione parseInt(argomento)
- restituisce la parte intera di un numero. Se si inserisce una stringa, si ottiene il messaggio "NaN" (not a number).
PROVA
Inserire nella casella di testo sottostante un valore numerico, oppure un testo qualunque, e premere il tasto OK. Provare con:
- 12.9
- 0x66 (base esadecimale)
- 066 (base ottale)
- ciao
- 34*2
- 34a66
Notare che parseInt non esegue le operazioni, ma considera l'argomento come stringa. Dalle ultime due prove si nota che parseInt si interrompe non appena trova un simbolo non numerico (* nel penultimo caso, a nell'ultimo).
CODICE DELLA FUNZIONE:
function check1(str) {
flag = parseInt(str)
alert('parseInt('+str + ')=' + flag);
}
- funzione parseInt(argomento, radix)
- restituisce la parte intera di un numero nella base espressa da radix Se si inserisce una stringa, si ottiene il messaggio "NaN" (not a number).
PROVA
Inserire nella casella di testo sottostante un valore numerico, oppure un testo qualunque, e premere il tasto OK. Provare con:
- 12.9 base 10
- 0x66 base 16
- 1001 base 2
- 1001 base 1 (si ottiene NaN poiché 1 non è una cifra aammissibile in base 2)
- ciao base 16 (si ottiene 12 poiché c in base esadecimale è proprio 12 in base dieci: visto che la i non è una cifra esadecimale, il programma si interrompe.)
- ca base 16
- 32 base 5
CODICE DELLA FUNZIONE:
function check2(str,r) {
flag = parseInt(str,r)
alert(str + ' in base '+ r + ' = ' + flag + ' in base dieci');
}
- window.prompt, window.alert
- Metodi dell'oggetto window
- !=
- Diverso, operatore relazionale
- ==
- Uguale, operatore relazionale
- %
- Restituisce il resto della divisione fra numeri interi, operatore aritmetico
Esempio: 34 % 5 = 4
|
|
|
|
Si ha la selezione multipla quando non si effettua solo una scelta fra due alternative, come nella selezione binaria, ma l'else porta a sua volta ad un'altra scelta. | |
ESEMPIO
|
Vogliamo verificare se un numero introdotto da tastiera è pari.
Introduciamo a questo scopo una funzione JavaScript con il seguente codice, da inserite fra i tags <HEAD> ed </HEAD> :
<script language=JavaScript>
function controlla() {
numero=window.prompt('Inserisci un numero intero');
if (numero % 2 ==0) {
window.alert(numero +' è pari');
}
else {
window.alert(numero + ' è dispari');
}
}
</script>
Creiamo un bottone con il seguente codice, da inserire fra i tags <BODY> e </BODY> : :
<form name="Mioform2">
<input type=button value="Clicca" name="bottone1" OnClick="javascript:controlla()">
</form>
Otteniamo il seguente risultato:
Se proviamo a cliccare sul bottone, notiamo che:
- Se inseriamo un numero pari, ad esempio 4, otteniamo l'avviso " 4 è pari";
- Se inseriamo un numero dispari, ad esempio 5, otteniamo l'avviso "5 è dispari";
- Se inseriamo una parola, ad esempio "ciao",
otteniamo l'avviso "ciao è dispari".
Ancora una volta non abbiamo tenuto conto di tutte le ipotesi, infatti per noi è naturale, parlando di numeri pari, riferirci all'ambiente dei numeri naturali, ma per l'interprete Javascript no!
E' quindi necessario migliorare ulteriormente il programma.
| |
PRIMO MIGLIORAMENTO
|
Un primo miglioramento si ottiene ampliando il ventaglio delle ipotesi:
- Se l'utente non ha introdotto un numero
- Scrivi il messaggio "Devi inserire un numero"
- altrimenti
- se il resto della divisione per 2 è zero
- Scrivi il messaggio "Il numero è pari"
- altrimenti
- Scrivi il messaggio "Il numero
è dispari"
Introduciamo a questo scopo una funzione JavaScript con il seguente codice, da inserite fra i tags <HEAD> ed </HEAD> :
<script language=JavaScript>
function controlla1() {
numero=window.prompt('Inserisci un numero intero'); if (isNaN(numero) ==
true) {
window.alert('Devi inserire un numero') }
else { if (numero % 2 ==0) { window.alert(numero +' è pari');
}
else { window.alert(numero + ' è dispari'); }
}
}
</script>
Creiamo un bottone con il seguente codice, da inserire fra i tags <BODY> e </BODY> : :
<form name="Mioform2">
<input type=button value="Clicca" name="bottone1" OnClick="javascript:controlla1()">
</form>
Otteniamo il seguente risultato:
Se proviamo a cliccare sul bottone, notiamo che:
- Se inseriamo una parola, ad esempio
"ciao", otteniamo l'avviso "Devi inserire un numero".
- Se inseriamo un numero pari, ad esempio 4, otteniamo l'avviso " 4 è pari";
- Se inseriamo un numero dispari, ad esempio 5, otteniamo l'avviso "5 è dispari";
- Se inseriamo un numero decimale, ad esempio 5.4, otteniamo l'avviso "5.4 è dispari";
E' quindi necessario migliorare ulteriormente il programma.
| |
SECONDO MIGLIORAMENTO
|
Ampliamo ancora il ventaglio delle ipotesi:
- Se l'utente non ha introdotto un numero
- Scrivi il messaggio "Devi inserire un numero"
- altrimenti
- se la parte intera del numero è diversa dal numero stesso
- Scrivi il messaggio "Devi inserire un numero intero"
- altrimenti
- se il resto della divisione per 2 è zero
- Scrivi il messaggio "Il numero è pari"
- altrimenti
- Scrivi il messaggio "Il numero
è dispari"
Introduciamo a questo scopo una funzione JavaScript con il seguente codice, da inserite fra i tags <HEAD> ed </HEAD> :
<script language=JavaScript>
function controlla2() {
numero=window.prompt('Inserisci un numero intero'); if (isNaN(numero) == true) {
window.alert('Devi inserire un numero') }
else { if (parseInt(numero)!=numero) { window.alert('Devi inserire un numero intero!')
}
else { if (numero % 2 ==0) { window.alert(numero +' è pari');
}
else { window.alert(numero + ' è dispari'); }
}
}
}
</script>
Creiamo un bottone con il seguente codice, da inserire fra i tags <BODY> e </BODY> : :
<form name="Mioform3">
<input type=button value="Clicca" name="bottone2" OnClick="javascript:controlla2()">
</form>
Otteniamo il seguente risultato:
Se proviamo a cliccare sul bottone, notiamo che:
- Se inseriamo una parola, ad esempio
"ciao", otteniamo l'avviso "Devi inserire un numero".
- Se inseriamo un numero pari, ad esempio 4, otteniamo l'avviso " 4 è pari";
- Se inseriamo un numero dispari, ad esempio 5, otteniamo l'avviso "5 è dispari";
- Se inseriamo un numero decimale, ad esempio 5.4, otteniamo l'avviso "Devi inserire un numero intero";
- Se inseriamo un numero con la parte decimale uguale a zero, ad esempio 5.0, otteniamo l'avviso "5.0 è dispari";
- Se inseriamo ad esempio 6.0, otteniamo l'avviso "6.0 è pari";
Con le nostre conoscenze attuali non siamo in grado di rendere questo programma in grado di funzionare in tutti i casi.
| |