Ma Euclide riuscì a risolvere il problema senza calcolare tutti i divisori!
L’idea è stata questa: anziché calcolare il MCD tra i due numeri a e b, si divide a per b e si calcola il resto r.
Dopo si ricava il MCD tra b ed r e si procede fino a quando si ha resto 0. L’ultimo divisore è il MCD cercato.
Facciamo un esempio:
Prendiamo i due numeri 40 e 15 e procediamo secondo l’algoritmo di Euclide.
Primo passaggio: a/b cioè 40/15=2 resto 10
Secondo passaggio scambiamo a con b e b con r cioè 15/10=1 resto 5
Terzo passaggio scambiamo a con b e b con r cioè 10/5=2 resto 0.
Abbiamo trovato resto zero, quindi il MCD è 5.
Facciamo ancora un altro esempio:
Consideriamo i due numeri 84 e 48.
Avremo questi passaggi:
84/48=1 resto 36
48/36=1 resto 12
36/12=3 resto 0
Allora MCD è 12.
Algoritmo di Euclide per il MCD con Scratch
Bene una volta capito il procedimento sviluppiamo l’algoritmo di Euclide con Scratch.
Innanzitutto scegliamo uno sfondo e uno sprite qualsiasi.
Dopo creiamo le variabili necessarie:
Poi realizziamo il nostro codice a blocchi.
– Prendiamo inizialmente i nostri due numeri in input.
– Dopo finché il secondo numero non diventa zero facciamo queste operazioni:
– Memorizziamo nella variabile resto il resto della divisione di numero1 per numero2.
– Nella variabile numero1 memorizziamo il valore di numero2 e nella variabile numero2 memorizziamo il resto.
Provando con l’esempio sopra:
numero1=84 e numero2=48
quindi resto=numero1%numero2 cioè resto=84%48 ovvero resto=36.
Poi memorizziamo in numero1 il valore di numero2 e in numero2 il valore di resto e quindi numero1=48 e numero2=36.
E così via, faccio questi passaggi finché non ottengo più il resto.
Notate che dopo il ciclo ho inserito un’istruzione condizionale: se il numero1 che corrisponde al nostro massimo comune divisore è negativo allora diventa positivo. Perché ad esempio il MCD(84,48)=MCD(-84,48)=MCD(84, -48)=MCD(-84, -48).
Ecco il diagramma a blocchi completo.
Chiaramente si poteva introdurre il controllo per verificare che i numeri presi in input siano interi. Provate a farlo, vi darò la soluzione in un prossimo articolo.
Come si nota l’algoritmo di Euclide per il massimo comune divisore è una soluzione molto più semplice rispetto alla precedente.
jQuery eq() method è un metodo che serve ad individuare elementi specifici all’interno di un set di elementi. All’interno del metodo eq() si specifica infatti un indice che indica la posizione dell’elemento che vogliamo selezionare.
La sintassi è dunque questa:
$(selettore).eq(indice)
dove indice rappresenta un numero intero.
Quindi se, data una serie di voci di un elenco puntato, volessi selezionare la voce dell’elenco che indica jQuery potrei utilizzare il metodo eq() specificando l’indice 2.
L’indice può essere anche negativo, ma in questo caso si partirà a contare dal basso e non dall’alto e si inizia da -1 (consultate il secondo esempio di questa lezione).
Esempio di utilizzo di jQuery eq()
Facciamo quindi un esempio completo per capire come applicare questo metodo.
Guardate dunque l’elenco sotto, noterete che ho applicato alla voce jQuery dell’elenco una formattazione diversa.
Dopo inseriamo, in un punto qualunque della pagina, il nostro elenco a cui assegniamo un id. Ciò è importante perchè l’id mi servirà quando userò il selettore nella funzione jQuery.
Infine creo la mia semplicissima funzione in cui utilizzo il metodo eq() e il metodo css(). Notate che come selettore ho utilizzato l’idargomenti e la voce li dell’elenco puntato. Ho utilizzato l’id per distinguere l’elenco da altri possibili elenchi presenti nella pagina.
In questo tutorial spiegheremo come utilizzare Algobuild per lo sviluppo dei diagrammi di flusso. Chiaramente è possibile utilizzare anche solo carta e penna per creare i diagrammi di flusso.
Algobuild è un software sviluppato per aiutare nella creazione dei flow chart ed è molto semplice da utilizzare.
Ci sono tanti altri software per la creazione dei diagrammi di flusso, lascio a voi la scoperta e la valutazione personale di tali software.
Download Algobuild
Il sito ufficiale è raggiungibile al seguente link: sito ufficiale.
Dopo aver raggiunto il sito ufficiale è possibile effettuare il download del software nell’apposita area di download.
Scaricate la versione più idonea al vostro sistema operativo.
Potete anche consultare il manuale che vi spiega come utilizzare le varie funzioni di Algobuild.
Appena avviate il programma vi trovate davanti una schermata come questa:
La sezione del main è lo spazio riservato alla costruzione del diagramma di flusso. A destra trovate invece la parte inerente la pseudo-codifica.
Nelle sezioni in basso si potrà visualizzare l’andamento dell’algoritmo quando è in esecuzione.
Algobuild istruzioni
Come potete notare, all’avvio del software, troverete già inserite la forma di inizio e quella di fine.
Queste due forme sono collegate da una freccia. Se cliccate su questa freccia con il pulsante sinistro del mouse si apre un menù per inserire una nuova istruzione.
Ogni istruzione in Algobuild è rappresentata da una forma geometrica opportuna.
Ad esempio il parallelogramma è utilizzato per l’input e l’output.
Il rettangolo è utilizzato per l’assegnamento e quindi per fare delle operazioni che vengono poi assegnate ad una variabile.
Il rombo con i due rami a destra e a sinistra rappresenta l’istruzione if che consente di effettuare una scelta.
Oltre a queste forme geometriche Algobuild mette a disposizione altre forme per rappresentare le tre istruzioni iterative: while, do-while e for.
Queste strutture dette anche cicliche sono utilizzate per ripetere un certo numero di istruzioni.
Infine il commento permette di inserire una descrizione in qualsiasi punto del diagramma di flusso.
Conclusioni
In questa lezione abbiamo presentato il software Algobuild per la creazione dei diagrammi di flusso, nella prossima lezione svilupperemo degli esempi.