1. Scrivere uno script che chieda all'utente di fornire la propria autorizzazione al trattamento dei dati personali. Nel caso non sia data, stampare "Autorizzazione non concessa". Nel caso contrario stampare "Autorizzazione concessa".
  2. Scrivere uno script che stampi il fattoriale dei numeri da 1 a 9.
    L'output deve essere organizzato per righe.
  3. Scrivere uno script che stampi il fattoriale di un numero ricevuto in input (metodo prompt) dall'utente. Lo script deve verificare che il numero si compreso tra 1 e 15, in caso contrario deve segnalare l'errore all'utente.
  4. Scrivere uno script che stampi la tabellina del 7. L'output deve essere organizzato per righe.
  5. Scrivere uno script che stampi la tabellina di un numero, compreso tra 1 e 10, ricevuto in input dall'utente.
  6. Scrivere uno script che stampi la Tavola Pitagorica. Il risultato deve essere presentato in una tabella.
  7. Supponendo di avere una pagina HTML che mostra all'utente i risultati del Campionato Mondiale di Pallastrada.
    Scrivere uno script che chieda il nome ed il cognome di un utente prima che la pagina venga visualizzata e saluti l'utente con una finestra di dialogo (metodo alert). In fondo alla pagina relativa alla classifica deve essere scritto "Ciao Nome Cognome ci rivediamo fra quattro anni" (Nome e Cognome sono quelli dati in input dall'utente).
  8. Scrivere uno script che proponga all'utente una lista di siti numerati progressivamente; chieda all'utente di scegliere il sito che vuole visitare; apra la pagina del sito solo se l'utente ha scelto un numero tra quelli proposti. Per caricare un documento nella finestra del browser usare location.href = str; dove, str è una stringa contenente un URL (assoluta o relativa).
  9. Scrivere uno script che chieda all'utente tre colori in input: uno per il testo, uno per lo sfondo e uno per i titoli. Lo script deve chiedere all'utente anche la dimensione del carattere di base (da 1 a 7). Creare un documento in cui siano evidenti queste caratteristiche. (Suggerimento, creare con JavaScript delle regole CSS).
    Parte aggiuntiva
    Lo script deve essere in grado di determinare la dimensione e le caratteristiche di H1, H2 ed H3 rispetto alle caratteristiche inserite dall'utente per il carattere di base.
    • H1: 3 volte il testo base ed in grassetto
    • H2: 1 volte il testo base
    • H3: 1 volta il testo base in grassetto ed in corsivo
    Controllare che il colore dello sfondo, quello del titolo e quello del testo siano diversi. Nel caso due o più colori assegnati dall'utente siano uguali, devono essere presenti delle regole che determinino quale colore devono assumere titolo, testo e sfondo. Nel caso l'utente inserisca al posto dei tre colori il testo "*" deve essere caricato un foglio di stile esterno.
  10. Scrivere uno script che chieda una serie di numeri all'utente. Si interrompa quando l'utente inserisce al posto di un numero la parola chiave "end". Interagisce con l'utente nel caso abbia inserito dei valori non validi. Chieda conferma prima di calcolare la media dei numeri introdotti. Stampi a video il risultato in una tabella.
  11. Scrivere uno script che proponga all'utente una lista di siti numerati progressivamente; chieda all'utente di scegliere il sito che vuole visitare; apra la pagina del sito se l'utente ha scelto un numero tra quelli proposti. Se l'utente immette un numero non contenuto nell'elenco, lo script deve fornire all'utente la possibilità di immettere direttamente un indirizzo attraverso una finestra di prompt. Proporre come scelta di default il valore della prima url della lista.
  12. Scrivere una funzione QuadratoDiAsterischi che mostra un quadrato riempito di asterischi il cui lato è specificato dal suo parametro in input. Ad esempio: QuadratoDiAsterischi(4) mostra
    ****
    ****
    ****
    ****
    Testare la funzione inserendo la sua definizione in un documento HTML contenente uno script che chiede all'utente di immettere un valore e visualizza il risultato dell'invocazione della funzione sul valore immesso.
  13. Scrivere uno script che chieda all'utente di inserire un numero per volta e lo passi ad una funzione pari che restituisce true se il numero è false altrimenti. La funzione pari deve verificare che il parametro ricevuto sia un parametro numerico; in caso non lo sia deve segnalare il problema all'utente. Lo script deve terminare quando l'utente digita "fine" e stampare il numero di elementi pari che l'utente ha inserito.
  14. Implementare la funzione celsius che restituisce l'equivalente Celsius di una temperatura Fahrenheit usando la formula C=5.0/9.0 * (F - 32) Implementare la funzione fahrenheit che restituisce l'equivalente Fahrenheit di una temperatura Celsius usando la formula F=9.0/5.0 * C + 32 Le funzioni devono verificare se il parametro immesso è di tipo numerico. Testare le funzioni inserendo le loro definizioni in un documento HTML contenente uno script che chiede all'utente di immettere un valore e visualizza il risultato dell'invocazione della funzione sul valore immesso.
  15. Scrivere una funzione potenza(base,esponente) che calcoli il valore baseesponente.
  16. Scrivere una funzione calcola che preso come argomento num restituisca:
    1. il fattoriale di num se il num è compreso tra 1 e 10, estremi inclusi;
    2. il valore scritto in lettere se il numero è compreso tra 11 e 15, estremi inclusi;
    3. il num-esimo numero di Fibonacci se il numero è compreso tra 16 e 20, estremi inclusi;
    4. il valore del quadrato del numero se il numero è compreso tra 21 e 30, estremi inclusi;
    5. la stringa "Volevo un valore tra 1 a 30!" se il numero non rientra nei casi precedenti. La funzione deve verificare che sia stato passato un unico parametro e che il parametro sia effettivamente un numero. Testare la funzione inserendo la dichiarazione in un documento HTML contenente uno script che chiede all'utente di immettere un valore e visualizza il risultato dell'invocazione della funzione calcola sul valore immesso.
  17. Scrivere una funzione JavaScript che trovi la media dei numeri passati come argomento. La funzione deve essere in grado di operare con un numero imprecisato di argomenti e deve verificare che gli argomenti siano effettivamente dei numeri. Scrivere inoltre una pagina HTML per testare la funzione.
  18. La funzione Math.random() restituisce un numero casuale compreso tra 0 ed 1. Scrivere una funzione JavaScipt lancioDado che simuli il lancio di un dado. La funzione deve chiedere all'utente quante volte vuole lanciare il dado e deve mostrare il risultato dei lanci in una tabella (15 lanci per riga). La funzione non deve fare uso di altre funzioni matematiche predefinite.
  19. Scrivere uno script che, usando il costruttore Function(), crei delle funzioni dinamicamente. Lo script deve chiedere all'utente il numero di parametri della funzione, il nome dei parametri ed il corpo della funzione. Dopo aver creato la funzione, lo script deve chiedere all'utente di dare in input dei valori per i parametri della funzione appena creata e deve restituire in output il suo valore. (Come corpo della funzione, usate solo funzioni semplici tipo "x+y", "x*y+z", ...)
  20. Scrivere una funzione costruisci che ricevuti in input un parametro restituisca: la funzione che calcola la somma di due valori se il parametro assume il valore "somma"; la funzione che calcola il prodotto di due valori se il parametro assume il valore "molt". Le funzioni restituite devono verificare che i parametri ricevuti siano di tipo numerico. Testare la funzione inserendo la sua definizione in un documento HTML contenente uno script che chiede all'utente di immettere il valore del parametro della funzione e dei valori da passare alla funzione creata, visualizza il risultato dell'invocazione della funzione costruisci sui valori immessi.
  21. Creare un oggetto persona contenente le proprietà: Nome, Cognome, Età Residenza. Scrivere uno script che richieda all'utente dei valori per tali proprietà, definisca un'istanza di un oggetto con tali proprietà e stampi, in una tabella, il contentuo dell'oggetto.
    Modificare lo script precedente in modo che, dopo aver inserito i valori per le sue proprietà, chieda all'utente il nome di una proprietà da aggiungere all'istanza dell'oggetto ed un suo valore.
    Lo script, alla fine, deve stampare nuovamente il contenuto dell'istanza dell'oggetto.
  22. Creare un oggetto studente derivandolo dall'oggetto persona definito nell'esercizio precedente. Testare l'oggetto creato inserendo la sua definizione in un documento HTML contenente uno script che chiede all'utente di immettere i valori delle proprietà dell'oggetto studente e visualizzi il contentuto dell'istanza dell'oggetto creato.
  23. Implementare una funzione search(x,a) che implementa la ricerca binaria dell'elemento x nell'array a. L'array deve essere inserito dinamicamente dall'utente utilizzando il metodo prompt.
  24. Scrivere uno script che chieda all'utente una parola in italiano la traduce in inglese. Lo script avrà un mini-vocabolario interno rappresentato da un array. Se non è nota la traduzione del termine lo script deve chiedere all'utente se vuole aggiungere il nuovo termine, con la relativa traduzione al vocabolario.
  25. Scrivere uno script che chieda all'utente di inserire in input un elenco di numeri (la fine dell'elenco è indicata con "end") e li inserisce in un array dopo aver controllato che effettivamente l'input dell'utente è di tipo numerico. Lo script deve stampare l'array dei numeri ricevuti in input ordinare l'array e stamparlo nuovamente. (aggiungere una funzione stampa all'oggetto di tipo Array).
  26. Scrivere uno script che:
    1. Chieda all'utente di immettere un testo;
    2. Costruisca un array formato da tutte le parole componenti il testo immesso dall'utente;
    3. Ordini gli elementi dell'array in ordine alfabetico decrescente;
    4. Visualizzi la lunghezza e gli elementi dell'array;
    5. Chieda un indice i all'utente;
    6. Visualizzi, se esistono, gli elementi alle posizioni i, i+1 e i+2; Cosa succede se invece di inserire una frase viene premuto il pulsante annulla? Nel caso venga segnalato un errore fare in modo di prevenirlo modificando opportunamente il codice.
  27. Scrivere uno script per valutare quanto "casuali" siano i numeri generati attraverso Math.random(). A questo scopo, lo script deve:
    1. chiedere all'utente un valore n compreso tra 1000 e 10000 (indica il numero di volte che deve essere generato un numero casuale);
    2. chiedere all'utente un valore p compreso tra 2 e 20 per definire l'intervallo in cui i numeri casuali devono essere scelti (tra 1 e p)
    3. definire un array di lunghezza p+1;
    4. inizializzare tutti gli elementi dell'array a 0: l'elemento in posizione i verrà usato per contare il numero di volte che è stato generato il valore i;
    5. ripetere n volte la generazione di un numero casuale compreso tra 1 e p sfruttando, ad ogni iterazione, la funzione casuale genera vista a lezione;
    6. incrementare, ad ogni iterazione, il valore dell'elemento in posizione x dell'array se il valore casuale generato è pari ad x;
    7. stampare, dopo l'ultima iterazione, i valori contenuti nell'array e la loro media.
  28. Scrivere uno script che:
    1. Chieda all'utente di inserire una serie di squadre (es. serie A del campionato di calcio), usando il pulsante annulla per terminare l'immissione;
    2. Per ogni squadra, procedendo in ordine alfabetico, chieda il punteggio attuale (assumendo che sia compreso tra 0 e 99);
    3. Sfrutti opportunamente i metodi sort e reverse per ordinare le squadre in base ai punteggi e visualizzare la classifica attuale. Consigli: usare un array per memorizzare i nomi; combinare opportunamente la stringa del punteggio con quella del nome della squadra prima di usare il metodo sort.
  29. Creare una pagina HTML contenente un elenco di link. Quando l'utente passa sopra (onmouseover) un link mostrare un messaggio sulla barra di stato. Il messaggio deve essere diverso per ogni link.
    Ricordarsi di restituire "return true" come ultima istruzione di onmouseover.
  30. Creare una funzione JavaScript che cambi il colore di sfondo (document.bgcolor) ogni due secondi. La funzione deve essere mandata in esecuzione dopo il caricamento della pagina (onload).
    Il colore di sfondo viene preso da un array. Quando l'array è finito, si riparte dal primo elemento dell'array.
  31. Modificare l'esercizio precedente in modo che il cambio di colore di sfondo viene attivato con la pressione (onclick) di un bottone.
    Inserire un secondo bottone per interrompere l'animazione.
  32. Scrivere una pagina HTML contenente un banner. Il banner deve mostrare quattro immagini in sequenza. Il tempo di permanenza di un'immagine sullo schermo deve cambiare a seconda dell'immagine (servirsi di un array Tempi per la memorizzazione dei tempi di permanenza espressi in millisecondi, se si mostra l'immagine i-esima invocare setTimeout con il secondo argomento pari all'elemento (i+1)-esimo dell'array Tempi).
  33. Scrivere una pagina HTML contenente tre fotografie. Cliccando su ogni foto deve aprirsi una nuova finestra (senza barre di navigazione, menu, ...) contenente la versione ingrandita dell'immagine ed un bottone per chiudere la finestra stessa. Se la finestra che mostra la versione ingrandita dell'immagine è già aperta, non deve esserne aperta una nuova, ma bisogna utilizzare per la visualizzazione quella esistente.
  34. Creare una pagina HTML con almeno tre immagini diverse e aggiungere un pulsante che ne scambi due, in modo casuale, ogni volta che viene premuto.
  35. Modificare l'esercizio precedente in modo che ogni volta che il pulsante viene premuto un'immagine scelta a caso viene ingrandita di 20 pixel in altezza e larghezza. Aggiungere un secondo pulsante che se premuto ridimensioni un'immagine caso di 20 pixel, ad ogni click viene scelto a caso anche se l'immagine deve essere ingrandita o rimpicciolita.
  36. Creare un documento che memorizzi in un array almeno cinque immagini e che visualizzi la prima di esse. Aggiungere un pulsante che ad ogni click sostituisca l'immagine visualizzata con quella nella posizione seguente dell'array. (Se l'ultima immagine è visualizzata ed il pulsante viene premuto, visualizzare di nuovo la prima immagine).
  37. Modificare l'esercizio precedente eliminando il bottone e facendo in modo che l'immagine cambi ad ogni click del mouse su di essa.
  38. Modificare l'esercizio precedente per fare in mondo che l'immagine cambi ogni volta che si sposta il cursore su di essa invece che ad ogni click.
  39. Scrivere una funzione JavaScript che generi una tabella di 216 bottoni. Ad ogni bottone deve essere associato uno dei safe-color (#XYZ con X,Y,Z appartenenti all'insieme {00, 33, 66, 99, CC, FF}).
    Sul bottone deve essere presente il codice del colore a cui è associato. Quando si clicca un bottone, il colore di sfondo deve assumere il colore associato al bottone.
  40. Creare un esempio di testo scorrevole in una casella di testo (la stringa da mostrare è nella casella sarà funzione di un indice che viene incrementato di uno ad intervalli regolari). Servirsi di CSS per eliminare il bordo della casella di testo. Far partire lo scrolling cliccando su un bottone, usare un secondo bottone per interrompere lo scrolling. Riuscite ad attivare/interrompere lo scrolling con un solo bottone?
  41. Costruire una form contenente:
    1. un campo di input per una stringa di testo;
    2. delle checkbox per gli attributi big, bold, fixed, italics, strike e sub;
    3. una lista di selezione (menu a discesa) in cui scegliere tra i colori blue, ed e green;
    4. una lista di selezione (menu a discesa) in cui scegliere una dimensione tra i valori 1, 3, 5 e 7;
    5. un pulsante con la scritta "Mostra Testo". Quando il pulsante viene premuto, bisogna sfruttare i metodi di formattazione HTML disponibili per l'oggetto String per visualizzare in una nuova finestra (window.open e Nomefinestra.document.write) il testo immesso dall'utente con la formattazione selezionata negli altri campi.
  42. Creare un documento che definisca una variabile di tipo Image, carichi in essa un'immagine iniziale e la mostri sulla pagina.
    Aggiungere un campo di input per la selezione di un file ed un pulsante che ad ogni click sostituisca l'immagine visualizzata con quella data dal file selezionato (se non viene scelto il file il bottone non deve essere attivo).
  43. Chiedere ad un utente le sue preferenze (tipo, colore di sfondo e colore di primo piano) per la visualizzazione delle pagine HTML.
    Attraverso un cookie conservate le sue preferenze. Testare il cookie creato: se l'utente ha settato delle preferenze visualizzare la pagina secondo le preferenze dell'utente; altrimenti, utilizzare dei colori di default per lo sfondo e il primo piano. Aggiungere alla pagina un bottone che se premuto cancella il cookie.
  44. Creare un test a risposte multiple. Il test deve prevedere una domanda per pagina. Usare un cookie per memorizzare il punteggio cumulativo che deve essere mostrato ad ogni pagina.
  45. Considerato il seguente modulo:
    1. aggiungere un pulsante per il calcolo dei totali. Per ogni articolo nel modulo bisogna verificare che sia stato immesso un valore compreso tra 0 e 20, in caso di discordanza mostrare all'utente un messaggio di spiegazione.
    2. aggiungere un pulsante per l'azzeramento del modulo, chiedere conferma all'utente prima di ripristinare ai valori di default i campi del modulo.
    3. aggiungere un pulsante di Help che apra una nuova finestra spiegando all'utente che cosa deve fare per riempire il modulo, dire anche che i valori immessi devono essere compresi tra 0 e 20; aggiugere un pulsante per chiudere la finestra.
    4. aggiungere una casella di input in cui l'utente inserisce la sua email per ricevere conferma dell'ordine effettuato, controllare che quello che ha inserito l'utente può corrispondere ad un indirizzo di email.
  46. Considerato il modulo dell'esercizio precedente:
    1. fare in modo che, per ogni articolo, ogni volta che la quantità viene aggiornata, anche il Totale ed il Totale Ordine venga ricalcolato (usare il gestore onchange nel tag di input relativo alla Quantità e attivare la funzione che calcola i totali e li mostri nei relativi campi del modulo;
    2. fare in modo che soltanto i campi quantità siano modificabili dall'utente. I campi contenenti i totali non devono essere modificati dall'utente (usare il gestore onfocus in tutti i campi contenenti i totali per intercettare ogni tentativo dell'utente di modificare il valore e attivare una funzione che assegni il focus ad un elemento modificabile della form invocando il metodo focus() su quell'elemento - se tentiamo di modificare il totale dello scanner a colori il focus deve passare al campo quantità relativo allo scanner a colori [focus o select]);
  47. Creare una pagina HTML contenente tre paragrafi colorati in nero.
    Quando il mouse passa sopra il primo paragrafo esso deve diventare di colore rosso; se il mouse passa sopra il secondo paragrafo il colore del testo deve diventare giallo, mentre il colore di sfondo deve diventare verde; infine, se il mouse passa sopra l'ultimo paragrafo il testo e lo sfondo devono assumere colori casuali ma differenti. Quando il mouse lascia il paragrafo tutto deve tornare alla condizione originale. Riuscite a risolvere l'esercizio scrivendo una sola funzione?
  48. Creare una pagina HTML che contiene 3 blocchi di testo che si sovrappongono (DIV posizionati in maniera assoluta all'interno di un DIV posizionato in maniera relativa) quando l'utente clicca su una porzione visibile del testo allora il DIV relativo deve essere portato in primo piano. Per aiutare l'utente contornare il testo con un bordo. (Usare opportunamente il gestore onclick e la proprietà z-index).