Math random in JavaScript

Math random in JavaScript

La funzione Math.random in JavaScript consente di generare un numero decimale pseudo-casuale tra 0 compreso e 1 escluso.

Facciamo subito un esempio di utilizzo della seguente funzione.


Primo esempio d’uso della funzione math random in JavaScript

Fate la prova a cliccare sul pulsante sotto ‘genera casuale‘. Si genera un numero casuale tra 0 e 100 e se fate la prova a cliccare nuovamente sul pulsante chiaramente il numero cambia. Quindi di volta in volta si genera un nuovo numero.

Per implementare questo esempio sviluppiamo una funzione che richiami le funzioni Math.random() e Math.round().

La funzione Math.random() genera un numero pseudo-casuale in virgola mobile compreso tra 0 e 1, con 1 escluso.

Ricordiamo che la funzione Math.round() restituisce il valore di un numero approssimato all’intero ad esso più vicino.

Quindi per generare i numeri casuali da 0 a 100 usiamo Math.random()*100 e poi con la funzione Math.round arrotondiamo all’intero.

Potevamo utilizzare anche la funzione Math.floor ma Math.floor( Math.random()*100) genera dei numeri da 0 a 99 e quindi per avere i numeri da 0 a 100 avremmo dovuto scrivere: Math.floor(Math.random() * 101).

Ecco dunque la funzione JavaScript:


function casuale() {
    num = Math.round(Math.random() * 100);
    document.getElementById("casuale").innerHTML ="Numero casuale " + num;
}

Creiamo poi in html una casella di input di tipo button per il pulsante, a cui associamo l’evento onclick che richiama la funzione casuale().

<input type="button" onclick="casuale()" value="Genera casuale">
<p id="casuale"></p>

Quindi ad esempio se voglio generare i numeri da 1 a 6 scrivo: Math.round(Math.random()*5)+1;


Secondo esempio d’uso della funzione Math.random in JavaScript

In questo secondo esempio chiediamo all’utente quanti numeri casuali vuole generare, trascrivendoli in una casella di input. Dunque clicchiamo sul pulsante e li generiamo.

Scrivi nella casella sotto quanti numeri vuoi generare.

Procediamo generando la funzione Math.random per generare i numeri casuali.

Innanzitutto controlliamo che il numero inserito nel campo quanti numeri generare sia compreso tra 1 e 100 con un if. Se lo è procediamo a generare i numeri, altrimenti diamo un messaggio d’avviso all’utente affinché inserisca un valore compreso tra 1 e 100.

Utilizziamo la funzione parseInt per restituire comunque un numero intero.

Quindi con un semplice ciclo for genero i numeri e li stampo separati da una virgola.


function casuali() {
  n = parseInt(document.getElementById("quanti").value);
  if (n > 0 && n <= 100) {
    str = "";
    for (i = 0; i < n; i++) {
         num = Math.round(Math.random()*100 + 1);
         if (i > 0) {
            str += ", ";
         }
         str += num;
     }
   document.getElementById("casuali").innerHTML = "Numeri generati: " + str;
   } 
   else {
      document.getElementById("casuali").innerHTML = "Inserisci un numero maggiore di 0 e inferiore a 100";
   }
}

Ecco il codice html:

<p>Quanti numeri generare? 
   <input type="text" id="quanti">
   <input type="button" onclick="casuali()" value="Genera casuali">
</p>
<p id="casuali"></p>

Questi sono solo alcuni semplici esempi d’utilizzo della funzione Math.random in JavaScript.

Alcuni link utili

Indice argomenti tutorial JavaScript

Template responsive con html

Come creare un css responsive

Come trovare immagini per il sito web

Quali colori scegliere per un sito web

Quali font scegliere per un sito web

Numeri divisibili

Numeri divisibili

In questa lezione svilupperemo un algoritmo sui numeri divisibili utilizzando Scratch 3.

Dato un numero intero N, stabilire se è divisibile per A.

Per risolvere questo algoritmo utilizzeremo le istruzioni di selezione e la funzione resto, così come nell’esempio precedente sui numeri pari.

Quindi procediamo in questo modo:

Se N/A dà resto 0 allora il numero N è divisibile per A, altrimenti il numero non è divisibile per A.


Numeri divisibili in Scratch

1 Inizio: andiamo su situazioni e scegliamo quando si clicca sulla bandiera verde.

2 – Andiamo su sensori e scegliamo il blocco chiediCome ti chiami?’ e attendi. Sostituiamo al posto di Come ti chiami? il testo Inserisci il numero.

3 – Andiamo su variabili e creiamo le variabili di nome N ed A, lasciando l’opzione per tutti gli sprite. (Per creare una nuova variabile vi ricordo il tutorial: variabili in Scratch 3.0)

4 -Trasciniamo il blocco porta N a.

5 – Inseriamo il blocco risposta che si trova nella sezione sensori.

6 – Ripetiamo i passi 4 e 5 per la variabile A.

7 – Andiamo su controllo e scegliamo il blocco se allora altrimenti.

8 – Operatori: trasciniamo il blocco con il simbolo = e trasciniamo all’interno il blocco resto della divisione di … diviso …

9 – Andiamo su variabili e trasciniamo N ed A negli spazi vuoti.

10 – Andiamo su dire e se il resto è zero allora visualizziamo in output il messaggio: ‘Il numero è divisibile‘.

11 – Sempre su dire, se il resto è diverso zero allora visualizziamo in output il messaggio: ‘Il numero non è divisibile‘.

12 – Fine: andiamo su controllo e scegliamo ferma tutto.

Ecco il codice completo:

divisibili

Ecco il codice in linguaggio C++ sui numeri divisibili, per chi volesse consultarlo.

#include <iostream>
using namespace std;

int main() {
    int N,A;
    
    cout<<"Inserisci N: ";
    cin>>N;	
    cout<<"Inserisci A: ";
    cin>>A;	

    if(N%A==0)
	cout<<"Il numero e' divisibile "<<endl;
    else
	cout<<"Il numero non e' divisibile "<<endl;	

 return 0;
}


Alcuni link utili

Indice tutorial scratch 3.0

Indice argomenti scratch 2.0

Numeri primi in Scratch

Massimo fra tre numeri in Scratch

Minimo tra 3 numeri in Scratch

Numeri perfetti con algobuild

Numeri amicabili

Selecion sort in Scratch

Esempio di successione di Fibonacci con Algobuild

La successione di Fibonacci in C++

Numeri pari

Numeri pari

In questa lezione impareremo a sviluppare un programma in scratch per i numeri pari e dispari.

Quindi ecco il problema da risolvere:

Dato un numero intero n, stabilire se è pari o dispari.

Per risolvere questo algoritmo utilizzeremo la funzione resto che ci consente di trovare il resto della divisione.

Dunque per vedere se un numero è pari basterà controllare se il resto della divisione di un numero per due è uguale a zero.


Facciamo subito degli esempi:

Consideriamo dapprima il numero 16 e lo dividiamo per 2.

16/2 = 8 resto 0

Adesso consideriamo il numero 15:

15/2 = 7 resto 1

Quindi, da ciò si evince che 16 è un numero pari mentre 15 è un numero dispari.


Algoritmo per i numeri pari e dispari con Scratch

Sviluppiamo adesso l’algoritmo utilizzando Scratch.

1 Inizio: andiamo su situazioni e scegliamo quando si clicca sulla bandiera verde.

2 – Andiamo su sensori e scegliamo il blocco chiediCome ti chiami?’ e attendi. Sostituiamo al posto di Come ti chiami? il testo Inserisci il  numero.

3 – Andiamo su variabili e creiamo la variabile di nome numero, lasciando l’opzione per tutti gli sprite. (Per creare una nuova variabile vi ricordo il tutorial: variabili in Scratch 3.0)

4 -Trasciniamo il blocco porta numero a.

5 – Inseriamo il blocco risposta che si trova nella sezione sensori.

6 – Andiamo su controllo e scegliamo il blocco se allora altrimenti.

7 – Operatori: trasciniamo il blocco con il simbolo = e trasciniamo all’interno il blocco resto della divisione di … diviso …

8 – Andiamo su variabili e trasciniamo numero all’interno del blocco resto della divisione di ….

9 – Inseriamo 2 sempre all’interno del blocco, dopo diviso, perché dobbiamo trovare il resto della divisione per 2 e inseriamo 0 dopo l’uguale.

10 – Andiamo su dire e se il resto è zero allora visualizziamo in output il messaggio: ‘Il numero è pari‘.

11 – Sempre su dire, se il resto è diverso zero allora visualizziamo in output il messaggio: ‘Il numero è dispari‘.

12 – Fine: andiamo su controllo e scegliamo ferma tutto.


Ecco il codice completo:

numeri pari e dispari

Sviluppiamo il programma per i numeri pari e dispari anche in linguaggio C++, per chi volesse vedere l’analogia con i linguaggi di programmazione.

#include <iostream>
using namespace std;

int main() {
    int numero;
    
    cout<<"Numero: ";
    cin>>numero;	

    if(numero%2==0)
	cout<<"Il numero e' pari "<<endl;
    else
	cout<<"Il numero e' dispari "<<endl;	

   return 0;
}

Notate come venga utilizzato l’operatore % per indicare il resto della divisone.

Alcuni link utili

Indice tutorial scratch 3.0

Indice argomenti scratch 2.0

Numeri primi in Scratch

Massimo fra tre numeri in Scratch

Minimo tra 3 numeri in Scratch

Numeri perfetti con algobuild

Numeri amicabili

Selecion sort in Scratch

Esempio di successione di Fibonacci con Algobuild

La successione di Fibonacci in C++