ESERCITAZIONE JAVASCRIPT - FOR

ESERCIZIO 1 (FOR)

Costruire una pagina HTML che richieda durante il suo caricamento un numero n e calcoli la somma Sn  dei primi n numeri

Sn=1+2+3+.. +(n-1)+n

SOLUZIONE

<SCRIPT Language="JavaScript">
    N=prompt("Fornire il numero intero N: ","0")
    if (isNaN(N))
        document.write("Non hai scritto un numero - Programma terminato")
    else
       {
           S=0;
           for (i=1 ; i<=N ; i++)
              S=S+i;
           document.write("La somma dei primi N numeri : "+S)
       }
</SCRIPT>

ESERCIZIO 2 (FOR)

Costruire una pagina HTML che richieda due numeri interi x e n è calcoli la potenza xn. Il calcolo deve essere svolto tenendo presente la formula xn=x*x*...x (prodotto n volte di x)

ESERCIZIO 3 (FOR)

Costruire una pagina HTML che legga un numero intero n e restituisca il suo fattoriale n!

n!=1*2*:..*(n-1)*n

ESERCIZIO 4 (FOR)

Costruire una pagina HTML che legga un numero intero n e scriva la sequenza 

x1, x2, x3 ... xn-2, xn-1, xn

dove il termine i-esimo xi è così definito:

x1=1 x2=3   xn=xn-1+2*xn-2

(nel nostro caso la sequenza sarà 1, 3, 5, 11, 21, ...)

ESERCIZIO 5 (FOR)

Costruire una pagina HTML che richieda la lunghezza di una sequenza di numeri (vedi figura)

e successivamente legga la sequenza (vedi figura qui sotto) visualizzando al termine la media dei numeri letti

ESERCIZIO 6 (FOR)

Costruire una pagina HTML che visualizzi la sequenza di numeri 1, -2, 3, -4, 5 ...
La lunghezza n della sequenza deve essere richiesta all'utente (vedi figura)

ESERCIZIO 7 (FOR)

Costruire una pagina HTML che visualizzi la tavola pitagorica NxN. Il valore N è richiesto e deve essere un numero intero compreso tra 5 e 25

1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
 
SOLUZIONE

<SCRIPT Language="JavaScript">
    N=prompt("Fornire la dimensione della tabella (un numero intero N): ","0")
    if (isNaN(N))
        document.write("Non hai scritto un numero - Programma terminato")
    else
       {
           d=parseFloat(N)-parseInt(N)
           if (d==0)
              {
                   if ((N<=25) && (N>=5))
                      {
                            document.write("<TABLE BORDER=1 HEIGHT= "+N*25+" WIDTH="+N*25+">")
                            for (i=1 ; i<=N ; i++)
                                {
                                    document.write("<TR>")
                                    for (j=1 ; j <=N ; j++)
                                        document.write("<TD>"+i*j+"</TD>")
                                    document.write("</TR>")
                                }
                            document.write("</TABLE>")
                      }
                   else
                      document.write("Non hai scritto un numero intero compreso tra 5 e 25 - Programma terminato")
              }
           else
               document.write("Non hai scritto un numero intero - Programma terminato")
       }
</SCRIPT>

ESERCIZIO 8 (FOR)

Costruire una pagina HTML che visualizzi una scacchiera N x N dove la dimensione N è richiesta all'utente. Il valore N deve essere un numero intero compreso tra 5 e 25

                   
                   
                   
                   
                   
                   
                   
                   
                   
                   

ESERCIZIO 9.A.1 e 9.A.2 (FOR-IF)

1) Costruire una pagina HTML che calcoli la somma dei numeri posizionati lungo le due diagonali della tavola pitagorica 10x10 (Attenzione: non è richiesta la visualizzazione della tabella!)

2) Costruire una pagina HTML che calcoli la somma dei numeri posizionati lungo le linee mediane della tavola pitagorica 10x10 (Attenzione: non è richiesta la visualizzazione della tabella!)

1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
Tabella 1 Tabella 2

 

ESERCIZIO 9.B.1 e 9.B.2 (FOR)

1) Costruire una pagina HTML che calcoli la somma dei numeri posizionati nella matrice diagonale superiore destra  della tavola pitagorica 10x10 (Attenzione: non è richiesta la visualizzazione della tabella!)

2) Costruire una pagina HTML che calcoli la somma dei numeri posizionati nella matrice diagonale inferiore destra  della tavola pitagorica 10x10 (Attenzione: non è richiesta la visualizzazione della tabella!)

1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
Tabella 1 Tabella 2


ESERCIZIO 9.C.1 e 9.C.2 (FOR-IF)

1) Costruire una pagina HTML che calcoli la somma dei numeri posizionati lungo la cornice  esterna della tavola pitagorica 10x10  (Attenzione: non è richiesta la visualizzazione della tabella!)

2) Costruire una pagina HTML che calcoli la somma dei numeri posizionati lungo le cornici  della tavola pitagorica 10x10  (Attenzione: non è richiesta la visualizzazione della tabella!)

1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
Tabella 1 Tabella 2

ESERCIZIO 9.D (FOR-IF)

Costruire una pagina HTML che calcoli la somma dei numeri posizionati nella zone azzurre della figura sottostante  della tavola pitagorica 10x10 (Attenzione: non è richiesta la visualizzazione della tabella!)

1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
Tabella 1 Tabella 2

ESERCIZIO 10 (FOR-ARRAY)

Costruire una pagina HTML che legga una sequenza di N numeri e la riscriva in ordine inverso (l'ultimo letto è il primo ad essere scritto).

SOLUZIONE

<SCRIPT Language="JavaScript">
    N=prompt("Fornire la dimensione della sequenza (un numero intero N): ","0")
    if (isNaN(N) || N==null)
        document.write("Non hai scritto un numero - Programma terminato")
    else
       {
           Elenco= new Array
           Finito=1;
           for (i=0 ; i <N ; i++)
               {
                   x=prompt("Fornire il "+(i+1)+"° numero: ","0")
                   if (isNaN(x) || x==null)
                      {
                          document.write("Non hai scritto un numero - Programma terminato")
                          Finito=0
                          break;
                      }
                   else
                      Elenco[i]=x
               }
           if (Finito)
              for (i=N-1 ; i >=0 ; i--)
                  document.write(Elenco[i]+"<BR>")
      }
</SCRIPT>

ESERCIZIO 11 (FOR-ARRAY)

Costruire una pagina HTML che legga una sequenza di N numeri e scriva la deviazione standard di tale sequenza. La deviazione standard è espressa mediante questa formula:

ESERCIZIO 12 (FOR-ARRAY)

Costruire un programma che stampi tutte le possibili colonne (sono 313=1.594.323) della schedina del totocalcio.

  1 2 3 4 5 6 7 8 9 10 11 12 13
1° colonna 1 1 1 1 1 1 1 1 1 1 1 1 1
2° colonna 1 1 1 1 1 1 1 1 1 1 1 1 2
3° colonna 1 1 1 1 1 1 1 1 1 1 1 1 X
4° colonna 1 1 1 1 1 1 1 1 1 1 1 2 1
5° colonna 1 1 1 1 1 1 1 1 1 1 1 2 2
6° colonna 1 1 1 1 1 1 1 1 1 1 1 2 X
7° colonna 1 1 1 1 1 1 1 1 1 1 1 X 1
8° colonna 1 1 1 1 1 1 1 1 1 1 1 X 2
9° colonna 1 1 1 1 1 1 1 1 1 1 1 X X
° ° ° ° ° °
213-1 colonna X X X X X X X X X X X X 2
213-1 colonna X X X X X X X X X X X X X

Attenzione! A causa dell'elevato numero di iterazioni verrà visualizzato il seguente messaggio. 

Cliccare sul pulsante "Si" per evitare lunghe attese

SOLUZIONE

<SCRIPT Language="JavaScript">
    Simboli=new Array;
    Simboli[1]="<font color=\"#FF0000\"><B>1</B></FONT>"
    Simboli[2]="<font color=\"#0000FF\"><B>2</B></FONT>"
    Simboli[3]="<font color=\"#000000\"><B>X</B></FONT>"
    N=1
    document.write("<TABLE BORDER=1 width=511>\n")
    for (A1=1 ; A1 <=3 ; A1++)
       for (A2=1 ; A2 <=3 ; A2++)
          for (A3=1 ; A3 <=3 ; A3++)
             for (A4=1 ; A4 <=3 ; A4++)
                for (A5=1 ; A5 <=3 ; A5++)
                   for (A6=1 ; A6 <=3 ; A6++)
                      for (A7=1 ; A7 <=3 ; A7++)
                         for (A8=1 ; A8 <=3 ; A8++)
                            for (A9=1 ; A9 <=3 ; A9++)
                               for (A10=1 ; A10 <=3 ; A10++)
                                  for (A11=1 ; A11 <=3 ; A11++)
                                     for (A12=1 ; A12 <=3 ; A12++)
                                        for (A13=1 ; A13 <=3 ; A13++)
                                           {
                                               document.write("<TR>")
                                               document.write("<TD BGCOLOR=#C0C0C0 WIDTH=100 align=center>"+N+"° colonna</font></TD>")
                                               document.write("<TD WIDTH=32 align=center>"+Simboli[A1]+"</TD>\n")
                                               document.write("<TD WIDTH=32 align=center>"+Simboli[A2]+"</TD>\n")
                                               document.write("<TD WIDTH=32 align=center>"+Simboli[A3]+"</TD>\n")
                                               document.write("<TD WIDTH=32 align=center>"+Simboli[A4]+"</TD>\n")
                                               document.write("<TD WIDTH=32 align=center>"+Simboli[A5]+"</TD>\n")
                                               document.write("<TD WIDTH=32 align=center>"+Simboli[A6]+"</TD>\n")
                                               document.write("<TD WIDTH=32 align=center>"+Simboli[A7]+"</TD>\n")
                                               document.write("<TD WIDTH=32 align=center>"+Simboli[A8]+"</TD>\n")
                                               document.write("<TD WIDTH=32 align=center>"+Simboli[A9]+"</TD>\n")
                                               document.write("<TD WIDTH=32 align=center>"+Simboli[A10]+"</TD>\n")
                                               document.write("<TD WIDTH=32 align=center>"+Simboli[A11]+"</TD>\n")
                                               document.write("<TD WIDTH=32 align=center>"+Simboli[A12]+"</TD>\n")
                                               document.write("<TD WIDTH=32 align=center>"+Simboli[A13]+"</TD>\n")
                                               document.write("</TR>\n")
                                               N++;
                                           }
    document.write("</TABLE>")</SCRIPT>
</SCRIPT>

ESERCIZIO 13 (FOR-OGGETTI)

Costruire un programma che legga cognome e il peso di 10 persone e successivamente fornisca, in ordine, i cognomi delle 3 persone il cui peso abbia il minimo scostamento rispetto alla media dei pesi.

ESERCIZIO 14 (FOR-ARRAY)

Scrivere un programma che legge l'eta di un gruppo di 10 persone e fornisca le seguenti statistiche:
1) distribuzione per eta' (es. 3 persone di 5 anni, 5 persone di 6 etc.)
2) distribuzione in periodi di 5 anni (es. da 0 a 4 ho 3 persone, da 5 a 9 ho 2 persone etc.)
N.B. Il programma deve controlllare che le eta' inserite siano comprese tra 0 e 99