Menu Chiudi

Blockly: le matrici

Il generatore di codice Blockly messo a disposizione da Google non ha blocchi per la gestione delle matrici. Almeno un paio di volte, nel corso delle attività di questo progetto, invece abbiamo avuto la necessità di gestire matrici e tabelle (vedi, per esempio, Allineamento LIDAR o i laboratori relativi a Topologia e teoria dei grafi).

Per affrontare quei laboratori è stata realizzata (e migliorata nel corso degli anni) una libreria di blocchi adatta proprio a questo scopo. La libreria si può scaricare dalla pagina Download o direttamente seguendo questo collegamento (come di consueto per Blockly è un file in formato XML).

Una matrice è implementata come una lista di liste, ogni elemento della lista principale è a sua volta una lista che racchiude tutti gli elementi di una riga secondo lo schema che segue:

Ogni riga della matrice è una lista, gli elementi di questa lista sono gli elementi della riga, in ordine di indice. Le righe sono raccolte a loro volta in una lista che costituisce la matrice.

La libreria

CreaMatrice

CreaMatrice(c, r)

Crea una matrice di c colonne e r righe (valori interi positivi). Restituisce una lista (di liste).

CreaMatriceCasuale

CreaMatriceCasuale(c, r, min, max)

Crea una matrice di c colonne e r righe (valori interi positivi) assegnando a ogni elemento della matrice un valore intero compreso tra min e max (valori interi). Restituisce uanlista (di liste).

Usa ScriviElementoMatrice(m, c, r, valore).

ColonneMatrice, RigheMatrice

ColonneMatrice(m)
RigheMatrice(m)

Determina il numero delle colonne (delle righe) della matrice m (una lista) e lo restituisce (un valore intero).

ScriviElementoMatrice

ScriviElementoMatrice(m. c, r, valore)

Inserisce il valore specificato (di tipo qualsiasi) nell’elemento di colonna c e riga r (valori interi positivi) della matrice m (una lista). Non restituisce alcun valore. Se la colonna o la riga sono fuori dall’intervallo per la matrice specificata non inserisce nessun valore (ma non fornisce nessun messaggio di avviso).

Usa ColonneMatrice(m) e RigheMatrice(m).

LeggiElementoMatrice

LeggiElementoMatrice(m, c, r)

Ricava il valore dell’elemento di colonna c e riga r (due valori interi positivi) della matrice m (una lista). Restituisce il valore della cella specificata nella matrice, se la colonna o la riga sono fuori dall’intervallo consentito per la matrice specificata restituisce infinito.

Usa ColonneMatrice(m) e RigheMatrice(m).

DistanzaMatrice

DistanzaMatrice(m, x1, y1, x2, y2)

Calcola la distanza tra le celle (gli elementi) rispettivamente di posto (x1, y1) – colonna, riga – e di posto (x2, y2) – colonna riga. Restituisce un valore reale che rappresenta la distanza cartesiana tra i due elementi, se una delle colonne o delle righe sono fuori dall’intervallo consentito per la matrice specificata restituisce infinito.

Usa ColonneMatrice(m) e RigheMatrice(m).

TestoMatrice

TestoMatrice(m)

Converte il contenuto della matrice m in una stringa di testo in cui ogni elemento (il contenuto di ogni cella) è separato da virgole, ogni riga è racchiusa tra parentesi quadre e, infine, l’intera matrice è contenuta anch’essa in una coppia di parentesi quadre.

Articoli correlati