Realizziamo oggi un semplice programma sulla terna pitagorica utilizzando Scratch.
Il termine deriva da Pitagora. Infatti la terna pitagorica è l’aspetto aritmetico, del ben noto teorema geometrico di Pitagora, di cui ricordiamo l’enunciato:
In ogni triangolo rettangolo il quadrato costruito sull’ipotenusa è equivalente alla somma dei quadrati costruiti sui cateti.
Quindi, dal punto di vista aritmetico, se tre numeri interi a, b e c verificano la relazione a2 + b2 = c2, allora si dice che formano una terna pitagorica.
Esistono dunque infinite terne con numeri interi che soddisfano questa condizione, come ad esempio: 3, 4 e 5 oppure 5, 12 e 13 e così via.
Terna pitagorica con Scratch
Si realizzi dunque un programma che legga in input tre valori (a, b e c) e determini se questi numeri possono formare una terna pitagorica, utilizzando la programmazione a blocchi con Scratch.
Innanzitutto scegliamo uno sfondo e uno sprite qualunque.
Dopo creiamo tre variabili: a, b e c.
Chiediamo di inserire il primo cateto (a), dopo il secondo cateto (b) ed infine l’ipotenusa (c).
Quindi verifichiamo che la proprietà descritta sopra sia soddisfatta.
Ecco quindi il codice completo:
In questo modo verifichiamo che il triangolo è rettangolo dal punto di vista geometrico e che i tre numeri formano una terna pitagorica dal punto di vista aritmetico.
Bene, ma se non volessimo dare importanza all’ordine di inserimento dei dati?
In questo caso allora occorre, prima di applicare la formula, calcolare il valore massimo tra i tre valori inseriti in input.
Quindi controlliamo innanzitutto se b è maggiore di a e se è vero allora:
– controllo se b è maggiore di c e:
– se vero allora si deve verificare che: a2 + c2= b2;
– se invece è falso si deve verificare che: a2 + b2 = c2.
– invece se b maggiore di a è falso allora controllo se a è maggiore di c:
– se vero allora si deve verificare che: c2 + b2= a2;
– se falso invece si deve verificare che: a2 + b2 = c2.
Ecco dunque la seconda soluzione dell’algoritmo sulla terna pitagorica con scratch.
Chiaramente la soluzione proposta è solo uno dei possibili metodi per realizzare l’algoritmo sulla terna pitagorica con Scratch.
Sviluppiamo oggi un programma che calcola la media di N numeri con scratch. Svilupperò l’algoritmo presentando due possibili soluzioni, di cui la più semplice è l’ultima, in fondo all’articolo.
Prendere in input da 1 a 9 materie, facendo un controllo dell’input, calcolare e visualizzare la media dei voti.
Procedimento algoritmo per il calcolo della media di N numeri con Scratch
La prima operazione da fare è scegliere uno sfondo e uno sprite qualunque.
Dopo creiamo le variabili necessarie.
In questo caso utilizzo: la variabile materie per indicare il numero delle materie; la variabile media per il calcolo della media; la variabile voto dove memorizzo il voto di ciascuna materia e la variabile numero_materia per indicare il numero della materia.
Quindi sviluppo il codice a blocchi.
Innanzitutto inizializzo la variabile media a zero, questa operazione è importante perché la prima volta che all’interno del ciclo eseguirò l’operazione: media=media+voto, l’elemento che ho messo in grassetto non avrà un valore ben definito perché non ancora calcolato. Allora conviene inizializzarlo all’elemento neutro della somma in quanto non comporta nessuna variazione nei risultati.
Dopo chiedo quante materie inserire e memorizzo questo valore in una variabile. Faccio un controllo per verificare che l’utente non inserisca valori minori di zero o maggiori di 9, cioè permettiamo l’inserimento da 1 a 9 materie.
Poi portiamo la variabile numero_materie a 1 e iniziamo ad inserire i voti (volendo potete anche effettuare un controllo sul voto inserito), utilizzando un ciclo ripeti materie volte (volendo potrei anche utilizzare un ciclo con contatore – ovvero ripeti fino a quando). Ogni voto è sommato e memorizzato nella variabile media. Al termine del ciclo si calcola la media con questa operazione: media=media/materie. Infine si visualizza il risultato.
Avrei anche potuto utilizzare una variabile somma dove sommare a parte i risultati, qualora servisse conservare il risultato della somma.
Ecco il codice a blocchi completo dell’algoritmo per calcolare la media di N numeri con Scratch.
Chiaramente l’algoritmo per il calcolo della media di N numeri con Scratch presenta altre soluzioni alternative.
Ad esempio, nella versione più semplice, senza controllo dell’input e conteggio delle materie, si poteva implementare semplicemente così:
Quiz Scratch scuola primaria – Realizziamo in questo articolo un semplice quiz in Scratch che affronta i problemi di matematica della scuola primaria.
In realtà questo esercizio può anche essere ripreso alle medie magari con altri tipi di problemi.
Ipotizziamo dunque di avere tre quesiti:
Primo quesito:
Lorenzo entra a scuola alle 8 ed esce alle 16. Quanto dura la giornata scolastica di Lorenzo?
Secondo quesito:
Angelo ha trovato sulla spiaggia 20 conchiglie rosa e 13 conchiglie bianche. Quante conchiglie ha raccolto in tutto?
Terzo quesito:
Un grappolo d’uva era costituito da 22 acini. Maria ne ha mangiati 8. Quanti acini sono rimasti sul grappolo?
Chiaramente potete aumentare a piacimento il numero dei quesiti da proporre agli alunni.
Procedimento quiz Scratch scuola primaria
Procediamo creando le variabili necessarie.
Innanzitutto ci servirà una variabile che chiameremo risultato dove memorizzeremo la risposta data dall’utente.
Dopo ci servirà pure una variabile punti che si incrementerà di uno se la risposta è corretta.
Notiamo poi che tutti i quesiti sono composti da operazioni matematiche che sono effettuate su due numeri, ad esempio n1 ed n2.
Allora ecco le variabili necessarie:
Scegliamo uno sfondo e uno sprite qualunque:
Iniziamo a creare il codice a blocchi.
Innanzitutto inizializziamo la variabile punti a zero.
Dopo, di volta in volta, impostiamo le variabili create n1 ed n2 ai valori del problema dato.
Potevamo anche fare a meno di utilizzare le variabili, ma sono estremamente utili in quanto facilitano il cambio dei dati in tutto il problema.
Se la risposta data dall’utente coincide con il risultato calcolato dal programma allora si guadagnerà un punto.
Essendo tre i quesiti, il punteggio massimo totale è tre.
Al termine del quiz aggiungiamo l’invio del messaggio finito.
Quando dunque si riceve finito, in base al punteggio ottenuto verrà visualizzato un messaggio a video.
Questi sono i quiz inseriti nei blocchi unione. Fate riferimento ai quesiti scritti sopra.
Ecco il codice completo:
Il blocco invia a tutti finito per il calcolo del punteggio:
Chiaramente questo è solo un metodo per la risoluzione del semplice ‘quiz Scratch scuola primaria’, potete trovare tanti altri metodi, come ad esempio l’utilizzo dei blocchi.
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.
Area e perimetro con Scratch – Realizziamo in questa lezione una serie di esempi per calcolare l’area e il perimetro del rettangolo con Scratch.
Questi semplici esercizi possono essere proposti nella scuola primaria e nella scuola secondaria.
Primo esempio – calcolo del perimetro
Calcolare il perimetro di un rettangolo date le misure dell’area e della base.
Avendo la base e l’area mi posso calcolare semplicemente l’altezza con questa formula
h=A/b
In quanto l’area di un rettangolo è uguale a base per altezza.
Dunque A=b*h e da qui si deduce che h=A/b.
Diagramma a blocchi con Scratch per il calcolo del perimetro del rettangolo
Innanzitutto creo le variabili area, base, altezza e perimetro:
Le variabili area e base le prendiamo in input, mentre l’altezza la ricaviamo utilizzando la formula detta sopra. Infine calcoliamo il perimetro che è dato dalla somma di tutti i lati. Dato che in un rettangolo i lati sono uguali a due a due scrivo semplicemente: perimetro=2*(base+altezza).
Ecco il diagramma a blocchi completo.
Chiaramente possiamo fare i controlli dell’input per l’area e la base per far in modo di inserire valori positivi. Ammettiamo però che la base possa essere più grande dell’area, quindi ad esempio se l’area è 20 cm2 e la base è 25 cm l’altezza ricavata è 0,8cm.
Un’altra cosa che potremmo fare è arrotondare il risultato così come abbiamo fatto negli esercizi precedenti.
Ecco dunque il diagramma a blocchi completo.
Esempio di calcolo area di un rettangolo
Calcolare l’area di un rettangolo date le misure del perimetro e dell’altezza.
In questo secondo esempio calcoliamo questa volta l’area di un rettangolo.
Quindi ricaviamo la base con questa formula:
base=(perimetro-2*altezza)/2.
Quindi calcoliamo l’area=base*altezza.
Oppure calcolo prima il semiperimetro e quindi base=semiperimetro-altezza.
Ecco il diagramma a blocchi completo.
Questi sono solo dei semplicissimi esercizi sull’area e perimetro con Scratch da poter realizzare con facilità.
In questa lezione studieremo come trovare il massimo comune divisore con Scratch.
Innanzitutto diamo la definizione di massimo comune divisore, che possiamo abbreviare più semplicemente con il simbolo MCD.
L’MCD è il più grande divisore comune dei numeri presi in considerazione.
Ad esempio consideriamo i numeri 15 e 5. Troviamo dapprima i divisori di 15 che sono: 1,3,5,15 e poi i divisori di 5 che sono:1,5.
Quindi il più grande divisore tra i due numeri è 5.
Se il più grande divisore è 1 si dice che i numeri sono coprimi ovvero primi tra di loro.
Nell’implementazione dell’esercizio faremo uso delle liste e dei blocchi.
Quando si è davanti ad un problema complesso conviene infatti dividerlo in sottoprogrammi per poter sviluppare le varie parti separatamente.
Procedimento per trovare il massimo comune divisore con Scratch
Ecco innanzitutto le variabili che ho utilizzato e che a mano ve ne spiegherò l’utilità.
Utilizzo della lista
Ci servirà una lista per contenere tutti i possibili divisori del primo numero preso in input.
Dunque creo una lista e la chiamo ad esempio divisori.
Utilizzo del blocco divisori
Creiamo il blocco divisori che serve a trovare tutti i divisori del primo numero preso in input, che è memorizzato nella variabile appositamente creata di nome numero.
Quindi utilizziamo la variabile div che rappresenta il divisore. Questa variabile la inizializziamo a 1. Dopo realizziamo un ciclo utilizzando l’istruzione ripeti fino a quando che si fermerà quando la variabile div sarà uguale al valore del numero preso in input.
Quindi controlliamo all’interno del ciclo se il resto della divisione del numero per il divisore è uguale a zero. Se è vero allora inseriamo la variabile div all’interno della lista divisori, altrimenti non facciamo nulla. In ogni caso incrementiamo la variabile div di uno per trovare altri divisori possibili del numero preso in input.
Utilizzo del blocco trova
Ci servirà adesso un altro blocco che chiamo ad esempio trova che servirà a trovare il divisore più grande possibile.
Come agirà questo blocco? Assegniamo alla variabile lunghezza il valore della lunghezza dei divisori. Dopo usiamo un indice i che scorre la lista dalla fine all’inizio. Appena trova un divisore, quello sarà il massimo comune divisore e quindi il programma si può fermare. Se arriva ad 1 vuol dire che i numeri sono coprimi.
N.B. Potevo anche fare a meno di utilizzare la variabile lunghezza, cambiando alcune impostazioni. Cioè portando i uguale alla lunghezza di divisori e cambiare il ciclo ripeti fino a quando lunghezza di divisori è uguale a zero.
Programma principale per trovare il massimo comune divisore con Scratch
Adesso dobbiamo sviluppare il programma principale.
Chiediamo il primo numero e se negativo lo trasformiamo in positivo, perché il procedimento è uguale. Per trasformare il numero in positivo o lo moltiplichiamo semplicemente per -1 oppure utilizziamo la funziona abs.
Dopo avviamo il blocco divisori.
Poi chiediamo il secondo numero e anche questo, se negativo, lo trasformiamo in positivo.
Infine avviamo il blocco trova che troverà il massimo comune divisore.
Chiaramente questo è uno dei possibili metodi per trovare il massimo comune divisore con Scratch.
Nella prossima lezione vi presenterò la soluzione con il metodo di Euclide.