Esercizio 2: doppia emozione... un algoritmo difficile!!!

L'algoritmo di Euclide è un algoritmo per trovare il massimo comun divisore (indicato di seguito con MCD) tra due numeri interi. È uno degli algoritmi più antichi conosciuti, essendo presente negli "Elementi di Euclide" intorno al 300 a.C.; tuttavia, probabilmente l'algoritmo non fu scoperto da Euclide, ma era noto anche 200 anni prima. Certamente era conosciuto da Eudosso di Cnido intorno al 375 a.C.; Aristotele (intorno al 330 a.C.) ne fece cenno ne "I topici", 158b, 29-35.



Descrizione in linguaggio naturale

Dati due numeri interi positivi a e b, si controlla se b è zero. Se lo è, a è il MCD. Se non lo è, si divide a / b e si assegna ad r il resto della divisione. Se r = 0 allora si può terminare affermando che b è il MCD cercato, altrimenti occorre assegnare a = b e b = r e ripetere nuovamente la divisione.



Descrizione più formale e vicina a un programma

siano a, b, mcd ed r quattro variabili in grado di contenere un numero intero

porta r a un valore diverso da 0 (ad esempio, portala a 1)

chiedi all'utente di inserire il valore di a

porta a al valore inserito dall'utente

chiedi all'utente di inserire il valore di b

porta b al valore inserito dall'utente

se b è uguale a 0

porta mcd al valore di a

altrimenti

ripeti le istruzioni seguenti fino a quando r non diventa uguale a 0

porta r al valore dell'espressione "resto della divisione di a diviso b"

se r è uguale a 0

porta mcd al valore di b

altrimenti

porta a al valore di b

porta b al valore di r

comunica all'utente il valore di mcd



Il mio secondo programma in scratch!



Anche il secondo programma Scratch che implementa il calcolo dell'MCD di due numeri interi positivi inseriti dall'utente ricalca esattamente la struttura della descrizione formale che abbiamo fornito.