<< pagina principale <
·············································································
JavaScript
per Matematica e Fisica
pagine di Roberto Ricci
L.S. "A. Righi", Bologna.
Primi passi:
Per realizzare un "programma" con JavaScript ed eseguirlo:
creare un file HTML (una pagina web vuota):
premere sul Desktop il tasto destro del mouse e selezionare Nuovo/Microsoft HTML Document
altrimenti
Nuovo/Documento di testo
File/Salva con nome ...
Salva come:/Tutti i file
digitare il nome scelto seguito dall'estensione .HTML
aprire il file e fare Visualizza/Html
inserire il codice JavaScript tra i marcatori <SCRIPT> ... </SCRIPT>.
salvare di nuovo
premere Aggiorna del browser per avviare l'esecuzione
L'istruzione document.write() e quella d'assegnazione, del risultato di un'espressione a una variabile, sono strumenti
fondamentali per costruire un programma.
La dichiarazione delle variabili, che si fa con un generico 'var' senza distinguere il tipo, non è necessaria ma caldamente
suggerita per questione di stile (un buono stile facilita la lettura e la manutenzione dei programmi ma anche la loro creazione).
Realizzare un programma per la somma dei primi 10 numeri naturali
Si può anche inserire l'input attraverso una finestra con il comando
prompt(messaggio di richiesta di input,stringa iniziale)
Il valore letto è un oggetto String, cioè una sequenza di caratteri racchiusa tra doppie virgolette. Per esser certi che l'input sia interpretato come numerico si suggerisce di far valutare la
stringa in input mediante il comando eval(stringa).
verificare che il risultato del calcolo 1+2+...+n è n*(n+1)/2 (soluz.)
modificare il programma affinché calcoli la somma solo dei numeri dispari minori di un numero dato
realizzare un programma programma che calcoli la media aritmetica di 1+1/2+...+1/n
realizzare un programma che, letto un numero reale pensato come misura di un angolo in radianti,
lo riduca alla misura dell'angolo tra 0 compreso e 2π escluso con gli stessi
valori delle funzioni goniometriche soluz.
Tipi di dato semplici:
Le azioni descritte dalle istruzioni di un programma ed eseguite dall'automa vengono svolte su oggetti: semplici numeri, caratteri, sequenze di caratteri, ...
La function predefinita typeOf() applicata a oggetti diversi fornisce il nome del tipo di tale oggetto, che può essere: number,boolean, string, function, object, undefined.
Provare a modificare l'argomento di tale function con: 3, "3", 3*4.5, "pippo", x, math, Math, Math.sin, document ...
Gli oggetti più semplici sono i numeri, oggetti matematici il cui significato è strettamente legato alle operazioni nelle quali possono essere coinvolti.
Operatore
Simbolo
Descrizione
Addizione
+
Somma due operandi
Sottrazione
-
Sottrae il secondo operando dal primo
Moltiplicazione
*
Moltiplica i due operandi
Divisione
/
Divide il primo operando per il secondo
Resto (modulo)
%
Fornisce il resto della divisione intera tra due operandi interi
Altri oggetti matematici si possono chiamare condizioni, espressioni con la proprietà di essere o vere o false, come '2+2>4' (falsa), oppure 'non è vero che 2+2>4', oppure '2+2>4 o 2+3>4', oppure 'a>1' (o vera o falsa a seconda del valore assunto dalla variabile a), oppure 'a>0 e a<1'. Nel contesto JavaScript tali oggetti si chiamano boolean e gli unici due valori che possono assumere sono true e false.
Le condizioni più semplici possono essere costruite mediante operatori di confronto
programma che calcola e visualizza il mcm di due numeri (soluz.)
Oggetto Math:
Molte utili costanti e funzioni matematiche sono implementate in JavaScript. Per utilizzarle
occorre richiamarle come 'proprietà' o come 'metodi' di un 'oggetto' denominato Math con una modalità che ha in generale la seguente sintassi: nome oggetto.nome proprietà e nome oggetto.nome metodo(elenco argomenti)
switch (nomeDiVariabile o espressione) {
case caso1 : blocco istruzioni da eseguire se nomeDiVariabile=caso1 [ break ];
...
case casoN : blocco istruzioni da eseguire se nomeDiVariabile=casoN [ break ];
default : blocco istruzioni da eseguire altrimenti ;
}
Scrivere per moduli non ha solo il vantaggio di poter "impacchettare" parti del programma
che si vuole utilizzate più volte richiamandole brevemente- riassumendo cioè più istruzioni sotto un unico nome -
ma soprattutto quello di far ricorso a una metodologia, del "divide et impera" detta in gergo
"top-down", che consiste nello scomporre le azioni complesse in parti più facilmente dominabili.
Per di più, quando i moduli sono costruiti per essere riutilizzabili anche in altri contesti
si può pensare di partire da questi nelle future realizzazioni (metodologia "bottom-up").
Le function di utilità possono essere definite in un file con estensione .js a parte e richiamate
semplicemente mediante <script src="nomefile"></script> inserito prima del programma
posto tra <script>...</script>
Distinguiamo function della forma generale:
function <identificatore> (<lista argomenti>){
blocco istruzioni;
return <espressione>;
}
che restituiscono un valore, quello dell'espressione inserita nell'istruzione
contraddistinta dalla parola chiave 'return'.
Possiamo distinguere anche function che non restituiscono alcun valore,
dette più propriamente procedure, che hanno la forma:
function <identificatore> (<lista argomenti>){
blocco istruzioni;
}
Queste procedure possono essere considerate 'macroistruzioni'.
In un programma occorre distinguere tra l'ambiente globale da quello di ogni singola function.
Le variabili definite all'interno di una function con 'var' si dicono 'locali' e in effetti esistono
solo nel corso della sua esecuzione, inesistenti per i moduli esterni alla function.
Le variabili non definite esplicitamente con 'var' o definite fuori da qualunque function, cioè
nell'ambiente globale, si dicono 'globali' e possono essere utilizzate all'interno di qualunque
function, ma non possono ovviamente essere restituite mediante 'return'.
E' consigliabile fare uso di variabili locali per evitare sovrapposizioni non volute.
Quando una function è utilizzata, la lista degli argomenti è sostituita da una lista di nomi
di variabili il cui valore è assegnato agli argomenti per effettuare i calcoli descritti dalla
function e che non viene modificato (passaggio per valore).
function fatt(numero intero non negativo), fattoriale di un numero, per il calcolo delle permutazioni
function disp(numero intero non negativo), per il calcolo delle disposizioni
Esercizi:
function MCD(numero intero non negativo, numero intero non negativo) massimo comune divisore
realizzare un programma per calcolare mcm(a,b)=a*b/MCD(a,b)
realizzare un programma per la risoluzione di triangoli rettangoli che faccia uso di procedure
ipotenusaAngolo(), catetoAngoloAdiacente(),catetoAngoloOpposto(), ipotenusaCateto(), dueCateti() in grado di gestire i diversi casi
(soluz.)
realizzare un programma per la risoluzione di triangoli qualunque (soluz.)
function bin(numero intero non negativo, numero intero non negativo), binomiale di un numero, per
il calcolo delle combinazioni
verificare l'approssimazione di Stirling ln(n!)@n·ln(n)n e realizzare una function binAppr(...) per il calcolo approssimato del binomiale
realizzare un file funzMat.js di function di utilità matematica tra le quali le precedenti
pagine di Roberto Ricci
L.S. "A. Righi", Bologna.
Ultima revisione