Ottimizzare il codice
Nella precedente lezione hai concluso la realizzazione del rosone semplificato. In questa lezione apprenderai come ottimizzare il codice per renderlo più efficiente e “documentarlo” per rendere più facili le modifiche future o da parte di altri utenti.
Nella didattica
Questi argomenti sono di facile applicazione con Codeblocks, ma possono essere introdotti in classe in un secondo momento, quando gli studenti hanno preso dimestichezza con gli algoritmi e con l’uso dei blocchi di Tinkercad – Codeblocks. Dal punto di vista matematico, faremo riferimenti a espressioni ed equazioni. Se ancora non sei interessato alle ottimizzazioni e vuoi esercitarti sui rosoni, salta alla prossima lezione.
Ottimizzare i cicli
Per realizzare la serie di 12 rosoni e la serie di 12 archetti, hai scritto due cicli. Come avrai notato, i cicli hanno lo stesso comportamento: fanno 12 passi, il contatore di muove di 30 gradi partendo da 30 e arrivando a 360. In un caso come questo puoi unificare i cicli, ovvero inserire tutte le istruzioni in un solo ciclo.
Le funzionalità drag&drop di Codeblocks aiutano molto. Punta la prima istruzione del secondo ciclo, che coincide con la creazione del cilindro. Trascinala appena dopo l’ultima istruzione del primo ciclo. Poi cancella il secondo ciclo, rimasto vuoto, facendo attenzione e non cancellare anche le due istruzioni in coda (aggiungi tubo e crea gruppo). Guarda il video sottostante per un aiuto sulla procedura:
Manca solo un dettaglio: nel secondo ciclo hai un riferimento alla variabile j, che era il contatore del secondo ciclo e che attualmente non assume nessun valore. Sostituisci j con la variabile i.
In questo modo hai creato un solo ciclo, utilizzando meno righe di codice, meno variabili e soprattutto rendendo le istruzioni più organiche dal punto di vista logico.
Ricorda che tutti i blocchi che modificano un solido si applicano all’ultimo solido aggiunto. Ecco un’immagine di riepilogo:
Quindi inserire le istruzioni tutte di fila non inficiano sul funzionamento di spostamenti e rotazioni.
Uso di commenti e nomenclatura delle variabili
Uno degli aspetti più importanti e sottovalutati della programmazione è la creazione di un codice che possa essere facilmente mantenuto nel tempo: in questo momento ricordi bene la procedura che hai applicato per realizzare il tuo rosone, ma tra un anno sarai in grado di ricordare l’algoritmo e la logica delle istruzioni, riaprendo il codice? Oppure, condividendo il tuo file con un altro coders o docente, egli sarà il grado di capire la logica delle istruzioni?
Per rendere il progetto facilmente aggiornabile o usabile da terzi, su Codeblocks hai a disposizione due strumenti: i commenti e l’uso corretto di variabili. Partirai da queste ultime. Hai già avuto a che fare con le variabili nel precedente codice: i contatori i e j sono a tutti gli effetti variabili. Ma puoi creare anche variabili personalizzate, che abbiano scopi diversi dall’essere un contatore in un ciclo. Vai sulla Libreria Blocchi e seleziona l’istruzione “Crea variabile”. L’istruzione è sotto la categoria Matematica.
Inseriscila in cima al codice. In questo momento hai creato una variabile di nome “item” che assume il valore di 0. Il nome “item” naturalmente non è evocativo di nulla, quindi devi cambiare questa stringa. Clicca sopra la stringa “item” del blocco appena inserito. Vedrai aprirsi un menù a tendina. A questo punto clicca su Rinomina variabile (Rename variable).
Come prima variabile creerai quella che servirà a salvare il valore del raggio del nucleo. Nel campo testuale aperto dal tasto rinomina, inserisci il testo raggio_nucleo. Al posto di item, adesso apparirà la stringa “raggio_nucleo”. Impara ad utilizzare il simbolo underscore, che è un carattere accettato nella programmazione informatica con linguaggi di programmazione più avanzati.
Come detto, il raggio del nucleo del rosone ammonta a 15 mm. Quindi nel campo testuale di crea variabile inserisci 15 al posto di 0.
Da questo momento, “raggio_nucleo” sarà a disposizione tra i blocchi di Codeblocks per questo progetto. Non ti resta che utilizzarlo all’interno dell’istruzione per creare il cilindro del nucleo. Vai sulla Libreria Blocchi e seleziona la variabile “raggio_nucleo”. L’istruzione è sotto la categoria Dati.
Puoi inserirlo nel campo “Raggio” del blocco “Aggiungi cilindro”, trascinandolo al posto del valore numerico 15.
Adesso crea una variabile per ognuna delle altre dimensioni fondamentali che hai calcolato all’inizio:
- raggio_base
- altezza_rosone (che comprende altezza base, altezza nucleo e altezza del cilindro degli archetti, tutti impostati a 6)
- lunghezza_colonnine
- raggio_colonnine
- raggio_archetti
- gradi_rotazione
Nota bene: nella programmazione è più corretto definire questi oggetti come costanti, in quanto nel codice questi non varieranno ma rimarranno statici dall’inizio alla fine. Ma Codeblocks non mette a disposizione questo tipo di oggetto, quindi useremo le variabili per la finalità di documentazione.
Se hai inserito correttamente tutti i dati, avrai un codice come questo:
Hai inserito le variabili all’interno delle istruzioni per creare i solidi. Ma puoi inserirli anche dove hai fatto dei calcoli partendo da queste misure. Ad esempio, come detto nella lezione in cui hai creato le colonnine, il valore dello spostamento della colonnina lungo l’asse x (a cui hai assegnato 26 mm) deriva da:
Raggio nucleo + Altezza colonnina/2= 15 + 11 = 26 mm
Adesso puoi trasformare questa formula in un’espressione equivalente con Codeblocks:
che può essere inserita all’interno del blocco di codice che si riferisce allo spostamento della colonnina sull’asse delle x, al posto del valore 16:
Se sei un docente di matematica, avrai intuito che questa parte può essere utilizzata per spiegare il significato delle espressioni matematiche e delle equazioni.
Non ti resta che applicare le variabili anche nei calcoli all’interno delle istruzioni. Ad esempio, trasforma questi valori in istruzioni che utilizzino le variabili.
Prenditi qualche minuto per arrivare alle soluzioni, poi verifica le tue istruzioni cliccando sul tasto Guarda la soluzione.
Applicando le variabili nelle operazioni matematiche, puoi facilitare anche la creazione di progetti modificati a partire da un duplicato dell’originale. Ad esempio, potresti volere un rosone le cui colonnine misurino 26 mm al posto di 22; oppure con 14 archetti/colonnine anziché 12: basterà cambiare i valori delle variabili in cima al codice. In sintesi, questo approccio è utile anche per creare un nuovo progetto che abbia la stessa logica ma misure diverse o ripetizioni diverse.
Adesso passa rapidamente ai commenti. Il commento è una semplice stringa di testo che apparirà all’interno del codice, senza inficiare sul funzionamento dello stesso. Vai sulla Libreria Blocchi e seleziona l’istruzione “Commento”. L’istruzione è sotto la categoria Revisione.
Utilizzare il blocco commento è estremamente semplice: puoi inserirlo tra due blocchi di istruzione e scrivere quello che desideri. Ad esempio, puoi indicare lo scopo di una serie di istruzioni:
Il simbolo del doppio slash // ricalca il simbolo utilizzato nei commenti della maggior parte dei linguaggi di programmazione. Ad esempio, guarda qui sotto un pezzo di codice in Javascript, con inseriti un paio di commenti per aiutare la comprensione del codice e successive modifiche.
Inserisci un paio di commenti nel codice. Condividi le tue scelte commentando nel forum della lezione. Guardando il video iniziale puoi vedere i commenti che ho proposto per questo codice.
1 Comment
BELLISSIMO