Introduzione alla programmazione visuale con Blockly
Questa volta si tratta di realizzare una funzione che calcoli il fattoriale di un numero naturale e di provare a usarla realizzando, in cascata, altre due piccole applicazioni che fanno uso della funzione realizzata.
Il fattoriale di un numero naturale
Il primo video propone un possibile algoritmo.
Come al solito: se ve la sentite potete provare a implementare la funzione senza guardare il secondo video e usare il video solo come aiuto via via che procedete con l’implementazione dell’algoritmo.
Oppure potete seguire completamente il video (questo qui sopra) e poi svolgere il compito. In ogni caso la prossima consegna vi obbligherà a fare un po’ da soli e quindi possiamo usare questi primi problemini solo per familiarizzare …
N.B.: per qualche motivo che capiremo nel corso del laboratorio (spero), non è possibile implementare con Blockly il calcolo del fattoriale utilizzando un algoritmo ricorsivo.
Una volta completata e controllata la funzione, modificarla (migliorarla) aggiungendo controlli sul valore passato alla funzione. Per esempio:
- Se il numero di cui calcolare il fattoriale è negativo? La funzione che avete realizzato come si comporta? Forse è il caso di aggiungere qualche istruzione/blocco per gestire questo caso.
- La funzione realizzata funziona correttamente se il numero di cui calcolare il fattoriale è zero o uno? Ricordiamo che 0! = 1 e 1! = 1.
Quanti giorni sono 10! secondi?
Scrivete un programma che calcoli a quale numero di giorni corrisponde 10! secondi. Ovviamente, per calcolare 10! (il fattoriale di dieci), potete (dovete!) utilizzare la funzione che avete costruito nel compito precedente.
Attenzione! Non dovete modificare la funzione già realizzata in precedenza, ma usarla così com’è, richiamandola all’interno di un piccolo programma che utilizzerà il valore restituito per i propri scopi (calcolare quanti giorni sono 10!).
Può essere di aiuto il video che segue, che introduce alcuni concetti sulle funzioni nei linguaggi di programmazione in generale e in Blockly in particolare.
Il fattoriale dei primi n numeri naturali
Si tratta ora di calcolare il fattoriale dei primi n numeri naturali. In altre parole: realizzate un’applicazione che richiede all’utente un numero naturale n e risponde restituendo (mostrando a video) il fattoriale di tutti i numeri naturali da zero a n. Controllare, anche per questo secondo compito, i casi particolari (l’utente sceglie per “n” un numero negativo, …).
Si tratta della prima consegna senza una guida passo passo quindi avete un po’ di libertà e la possibilità di scegliere come operare. Una volta che tutto funziona, almeno nei casi standard, migliorate la funzione ottimizzando l’output fornito all’utente aggiungendo qualche funzionalità ulteriore, per esempio:
- ogni fattoriale mostrato accanto al corrispondente numero naturale di cui è il fattoriale con un output del tipo (2, 2), (3, 6), …
- tutti i fattoriali mostrati in un’unica finestra di dialogo, …
Questo programma potrebbe farvi incorrere in un particolare comportamento di Blockly che produce un errore, dovuto al generatore di codice e non a un vostro comportamento, piuttosto difficile da scoprire ma che è meglio conoscere. Se qualcosa non va e non riuscite a riconoscere l’errore, provate a leggere qui.