back to top

I Control Blocks di MIT App Inventor

Nel corso di questa lezione prenderemo confidenza con alcuni elementi di grande utilità per la progettazione delle nostre app: in particolare, approfondiremo la nostra conoscenza della categoria Control del pannello Blocks (accessibile dalla scheda Blocks della schermata iniziale). Ci concentreremo cioè sui principali Control blocks.

Per chiarezza espositiva andremo a distinguere i control block che ci accingiamo a esaminare in tre gruppi: controllo di flusso, cicli, controllo dell’applicazione.

Controllo di flusso

I control block che classifichiamo in questa categoria consentono fondamentalmente di operare una scelta circa il comportamento da tenere, in funzione di particolari condizioni. In sostanza, ci permettono, ad esempio di definire come l’app deve comportarsi in una forma del tipo: "se la condizione X è verificata esegui il blocco Y di istruzioni". Questo è esattamente il significato del blocco if, riportato nella figura sottostante.

Blocco if

Il blocco if-else riportato nella figura in basso è leggermente più elaborato e potrebbe suonare come: "se la condizione X è verificata esegui il blocco Y di istruzioni, altrimenti esegui il blocco Z".

Blocco if-else

Il blocco più elaborato per quanto riguarda il controllo di flusso, è il blocco choose (v. figura in basso). La differenza rispetto al blocco if-else consiste ne fatto che, oltre a poter scegliere quale tra i due blocchi di istruzioni eseguire (a seconda del valore della condizione, vera o falsa), il blocco restituisce un valore (ad esempio un numero intero). Il valore restituito è diverso a seconda che sia stato eseguito il blocco di istruzioni 1 o il blocco di istruzioni 2, identificando quindi qual è stato il percorso del programma fino a quel momento. Tale valore può essere usato a sua volta, ad esempio, come input per altri control blocks.

Blocco choose

Cicli

I control block che raggruppiamo nella categoria cicli sono utili per rappresentare in modo opportuno e conveniente l’esecuzione di operazioni ripetitive. Conviene infatti in tal caso raggruppare l’insieme delle operazioni da ripetere proprio all’interno di un ciclo. Se il numero delle ripetizioni da eseguire è noto, ci serviremo del blocco for range (v. figura in basso). In questo caso definiremo una variabile (variable) che svolge il ruolo di contatore: il conteggio parte da un valore iniziale (start) e viene incrementata a ogni esecuzione del ciclo (detta anche iterazione) di un valore di incremento fissato (step). Il ciclo continua a essere eseguito fino a che il valore della variabile contatore non raggiunge o supera una soglia (end). Specificando, ad esempio 1 come valore di start e di step e 10 come valore per end, il ciclo viene eseguito 10 volte.

Blocco for range

Il blocco while, che possiamo osservare nella figura sottostante, ci sarà utile invece nei casi in cui il numero delle ripetizioni del ciclo non sia prefissato. Il ciclo verrà ripetuto fino a che una determinata condizione (test) è verificata.

Blocco while

Il ciclo di tipo foreach ci tornerà utile qualora avessimo bisogno, per la nostra app di costruire strutture dati per ospitare informazioni di interesse. In particolare, il ciclo foreach, è adatto a operare su liste di dati, consentendo di eseguire le operazioni indicate nel ciclo su ogni elemento che fa parte della lista.

Blocco foreach

Controllo dell’applicazione

Ci serviremo di questi control blocks per regolare il comportamento dell’app. In particolare, il blocco open another screen, mostrato nella figura sottostante, ci consentirà di aprire un’altra schermata da dedicare alla nostra app.

Blocco open another screen

Per chiudere la schermata corrente, potremo servirci del blocco close screen, che vediamo nella figura sottostante.

Blocco close screen

Infine il blocco close application ci permette di terminare l’esecuzione della app.

Blocco close application
Pubblicitร