ESERCITAZIONE JAVASCRIPT
versione 25/05/2011
 
ESERCIZIO 1 (IF)

Costruire una pagina HTML che chieda se si vuole stabilire il segno (positivo, negativo o zero) di un qualcosa digitato da tastiera.



Se la risposta è affermativa (click su OK) allora deve richiedere un valore

Successivamente deve stabilire se l'utente ha digitato qualcosa, se si controllare che sia numerico e a questo punto valutare se è positivo, negativo o nullo.

SOLUZIONE

<SCRIPT Language="JavaScript">
    // la definizione della funzione non è richiesta
    function isNull(val)
    {
        // con === il confronto è effettuato sia sul contenuto che sul tipo
        // ad esempio: ("0"==0) è vero mentre ("0"===0) è falso
        EVuoto=false;
        if (String(val) === "undefined")
            EVuoto=true
        if (String(val) === "null")
            EVuoto=true
        if (String(val) === "")
            EVuoto=true
        return EVuoto;
    }

    if (confirm("Vuoi valutare il segno di un valore digitato da tastiera ?")==true)
    {
        X=prompt("Dammi un valore: ","")
        // La valutazione dell'isNull è necessaria poichè la stringa vuota verrebbe
        // valutata come 0
        if (isNull(X))
            document.write("Non hai digitato niente!")
        else
            if (isNaN(X))
                document.write("Non hai scritto un numero!")
            else
                if (X>0)
                    document.write("X è un numero positivo!")
                else
                    if (X<0)
                        document.write("X è un numero negativo!")
                    else
                        document.write("X è uguale a 0!")
    }
</SCRIPT>

ESERCIZIO 2 (IF)

Costruire una pagina HTML che richieda di un triangolo l'altezza e la base e visualizzi l'area e il perimetro. Il programma deve controllare che i dati digitati siano effettivamente dei numeri

SOLUZIONE

<SCRIPT Language="JavaScript">
      base=prompt("Fornire la lunghezza della base (usare il . al posto della , per i decimali): ","0")
      if (isNaN(base))
             document.write("Non hai scritto un numero - Programma terminato")
      else
         {
             altezza=prompt("Fornire la l'altezza (usare . al posto della , per i decimali): ","0")
             if (isNaN(altezza))
                document.write("Non hai scritto un numero - Programma terminato!")
             else
                {
                    document.write("L'area del triangolo è: "+base*altezza/2+"<BR>")
                    Perimetro=(parseFloat(base)+parseFloat(altezza)+Math.sqrt(base*base+altezza*altezza))
                    document.write("Il perimetro è: "+Perimetro)
                }
         }
</SCRIPT>

ESERCIZIO 3 (IF)

Costruire una pagina HTML che legga in ingresso i 3 coefficienti a, b e c di un polinomio di 2^ grado e restituisca le 2 radici x1 e x2. Dal calcolo sono escluse quelle immaginarie che vanno gestite con un opportuno messaggio di errore

ax2+bx+c=0 ==> x1, x2 dove

SOLUZIONE COMPLETA (La soluzione richiesta è ridotta rispetto a quella proposta)

<SCRIPT Language="JavaScript">
    a=prompt("Digitare il coefficiente A: ","0")
    if (isNaN(a))
        document.write ("Non hai scritto un numero - Programma terminato")
    else
        {
            b=prompt("Digitare il coefficiente B: ","0")
            if (isNaN(b))
                document.write("Non hai scritto un numero - Programma terminato")
            else
                {
                    c=prompt("Digitare il coefficiente C [termine noto]: ","0")
                    if (isNaN(c))
                        document.write("Non hai scritto un numero - Programma terminato")
                    else
                        {
                            a=parseFloat(a);
                            b=parseFloat(b);
                            c=parseFloat(c);
                            if ( (a==0) && (b!=0) )
                                {
                                    x1=-(c/b);
                                    document.write("Polinomio di 1^ grado: soluzione unica x1="+x1)
                                }
                            else
                                if ( (a==0) && (b==0) && (c!=0) )
                                    document.write("Eguaglianza impossibile: " +c +"=0")
                                else
                                    if ( (a==0) && (b==0) && (c==0) )
                                       document.write("Infinite soluzioni!")
                                    else
                                        {
                                            delta=b*b-4*a*c;
                                            if (delta <0)
                                               {
                                                    termineReale=-b/2*a;
                                                    termineImmaginario=Math.sqrt(-delta)/(2*a)
                                                    x1=termineReale+"+"+termineImmaginario+"i"
                                                    x2=termineReale+"-"+termineImmaginario+"i"
                                                    document.write("Soluzioni nel campo dei numeri immaginari!<HR>")
                                                    document.write("La soluzione X<SUB>1</SUB>:"+x1 +"<br>")
                                                    document.write("La soluzione X<SUB>2</SUB>:"+x2 +"<br>")
                                               }
                                               else
                                               {
                                                    x1=(-b+Math.sqrt(delta))/(2*a)
                                                    x2=(-b-Math.sqrt(delta))/(2*a)
                                                    document.write("La soluzione X<SUB>1</SUB>:"+x1 +"<br>")
                                                    document.write("La soluzione X<SUB>2</SUB>:"+x2 +"<br>")
                                               }
                                        }
                        }
                }
        }
</script>

ESERCIZIO 4 (IF)

Costruire una pagina HTML che richieda un numero N è indichi se si tratta di un numero pari o dispari (suggerimento: operatore x % y = resto divisione di x per y)

ESERCIZIO 5 (IF)

Costruire una pagina HTML che richieda durante la sua apertura la digitazione di un carattere c e visualizzi le seguenti frasi a secondo del carattere digitato dall'utente: (suggerimento: usare la condizione (c=="") per testare l'assenza di digitazione e (c.length>1) per controllare che siano stati digitati più caratteri)

a) "Non hai digitato un singolo carattere" ==> se non si scrive niente oppure se si è digitato più di un carattere
b) "Hai digitato un carattere minuscolo" ==> se c="a" .. "z"
c) "Hai digitato un carattere maiuscolo" ==> se c="A" .. "Z"
d) "Hai digitato un numero" ==> se c="0" .. "9"
e) "Non hai digitato un carattere alfanumerico" ==> altrimenti

ESERCIZIO 6 (IF)

Costruire una pagina HTML che richieda durante la sua apertura l'età del lettore (vedi figura)

e visualizzi le seguenti frasi a seconda dell'età inserita:
a) "Sei Maggiorenne" ==> se l'età è maggiore o uguale a 18 anni
b) "Non Sei Maggiorenne" ==> se l'età è compresa tra 14 e 18 anni
c) "Sei Minorenne" ==> se l'età è minore o uguale a 14 anni

ESERCIZIO 7 (IF)

Costruire una pagina HTML che richieda, durante la sua apertura, le coordinate x e y di un punto e determini se tale punto si trova:
1) all'interno del rettangolo
2) sul perimetro del rettangolo
3) all'esterno del rettangolo
Il rettangolo ha come angolo inferiore sinistro il punto (1,1) e angolo superiore destro il punto (10,3)

ESERCIZIO 8 (IF)

Costruire una pagina HTML che richieda, durante la sua apertura, le coordinate a e b di un punto e determini a quale area colorata della figura sottostante appartiene:
 

Le funzioni relative alle due circonferenze sono scritte a fianco della figura. Il programma deve avvertire se il punto (a,b) non appartiene alle regioni colorarate.