Mini tutorial - #1 Area e Perimetro

Benvenuti,
eccoci di nuovo con il nostro scratch e come spesso accade estrapolo i miei tutorial da progetti realizzati, aiuti richiesti oppure semplicemente curiosità. Prova il progetto in fondo alla pagina! 
Il codice non è molto difficile e ci farà capire come concatenare le varie operazioni per creare una piccola procedura che andrà a calcolare perimetro ed area dei poligoni regolari.
Qui 👈🏻 invece troverete l'utilizzo della penna per disegnare i poligoni 💪🏻
Un progettino che oltre ad andare effettivamente a fare il calcolo in autonomia per i vari poligoni potrebbe essere uno spunto per spiegare le varie formule matematiche.
Come funziona? Andremo a chiedere il numero di lati (per identificare il poligono) e la lunghezza del lato per poter effettuare il calcolo reale, nel nostro caso in centimetri.
Vediamo cosa ci servirà per creare il nostro codice nel menu qui sotto :-) 


Le variabili sono molto esplicative e non hanno bisogno di tante spiegazioni le liste invece anche se contengono dei valori semplici da intuire, i nomi dei vari poligono e i numeri fissi da usare nella formula, necessitano di un aiutino; la cosa importante è la posizione dei vari elementi. Il numero di lati è il valore fondamentale per gestire il tutto ed identifica velocemente il poligono in uso, sarà proprio questo indice che andrà anche a prelevare i valori dalle liste. E' semplice capire che se il numero di lati è 5 parliamo di un pentagono e se posizioniamo i dati del pentagono nella posizione 5 delle liste abbiamo collegato tutti i valori tra loro che serviranno per i calcoli. Continuando così avremo 6 lati e l'esagono in sesta posizione con il suo numero fisso sempre in sesta posizione , lo stesso principio ci farà quindi introdurre un valore di zero, ovviamente, per le posizioni 1 e 2 non esistendo poligoni.Vi consiglio sempre di seguire il link al progetto che lascerò alla fine per visionare al meglio i dati.


Come sempre la prima operazione , se necessaria, è quella di inizializzare quindi portare al valore iniziale (nel nostro caso zero va bene) le nostre variabili, in questo modo anche le condizioni seguenti funzioneranno nel modo corretto. Le altre variabili verranno aggiornate durante l'esecuzione del progetto quindi possiamo ometterle in questa fase ma se siete all'inizio vi consiglio di inizializzarle tutte per evitare errori inutili e dover ricercare poi il punto esatto del misfatto :-)
Detto questo chiediamo a chi sta utilizzando l'app il numero di lati per identificare il poligono e questa domanda lo dovremo continuare a fare fino a quando sarà inserita una risposta esatta e cioè un numero almeno maggiore di 2 quindi dal 3 in poi. Iniziamo con il notare che l'operatore maggiore uguale non esiste come singolo blocco quindi se possibile invece di ricrearlo aggiungendo blocchi inutili abbiamo abbassato di un 'unità il limiti per includere il 3 nella scelta (l'alternativa sarebbe stata maggiore o uguale a 3). Il blocco ripeti continuerà a porre la domanda fino a quando la risposta alla condizione sarà falsa (es. 1>2 --> falso entriamo nel ciclo) portando anche a video un messaggio che spiega l'errore , questo avverrà solo se la risposta è minore di 3. Se non avessimo introdotto questa verifica anche su una riposta esatta avremmo avuto il messaggio visto che scratch legge i blocchi in sequenza.
A condizione verificata , quindi il blocco ritorna vero (5>2 --> vero) salteremo la visione del messaggio d'errore e uscendo dal ripeti fino a andremo a salvare la risposta nella variabile Numero lati , subito dopo chiediamo la lunghezza del lato e salviamo il rispettivo valore nella sua variabile. Lascio a voi tutte le possibili personalizzazioni tra cui anche il valore massimo ammissibile per il progetto, per esempio io ho inserito fino al dodicesimo elemento; provate quindi a modificare il codice per controllare anche il valore massimo e non solo il minimo ammissibile. Resto sempre a disposizione nel caso di aiuto , commentate l'articolo.
Adesso ci basterà semplicemente creare le varie formule visto che abbiamo tutti i dati utili , partiamo dal più semplice e salviamo nella variabile perimetro il risultato della moltiplicazione del Numero di lati per la loro lunghezza , easy! Operazione simile la faremo per l'apotema salvando al suo interno il valore della moltiplicazione tra Lunghezza lato e un elemento molto particolare , prelevato dalla lista dei numeri fissi usando proprio il numero di lati. Ottagono , otto lati , andremo a prendere l'ottavo elemento della lista numeri fissi che sappiamo essere dei numeri noti.
Benissimo, con poche linee di codice siamo già arrivati a calcolare l'area moltiplicando perimetro x apotema e dividendo il tutto per 2. Come anche in italiano per la stessa matematica dovremo rispettare la sintassi quindi attenzione ai blocchi e come vengono concatenati insieme, vi consiglio di creare dei mini blocchi come fossero delle parentesi e comporre l'operazione , in questo modo anche formule più complesse verranno semplificate. Quindi andremo prima a creare la moltiplicazione e poi questo blocco lo inseriremo in quello di divisione aggiungendo 2 nell'ultimo box bianco.
Ci vuole più a descriverlo che realizzarlo :-) Per abbellire il tutto , dopo un' attesa tecnica, andiamo a pronunciare il nome del poligono (vi lascio giocare con la personalizzazione) andando a prendere sempre con la stessa tecnica l'ottavo elemento della lista poligoni per pronunciare :parliamo di ottagono.
Pronunciamo poi anche il valore del perimetro e dell'area che ormai abbiamo salvato nelle nostre variabili e possiamo richiamare a piacimento.
Perfetto non vedo l'ora di sapere come personalizzerete questo codice per adattarlo al vostro bisogno, vi lascio con lo screenshot delle liste per avere subito sott'occhio e controllare la correlazione dei lati e il link al progetto QUI





 

 Se hai apprezzato il mio lavoro offrimi un bel caffè 😍

Commenti

Ciao, spero ti piaccia il blog. Se ti fa piacere qui puoi offrirmi un caffè!

Post popolari in questo blog

GOOGLE SCRIPT & KODULAR READ, WRITE, UPDATE, DELETE

Tu lo conosci THUNKABLE?