Figure equivalenti con Scratch

Figure equivalenti con Scratch

Affronteremo oggi l’algoritmo per verificare se due figure sono equivalenti con Scratch.

Definizione

In geometria piana due figure sono equivalenti quando hanno la stessa area.

Esempio 1 – Figure equivalenti con Scratch

Dati in input la base e l’altezza di un rettangolo e il lato di un quadrato, verificare se le due figure sono equivalenti.

Dapprima scegliamo uno sfondo e uno sprite qualsiasi. Io ho scelto questo:

sfondo algoritmo

Poi chiediamo di inserire la base e l’altezza di un rettangolo e il lato del quadrato.

Dunque calcoliamo le due aree, sapendo che l’area del quadrato è uguale a lato per lato e l’area del rettangolo è uguale a base per altezza.

Infine confrontiamo le due aree, utilizzando la funzione se, e se sono uguali visualizziamo in output il messaggio “le figure sono equivalenti”; altrimenti visualizziamo che non lo sono.

Ecco le variabili che sono state utilizzate.

variaibli algoritmo

Ecco l’algoritmo completo.

aree equivalenti

Potremmo fare lo stesso ragionamento confrontando in maniera simile le aree di altre figure geometriche.


Esempio 2 – Figure equivalenti con Scratch

Dati in input il cateto e l’ipotenusa del triangolo rettangolo e il lato di un quadrato, verificare se le due figure sono equivalenti.

Per semplicità scegliamo lo stesso sfondo, chiaramente voi potete variare e scegliere quello che volete.

Dopo chiediamo di inserire il lato del quadrato e un cateto e l’ipotenusa del triangolo rettangolo.

Per calcolare l’area del triangolo rettangolo mi serve l’altro cateto.

Me lo ricavo con questa formula:

cateto2=sqrt(ipotenusa*ipotenusa-cateto1*cateto1)

Dopo calcoliamo le due aree, sapendo che l’area del quadrato è uguale a lato per lato e l‘area del triangolo rettangolo è uguale a cateto1*cateto2/2.

Infine, confrontiamo le due aree, utilizzando la funzione se, e visualizziamo il messaggio in output.

Ecco le variabili che ho utilizzato.

figure equivalenti

Ecco lo script completo.

algoritmo aree equivalenti

Si può fare analogamente con tante altre figure geometriche.

Alcuni link utili

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

Selecion sort in Scratch

Riconoscere gli angoli con scratch

Riconoscere gli angoli con scratch

Vediamo oggi come creare un algoritmo per riconoscere gli angoli con Scratch.

Innanzitutto diamo le seguenti definizioni di angoli.

Un angolo è:

Retto:  se è la metà di un angolo piatto e la cui misura dell’ampiezza in gradi è 90°.

Piatto: se la misura dell’ampiezza in gradi è 180°.

Giro: se la misura dell’ampiezza in gradi è 360°.

Acuto: se è un angolo la cui ampiezza è inferiore ad un angolo retto.

Ottuso: se è un angolo la cui ampiezza è superiore ad un angolo retto.

Detto ciò, seguiamo questo ragionamento:

Innanzitutto se inseriamo un valore minore di zero e maggiore di 360 diciamo che deve inserire un valore compreso tra 0 e 360.

Dopo controlliamo se l’angolo è uguale a 0 e allora è nullo; altrimenti controlliamo se è uguale a 90 e allora è un angolo retto; se falso controlliamo se è uguale a 180 e allora è un angolo piatto; altrimenti se è uguale a 360 è un angolo giro; se nessuna di queste opzioni è verificata il programma mi dice se l’angolo è acuto oppure ottuso.

Creiamo l’algoritmo per riconoscere gli angoli con Scratch

Dapprima scegliamo uno sprite e uno sfondo qualsiasi.

angolo retto scratch

Poi realizziamo lo script come da figura sotto, seguendo il ragionamento fatto.

scratch angoli

Si potrebbe anche fare in modo che l’algoritmo richieda di inserire l’angolo se si immette un valore minore di 0 o maggiore di 360.

Basta inserire un ciclo ripeti fino a quando

non ((angolo<0) || (angolo>360))

ovvero finché l’utente non immette un valore compreso tra 0 e 360.

ciclo angoli scratch

Ecco alcune possibili soluzioni per riconoscere gli angoli con Scratch.

Chiaramente si possono proporre tante varianti, dite pure la vostra nei commenti sotto.

Alcuni link utili

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

Selecion sort in Scratch


Olimpiadi di informatica con Scratch

Olimpiadi di informatica con Scratch

Realizziamo un semplice quiz su un esercizio delle olimpiadi di informatica con Scratch.

Abbiamo il seguente quesito:

La media aritmetica dei quattro numeri 5, 9, X e Y vale 12. Quanto vale la media aritmetica dei due numeri X+7 e Y-3 ?

Vogliamo proporre questo quesito con Scratch e chiedere all’utente la risposta. Se coincide con quella calcolata dal sistema allora vince, altrimenti avrà un messaggio di esortazione a ragionare ancora.

Olimpiadi di informatica con Scratch – risoluzione

Ragioniamo sul problema:

Se la media dei quattro numeri è uguale a 12, vuol dire che (5+9+ X+Y)/4=12

Ovvero risolvendola avremo che X+Y=48-14=34

Bene adesso dobbiamo trovare la media dei due numeri X+7 e Y-3, ovvero M=((X+7)+(Y-3))/2, cioè risolvendola M=(X+Y+4)/2.

Facilmente si ottiene il risultato, infatti basta sostituire a X+Y il valore di 34.

Si avrà che M=(34+4)/2=38/2=19

Realizzazione del quiz

Bene, proviamo a fare un semplice quiz sul quesito proposto alle olimpiadi di informatica con Scratch. Per farlo uso le seguenti variabili:

somma – che è la variabile che contiene la somma di X+Y;

media – che calcola la media in base alla formula detta prima (X+Y+4)/2;

m – che contiene la risposta dell’utente.

Uso questo procedimento perché con opportuni cambiamenti si può generalizzare l’algoritmo e chiedere in input quanto vale la somma di X+Y ad esempio, per poi risolvere il problema.

E anche per presentarvi un semplice uso dei blocchi.

Ho scelto questi sprite e questo sfondo:

Ho inserito questo script, dove chiedo la risposta, la memorizzo nella variabile m e avvio il blocco media. Nel blocco media semplicemente calcolo la media in base a quanto detto prima.

Come vi dicevo si può generalizzare l’algoritmo chiedendo in input quanto vale la somma e mettendo delle variabili anche nell’equazione che calcola la media.

Script completo del quesito proposto alle olimpiadi di informatica.

script olimpiadi di informatica

Dunque il programma controlla se la variabile m che contiene la risposta dell’utente è uguale alla media calcolata dal blocco media. Se è vero, invia un messaggio alla ciambella che prima era nascosta, così da comparire al cagnolino.

script olimpiadi

Questo vuole essere solo un esempio di semplice quiz sulle olimpiadi di informatica con Scratch.


Alcuni link utili

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

Selecion sort in Scratch


Gioco indovina numero con Scratch

Gioco indovina numero con Scratch

Realizziamo il gioco indovina numero con scratch.

Lo scopo del gioco è semplicemente quello di chiedere un numero ad un utente e di confrontarlo con il numero ‘pensato‘ dal programma.

Se l’utente immette il numero giusto, allora ha vinto.

Se invece inserisce un numero più alto riceverà il messaggio che gli suggerisce di provare con un numero più basso.

Infine se inserisce un numero più basso riceverà il messaggio che gli suggerisce di provare con un numero più alto.

Stabiliamo un numero massimo di tentativi a piacere.

Se dopo tali tentativi l’utente non ha vinto, si vedrà il messaggio: “Purtroppo hai perso.”

Procedimento del gioco indovina numero con scratch

Analizziamo il procedimento in dettaglio.

Per questo gioco ho utilizzato lo sfondo gingerbread e come sprite ho inserito il pinguino 3.

Facciamo generare al programma un numero a caso tra 1 e 10.

Per generare il numero a caso utilizzo la funzione di Scratch numero a caso tra 1 e 10.

Creo una variabile che chiamo indovina e memorizzo in essa il numero random generato dal programma.

Poniamo a tre il numero massimo di tentativi, quindi inserisco ripeti 3 volte. All’interno del ciclo chiedo all’utente di inserire il primo numero e lo memorizzo in una variabile appositamente creata che chiamo numero.

Se il numero è maggiore di indovina allora dò il messaggio: il numero che ho pensato è più piccolo.

Altrimenti se il numero è minore di indovina dò come messaggio: il numero che ho pensato è più grande.

Infine se il numero è uguale a indovina dò come messaggio: hai indovinato!

Ho messo in aggiunta il balletto del pinguino 🙂

Per farlo ho creato un ciclo di ripeti 10 volte e ho inserito un semplice cambio costume.

Se dopo i tre tentativi il numero non è stato indovinato allora si avrà in output il messaggio: Hai perso! Mi dispiace!

scratch alto basso gioco

Possiamo perfezionare lo script aggiungendo un controllo sul numero preso in input.

L’utente non dovrebbe inserire un numero maggiore di 10 o inferiore a 1, perché il numero da indovinare è tra 1 e 10. Per controllare ciò possiamo utilizzare gli operatori logici; in questo caso mi servono le funzioni logiche not e o.

Così, se inseriamo un numero maggiore di 10 oppure inferiore a 1 il programma richiede nuovamente l’inserimento.

Attenzione! In Scratch a differenza dei linguaggi di programmazione il ciclo si ripete finché quella condizione risulta essere falsa quindi occorre inserire la negazione usando l’operatore non.

Alcuni link utili:

Frazioni con scratch

Equazioni di primo grado in scratch

Disegnare poligoni regolari in 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

Selecion sort in Scratch

Palindroma con scratch

Palindroma con scratch

Realizziamo oggi un semplice programma per vedere se una parola è palindroma con Scratch.

Definizione di palindroma

Una parola è palindroma quando si legge allo stesso modo da sinistra verso destra e da destra verso sinistra. Alcuni esempi sono: Anna, ebbe, non, radar, osso, ecc…

Algoritmo palindroma con Scratch

Realizzare un algoritmo con Scratch per vedere se una parola è palindroma è molto semplice.

Innanzitutto scegliamo uno sfondo e uno sprite a piacere.

Io ad esempio io ho scelto questi:

script palindroma scratch

Dopo creiamo gli script.

Quindi facciamo dire un semplice messaggio: “Il mio nome è Anna ed è una parola palindroma!“. Subito dopo aggiungiamo un messaggio che spiega il significato di palindroma. Infine chiediamo all’utente di inserire una parola e il programma in automatico verificherà se tale parola è palindroma.

Per realizzare il programma sulla parola palindroma con Scratch servono dunque le seguenti variabili:

parola – che conterrà la parola inserita dall’utente;

palindroma – che conterrà la parola letta al contrario;

i – l’indice che servirà a scorrere la parola a partire dalla prima lettera;

lettera – conterrà ciascuna lettera puntata dall’indice i in quel momento.


Dopo aver creato queste variabili ragioniamo su come invertire la parola.

Dunque creiamo un blocco che chiamiamo palindroma e che ha la funzione di invertire la parola.

Il procedimento è questo:

Inizializziamo palindroma alla stringa vuota lasciando uno spazio bianco;

portiamo l’indice i, che scorre la parola, a 1;

utilizziamo un ciclo che scorre la parola fino alla sua lunghezza;

scorriamo ad una ad una le lettere della parola;

aggiungiamo una alla volta le lettere alla variabile palindroma prima delle altre.

In questo modo otteniamo la parola al contrario di quella presa in input.

Ci resta solo da verificare se parola è uguale a palindroma con un semplice se.


Allego il blocco che inverte la frase:

palindorma scratch

E lo script necessario per creare il nostro programma sulla parola palindroma in scratch:

palindroma script scratch


Alcuni link utili

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 in scratch

Disegnare poligoni regolari in 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

Selecion sort in Scratch

Numeri perfetti con Scratch

Numeri perfetti con Scratch

Realizziamo adesso un algoritmo con Scratch che controlli se i numeri inseriti in input sono numeri perfetti.

Definizione di numero perfetto

Un numero si dice perfetto quando è uguale alla somma dei divisori propri (tutti i divisori tranne il numero stesso).

Ad esempio il più piccolo numero perfetto è 6 in quanto i suoi divisori escluso se stesso sono 1, 2 e 3.


Procedimento algoritmo sui numeri perfetti con Scratch

script numeri perfetti scratch

Per la risoluzione dell’algoritmo utilizziamo le variabili:

numero che rappresenta il numero da valutare

div che rappresenta il divisore per cui verrà diviso il numero

somma che conterrà la somma dei divisori.

Quindi chiediamo all’utente di inserire un numero e memorizziamo la risposta nella variabile numero.

Dobbiamo trovare i divisori del numero preso in input, sommarli e dopo confrontare la somma ottenuta con il numero.

Quindi dovrei cominciare a dividere i numeri prima per 1, poi per 2, poi per 3, ecc…

Ma è scontato che ciascun numero è divisibile per 1, quindi faccio partire il divisore da 2. Chiamiamo la variabile divisore div e assegniamo a div il valore di 2.

Creo inoltre la variabile somma che conterrà la somma dei divisori.

Farò partire la variabile somma da 1, perché come detto sopra, possiamo già sommare il divisore 1.

All’interno del ciclo controlliamo se il numero è divisibile per div.

Come si fa a controllarlo?

Basterà controllare se il resto della divisione di numero diviso div è uguale a zero.

Se vero allora aggiorno la variabile somma aggiungendo il valore di div, altrimenti non lo aggiungo. In ogni caso vado avanti e incremento div di 1.

Continuo finché il divisore non raggiunge la metà del numero (numero/2) infatti è scontato che dividendo un numero per un numero maggiore della sua metà si avrà un numero con la virgola, ovvero si avrà che il resto è diverso da zero.

Al termine controllo se il numero inserito coincide con la somma.

Se è così il numero è perfetto, altrimenti non lo è.

È chiaro che ci possono essere altre possibili soluzioni o ampliamenti dell’algoritmo stesso. Proponete pure la vostra soluzione nei commenti e ne discuteremo assieme.


Alcuni link utili

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