HOME

Contatti

MATEMATICA CON JAVASCRIPT


MASSIMO COMUN DIVISORE CON IL METODO DI EUCLIDE
SECONDA PARTE

Strutture di controllo:

sequenza
selezione binaria nidificata
ciclo while
F
acciamo il punto.
Argomenti correlati:


function controlla(a,b){

funzione che permette di controllare i numeri immessi.

if { ... }

selezione binaria

La condizione:

parseInt(a)!=a

Se il primo numero inserito non è intero

|| or

Operatore binario che dà vero se almeno uno degli operandi è vero

parseInt(b)!=b

il secondo numero inserito non è intero

&& and

Operatore binario che dà vero se e soltanto se entrambi gli operandi sono veri

(a==0) && (b==0)

i numeri sono entrambi uguali a 0

return false

Nei casi in cui la condizione è verificata, la funzione restituisce false

else {return true}

altrimenti restituisce true

function esegui() {

funzione che esegue il calcolo del massimo comun divisore fra num1 e num2

num1=document.massimo.a1.value;

Attribuisci alla variabile di nome num2 il testo della casella di testo di nome b1

num2=document.massimo.a1.value;

Attribuisci alla variabile di nome num2 il testo della casella di testo di nome b1

if (!controlla(num1,num2))

Se la funzione controlla(num1,num2) ha restituito false

{document.getElementById('ris').innerHTML ='Impossibile'}
Il testo da inserire nello span che ha id = 'ris' è 'Impossibile'
APPROFONDIMENTO

else {

altrimenti

if (num2==0)

se il secondo numero è uguale a zero

{document.getElementById('ris').innerHTML ='MCD(' + num1 + ' , 0) = ' + num1};

Il testo da inserire nello span che ha id = 'ris' è
'MCD(' + num1 + ' , 0) = ' + num1
Notare la concatenazione fra le parti fisse e le parti variabili. Ad esempio, se num1 = 3, si ottiene
MCD(3 , 0) = 3

if (num2==0)

se il secondo numero è uguale a zero

{document.getElementById('ris').innerHTML ='MCD(' + num1 + ' , 0) = ' + num1};

Il testo da inserire nello span che ha id = 'ris' è
'MCD(' + num1 + ' , 0) = ' + num1
Notare la concatenazione fra le parti fisse e le parti variabili. Ad esempio, se num1 = 3, si ottiene
MCD(3 , 0) = 3

if (num1==0)

se il primo numero è uguale a zero

{document.getElementById('ris').innerHTML ='MCD(0 , ' + num2 + ') = ' + num2;}

Il testo da inserire nello span che ha id = 'ris' è
'MCD(0 , ' + num2 + ') = ' + num2
Notare la concatenazione fra le parti fisse e le parti variabili. Ad esempio, se num2 = 5, si ottiene
MCD(0 , 5) = 5

else {

altrimenti

a=num1;
b=num2;

Memorizziamo le variabili num1 e num2 rispettivamente nelle variabili a e b.
Questo serve per generare la risposta finale, in quanto, con l'algoritmo di Euclide, num1 e num2 perdono il loro valore attuale.

r=num1%num2

Viene calcolato il resto (operatore %) e memorizzaro nella variabile r. Questa istruzione è indispensabile prima di iniziare il ciclo.

while (r !=0)

iterazione a controllo in testa
Verranno eseguire le istruzioni (racchiuse fra le parentesi graffe) per un numero di volte che non conosciamo a priori. Le istruzioni vengono eseguite se e soltanto se il resto è diverso da zero.

r = num2%num1
num2 = num1
num1 = r

Viene calcolato il resto e poi si procede alla sostituzione del divisore al posto del dividendo e del resto al posto del divisore.

document.getElementById('ris').innerHTML ='MCD( ' + a + ' , ' + b + ' ) = ' + num2;

Il testo da inserire nello span che ha id = 'ris' è
'MCD( ' + a + ' , ' + b + ' ) = ' + num2
Se, ad esempio, i numeri inseriti nella caselle di testo sono 16 e 24, si ottiene la scritta
MCD(16 , 24) = 4
Calcolo di MCD(a,b)


 

INTERFACCIA    

I coefficienti a, b e c vengono inseriti in due caselle di testo, rispettivamente di nome a1 e b1. Il pulsante CALCOLA MCD attiva la procedura esegui(), mentre il pulsante AGGIORNA svuota il form.

LE PARTI DEL FORM

<form name="massimo">    Il form introdotto ha nome "massimo"

Le due caselle di testo:

<input type="text" class="input1" name="a1" value=""
<input type="text" class="input1" name="b1" value=""

servono per inserire i due numeri dei quali dobbiamo calcolare l'MCD. Esse sono vuote, hanno lo stile "input1".

onClick="document.getElementById('ris').innerHTML =''">

Quando si fa clic in una casella di testo scompare la soluzione dell'equazione precedente.

Ricordiamo che document.getElementById('ris').innerHTML è il testo da inserire nello span che ha id = 'ris' APPROFONDIMENTO

AGGIORNA    Pulsante di tipo reset che aggiorna il form

CALCOLA MCD    Pulsante che attiva la function esegui(), che è spiegata nella sezione "Facciamo il punto", a sinistra nella pagina.

CODICE PER IL FORM (clic sull'area di testo per selezionare tutto)    

Inserisci il codice nel corpo del documento per ottenere l'interfaccia pubblicata in alto.

La spiegazione dello stile esula dallo scopo del corso; per il resto le righe di codice sono spiegate nella sezione "Facciamo il punto", a sinistra nella pagina.

 

CODICE PER IL CALCOLO DI MCD(a,b)    

Ecco il codice pronto da copiare (clic sull'area di testo)

COMMENTI    

Abbiamo già visto come si calcola il massimo comun divisore di due numeri a,b, che indichiamo con MCD(a,b) con il metodo di Euclide, ed abbiamo presentato un programma che funziona passo per passo.
Il metodo si basa sul seguente teorema:

Sia r il resto della divisione fra a,b.
Se risulta r = 0 allora MCD(a,b) = b
altrimenti MCD(a,b) = MCD(b,r).

 

PER CALCOLARE IL MASSIMO COMUN DIVISORE DI DUE NUMERI DOBBIAMO    
  1. conoscere i dati (dati di input) che sono:
    • il primo numero, che indicheremo con num1
    • il secondo numero, che indicheremo con num2
  2. controllare i dati: dobbiamo escludere i casi in cui i dati non siano accettabili, e quindi
    • che num1=0 e num2=0 (MCD(0,0) non esiste);
    • che l'utente immetta numeri non interi;
    • che l'utente inserisca dati non numerici;
    • che l'utente non inserisca alcun dato;

La funzione che svolge il compito per noi si chiama function controlla(a,b) ed è spiegata nella sezione "Facciamo il punto" a sinistra nella pagina.

Se i dati in ingresso non sono accettabili viene visualizzata la risposta "Impossibile", ALTRIMENTI

  1. Se num1≠ 0 e num2=0 allora MCD(num1,num2) = num1.
  2. Se num1 = 0 e num2 ≠ 0 allora MCD(num1,num2) = num2.
ALTRIMENTI
  1. si usano due variabili d'appoggio a e b nelle quali memorizzare rispettivamente num1 e num2;
  2. si calcola r = a % b; - ESSENZIALE INIZIALIZZARE LA VARIABILE DI CONTROLLO CHE DETERMINERA' LA CONDIZIONE DI USCITA DAL CICLO
  3. Mentre il resto si mantiene diverso da zero dobbiamo - CONDIZIONE DI USCITA DAL CICLO -
    • calcolare il resto fra a e b;
    • sostituire b ad a;
    • sostituire r a b;
  4. comunicare il risultato

 


 

Se hai dubbi su dove inserire lo script: tutte le spiegazioni su PREMESSE

Per vedere il funzionamento dell'algoritmo passo per passo: tutte le spiegazioni su PRIMA PARTE

IN EVIDENZA DAL SITO

 




CALCOLATRICE
SCIENTIFICA



CON SPIEGAZIONI
ED ESEMPI

 




TARTAMONDO - PER BAMBINI




AREA GIOCHI

 

 

 

 

 


 


www.tommasobientinesi.it

La passione per i viaggi e la natura nel nuovo sito di Tommaso Bientinesi

 


 

 

INDICE


©2002 - 2013 www.webfract.it