Olimpiadi di matematica

Olimpiadi di matematica

In quest’articolo affronteremo un quesito delle olimpiadi di matematica con scratch.

Sappiamo che il PIN del bancomat di Claudia è un numero di 5 cifre della forma n = 41a9b, dove a e b indicano le cifre che non conosciamo. Sappiamo però che n è divisibile per 312. Quanto vale il prodotto a · b?

Ragioniamo sul numero da trovare.

Se a e b fossero uguali a 9, cioè la più alta combinazione possibile, il nostro numero sarebbe 41999.

Questo numero diviso 312 mi dà 134 con resto 191 e 134 x 312=41808.

Quindi non può essere 134 perchè deve essere soddisfatta la seguente condizione 41a9b. Dunque il numero da trovare è minore di 134.

Se invece a e b fossero uguali a zero, ovvero la più piccola combinazione possibile, il nostro numero sarebbe 41090. Se lo dividiamo per 312 avremo:

41090/312= 131 con resto 7 e 131 x 312 = 40872

Il numero è comunque troppo piccolo, quindi possiamo scartare 131.

Per i ragionamenti appena fatti gli unici divisori possono dunque essere 132 e 133.

Facendo le operazioni possiamo escludere 132, in quanto:

132 x 312 = 41184 e chiaramente non può essere perchè deve essere soddisfatta la seguente condizione 41a9b.

Perciò l’unico divisore è 133, infatti se lo moltiplichiamo per 312 mi darà il numero 41496.

133 x 312= 41496 e la condizione 41a9b è soddisfatta.

Quindi a=4 e b=6

Dunque il prodotto di a per b è 24.

Proviamo adesso a risolverlo con un algoritmo.


Algoritmo su un quesito delle olimpiadi di matematica con scratch

Consideriamo il nostro numero 41a9b, dove a e b sono due variabili che possono variare ognuna da 0 a 9.

Queste sono le variabili che servono:

variabili gara matematica

Scelgo uno sfondo e uno sprite qualunque e inserisco il testo, del problema delle olimpiadi di matematica, direttamente nello sfondo.

gara nazionale matematica

Cliccando sullo stage compaiono gli strumenti per personalizzare gli sfondi:

testo scratch

Quindi consideriamo due cicli annidati per provare tutte le possibili combinazioni finchè non troverà il numero cercato.

Ecco lo script completo che ripete partendo da a e b uguali a 9 tutte le possibili combinazioni.In sostanza proverà dapprima il numero 41999 poi 41998,..,41997, …,41990,41899… ecc… fino a trovare il numero divisibile per 312.

Per verificare se il numero è divisibile per 312 si considera l’operatore presente in scratch: resto della divisione e lo si confronta con zero.

script gara matematica

Potremmo migliorare l’algoritmo e farlo fermare non appena trova il divisore. Basta spostare il ferma tutto sotto l’istruzione prodotto.
Oppure creare una variabile di controllo.

Questo è solo un quesito delle olimpiadi di matematica con scratch, ve ne proporrò degli altri.

Alcuni link utili:

Figure equivalenti con scratch

Riconoscere gli angoli con scratch

Morra cinese con scratch

Giochi matematici autunno 2018

Esempi di giochi matematici Bocconi

Gioco della tabellina con scratch

Gioco indovina numero con scratch

Frazioni con scratch

Equazioni di primo grado con scratch

Disegnare poligoni regolari con scratch

Numeri primi in Scratch

La successione di Fibonacci in Scratch

Massimo fra tre numeri in Scratch

Minimo tra 3 numeri in Scratch

Numeri perfetti con algobuild

Numeri amicabili

Selection sort in Scratch


Anno bisestile con Scratch

Anno bisestile con Scratch

In quest’articolo affronteremo l’algoritmo che verifica se un anno è bisestile con Scratch.

Questo è un altro semplice esempio sull’uso della funzione se … altrimenti.

Questo stesso algoritmo è stato riproposto con algobuild al seguente link: https://www.codingcreativo.it/algoritmo-anno-bisestile/

Regola anno bisestile

Un anno è bisestile se è divisibile per 400 oppure è divisibile per 4 ma non per 100.

In definitiva con questa regola ad esempio gli anni secolari non sono bisestili a meno che non siano divisibili per 400.

Anno bisestile con Scratch

Per realizzarlo con Scratch, cominciamo con l’impostare uno sfondo a piacere e a scegliere uno sprite, io ad esempio ho scelto questi:

sfondo anno bisestile

Mi servirà una sola variabile che è quella che rappresenta l’anno, dove andrò a memorizzare la risposta dell’utente.

variabile anno

Dopo dobbiamo controllare che il resto della divisione di anno per 400 sia uguale a zero; se tale condizione si verifica allora l’anno è bisestile; altrimenti controlliamo se l’anno è divisibile per 4 ma non per 100 e anche in tal caso l’anno è bisestile; se entrambe le condizioni non sono verificate allora l’anno non è bisestile.

Si utilizza l’operatore resto della divisione in Scratch e lo si confronta con zero per verificare la divisibilità. Allego lo script completo:

anno bisestiel con scratch

Si poteva anche fare anche tutto in un unico se utilizzando l’operatore logico or. Provate pure voi a farlo.


Alcuni link utili

Figure equivalenti con scratch

Riconoscere gli angoli con scratch

Morra cinese con scratch

Giochi matematici autunno 2018

Esempi di giochi matematici Bocconi

Gioco della tabellina con scratch

Gioco indovina numero con scratch

Frazioni con scratch

Equazioni di primo grado con scratch

Disegnare poligoni regolari con scratch

Numeri primi in Scratch

La successione di Fibonacci in Scratch

Massimo fra tre numeri in Scratch

Minimo tra 3 numeri in Scratch

Numeri perfetti con algobuild

Numeri amicabili

Selection sort in Scratch


Algoritmo anno bisestile

Algoritmo anno bisestile

In quest’articolo studieremo un algoritmo che controlla se un anno è bisestile oppure no.

Regola per calcolare se un anno è bisestile

Nel mese di febbraio ogni 4 anni viene aggiunto un giorno per evitare lo slittamento delle stagioni. Quindi ogni 4 anni avremo 366 giorni anziché 365.

Per vedere se un anno è bisestile dobbiamo dividerlo per 400; se è divisibile allora è sicuramente un anno bisestile; altrimenti saranno bisestili solo quegli anni che si possono dividere per 4 ma non per 100.

Esempi di anni bisestili sono:

1600, 1604, 1608 fino al 1696. Il 1700 non è bisestile. E ancora il 1704, 1708 fino a 1796. Il 1800 non è bisestile. Allo stesso modo neanche il 1900 è bisestile e così via.

In definitiva per apportare un’ulteriore approssimazione si è stabilito di non rendere bisestili gli anni secolari, eccetto quelli divisibili per 400.

Potete seguire tutta la spiegazione su focus scienza se volete approfondire.

Algoritmo anno bisestile con i diagrammi di flusso

Realizziamo questo semplice algoritmo con i diagrammi di flusso.

Per realizzare l’algoritmo servono dunque le seguenti forme:

Ellisse per l’inizio e per la fine;

Parallelogramma per inserire l’input, ovvero in questo caso per prendere l’anno e per visualizzare in output il risultato;

Rombo per effettuare un test che può essere vero o falso. In questo caso si effettuano due test.

Quindi chiediamo in input l’anno e poi verifichiamo se è divisibile per 400. Se è vero diciamo che l’anno è bisestile, altrimenti verifichiamo se l’anno è divisibile per 4 ma non per 100 come detto sopra.

Utilizzeremo l’operatore % , che è l’operatore modulo, che serve a trovare il resto della divisione.

Lo spiego con un esempio:

2400%400 indica il resto della divisione che in questo caso è 0; in quanto 2400 diviso 400 fa 6 con resto zero;

invece 2400/400 indica un quoziente e in questo caso è 6.

Per fare il test usiamo l’operatore di confronto che ricordo si esprime con il doppio uguale.

Allego l’algoritmo completo che verifica se un anno è bisestile.

algoritmo anno bisestile

Potremmo anche adottare questo procedimento:

anno bisestile

In questo modo si controlla se un anno è bisestile con un solo test, ovvero un solo se.


Alcuni link utili

Indice tutorial diagrammi a blocchi

1 – Diagramma a blocchi

2 – Primi esercizi con i diagrammi di flusso (perimetro triangolo; area di un trapezio)

3 – Altro semplice esercizio sui flow chart (calcolare uno sconto)

4 – Area del cerchio

5 – Precedente e successivo di un numero

6 – Introduzione agli algoritmi di selezione

7 – Minore tra due numeri

8 – Maggiore fra tre numeri

9 – Algoritmo di selezione sugli angoli