Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
Marco Comini
2021-10-14
JavaScript: Comandi: iterativi indeterminati
Esempio
calcolare il fattoriale 1 · 2 · . . . ... · n
1 // vers 1
2 var n = Number ( prompt ( " dammi N " ," " ));
3 var fact =1 , i = 2;
4
5 while ( i <= n ) {
6 fact *= i ;
7 i += 1;
8 }
9 print ( fact );
Esempio
calcolare il fattoriale 1 · 2 · . . . ... · n
1 // vers 2
2 var n = Number ( prompt ( " dammi N " ," " ));
3 var fact = 1;
4 while ( n > 1) {
5 fact *= n ;
6 n -= 1;
7 }
8 print ( fact );
Esempio
Calcolare la media di una sequenza di numeri positivi dati in input (con una
dialog-box) terminando al primo valore non positivo
1 var sum = 0 , k = 0 , x ;
2
3 while ( x > 0 ) {
4 x = Number ( prompt ( " Dammi un numero positivo " ," " ));
5 k += 1;
6 sum += x ;
7 }
8
9 print ( sum / k );
Esempio
Calcolare la media di una sequenza di numeri positivi dati in input (con una
dialog-box) terminando al primo valore non positivo
1 var sum = 0 , k = 0 , x ;
2
3 while ( x > 0 ) {
4 x = Number ( prompt ( " Dammi un numero positivo " ," " ));
5 k += 1;
6 sum += x ;
7 }
8
9 print ( sum / k );
Esempio
Calcolare la media di una sequenza di numeri positivi dati in input (con una
dialog-box) terminando al primo valore non positivo
1 var sum = 0 , k = 0 , x ;
2
3 do {
4 x = Number ( prompt ( " Dammi un numero positivo " ," " ));
5 if ( x >0 ) {
6 k += 1;
7 sum += x ;
8 }
9 } while ( x >0 );
10
11 print ( sum / k );
Esempio
Calcolare la media di una sequenza di numeri positivi dati in input (con una
dialog-box) terminando al primo valore non positivo
1 var sum = 0 , k = 0 , x ;
2
3 while ( true ) {
4 x = Number ( prompt ( " Dammi un numero positivo " ," " ));
5 if ( x <=0 ) break ;
6 k += 1;
7 sum += x ;
8 }
9
10 print ( sum / k );
Esempio
Determinare se due numeri hanno segno discorde
1 var DiscordantSign ;
2
Esempio
Determinare se due numeri hanno segno discorde
Esempio
Determinare se due numeri hanno segno discorde
Marco Comini
2021-10-14
Astrarre il controllo/1
Definizione (Funzioni/procedure)
Una porzione di codice identificata da un nome con un ambiente locale proprio
che scambia dati con il resto del codice.
Il blocco che contiene il codice viene anche chiamato corpo.
x
y
x 3
y
x 3
y 3
x 3
y 3
x 34
y 3
x 4
y 32
x 4
y 2
finished finished
Marco Comini
2021-10-14
JavaScript: Astrarre il controllo
Visto che nel linguaggio non di dichiarano i tipi abbiamo solo l’elenco dei
nomi dei parametri formali.
All’interno del corpo si può usare il comando
1 return r-expr
che termina l’esecuzione e restituisce come valore di ritorno l’r-value della
r-expr.
Se non si esegue un return allora al termine del corpo si restituisce come
valore di ritorno il valore (primitivo) undefined .
Per i dati di tipo primitivo (gli unici visti fin’ora) si usa il passaggio per
valore.
Si ammettono chiamate con un numero di parametri attuali diverso dal
numero di parametri formali.
Consideriamo
▶ una funzione f (x1 , . . . , xn )
▶ una chiamata f (e1 , . . . , ek ) dove k può essere diverso da n
▶ le r-expr ei siano di tipo primitivo
Si valuta l’r-value di ogni e1 , . . . , ek , in ordine. Assumiamo di chiamare vi
l’r-value di ei .
Per ogni 1 ≤ i ≤ min(n, k), si copia il valore vi in una cella di memoria
riservata per il parametro xi
Per ogni k ≤ i ≤ n, si copia undefined in una cella di memoria riservata per
il parametro xi .
quindi eventuali argomenti in eccesso non vengono utilizzati mentre se non se
ne fornisce abbastanza i parametri formali corrispondenti saranno
undefined
Marco Comini
2021-10-14
JavaScript: Esempi funzioni/1
1 // funzione che calcola il fattoriale , vers 1
2 function fact ( n ) {
3 var fact =1 , i = 2;
4 while ( i <= n ) {
5 fact *= i ;
6 i +=1;
7 }
8 return ( fact );
9 }
1 // funzione che calcola il fattoriale , vers 2
2 function fact ( n ) {
3 var fact =1;
4 while ( n > 0) {
5 fact *= n ;
6 n -= 1;
7 }
8 return ( fact );
9 }
Marco Comini Informatica Multimediale 2021-10-14 15 / 19
JavaScript: Esempi funzioni/2
Esempio
Funzione booleana che determina se due numeri hanno segno discorde
1 // versione 1
2
3 function DiscordantSign (x , y ) {
4 if (x <0 && y >0) return true ;
5 if (x >0 && y <0) return true ;
6 return false ;
7 }
Esempio
Funzione booleana che determina se due numeri hanno segno discorde
1 // versione 2
2
3 function DiscordantSign (x , y ) {
4 return ( (x <0 && y >0) || (x >0 && y <0) );
5 }
Esempio
Funzione booleana che determina se due numeri hanno segno discorde
1 // versione 3
2
3 function DiscordantSign (x , y ) {
4 return ( x * y < 0 );
5 }
Esempio
Pn
Funzione f (n) = i=1 i
versione 1
1 function f ( limit ) {
2 var total = 0 , count = 1;
3
Esempio
Pn
Funzione f (n) = i=1 i
versione 2
1 function f ( limit ) {
2 var total = 0 , count = 1;
3
4 do {
5 total += count ;
6 count += 1;
7 } while ( count <= limit );
8 return ( total );
9 }
Esempio
Pn
Funzione f (n) = i=1 i
versione 3
1 function f ( limit ) {
2 return ( limit *( limit +1)/2);
3 }
1 test ();
2
3 function prova1 (a ,b , c ) {
4 print ( " par a = " ); show ( a );
5 print ( " par b = " ); show ( b );
6 print ( " par c = " ); show ( c );
7 }
8
9 function test () {
10 print ( " value prova1 = " + prova1 ( " a " ,3));
11 }
12
13 function test2 () {
14 print ( " value prova1 = " );
15 show ( prova1 ( " a " ,3 ,4 ,5));
16 }