At My Fingertips
Osserva attentamente questa immagine: probabilmente ne hai viste di simili molte volte. Cosa noti? Cosa ti chiedi?
È legittimo domandarsi se esiste una qualche relazione tra i numeri e le barre. In realtà, sono semplicemente due modi diversi per rappresentare lo stesso dato.
Esistono numerosi standard mondiali per identificare univocamente i prodotti in commercio. Uno di questi standard è il GTIN.
Ne esistono diverse varianti, tra cui il GTIN-12 è tra le più diffuse: senza troppa sorpresa, prevede di identificare ogni prodotto univocamente con un numero a 12 cifre (che a sua volta ha una certa struttura, con alcune cifre che identificano il produttore e altre il prodotto specifico, ma qui non ci addentriamo nei dettagli).
Il codice a barre mostrato sopra contiene in effetti il GTIN-12 due volte: nella parte inferiore le cifre sono scritte in modo che siano facilmente leggibili da un umano ("human-readable"), mentre nella parte superiore sono codificate con un alternarsi di barre e spazi in modo da essere facilmente leggibili da una macchina ("machine-readable").
Il formato di codifica delle barre mostrato sopra usa lo standard UPC (Universal Product Code), nella sua variante UPC-A, che è appunto in grado di rappresentare un numero a 12 cifre.
Questo formato definisce semplicemente una struttura composta da 95 moduli. Un modulo è ciascuna delle strisce verticali, che sono separate da una linea rossa nella figura seguente, riempita di nero (quello che colloquialmente chiamiamo "barra") o bianco (lo "spazio").
Possiamo raggruppare i moduli nei seguenti gruppi:
Prima di addentrarci nella codifica delle singole cifre, prova a creare il gruppo "start" semplicemente mettendo tre rettangoli uno accanto all'altro:
Per semplicità, iniziamo a codificare le prime sei cifre (per intenderci, quelle di sinistra, comprese tra il gruppo iniziale e quello centrale).
Ogni cifra è rappresentata usando 7 moduli.
La cifra 0, ad esempio, è rappresentata con la sequenza spazio-spazio-spazio-barra-barra-spazio-barra.
Possiamo per comodità identificare lo spazio con il valore booleano False
e la barra con il valore True
.
Consultando lo standard, possiamo creare una lista dove l'elemento in posizione i
indica la codifica della cifra i
,
rappresentata con una lista di 7 valori booleani.
Implementa una funzione che crei la grafica corrispondente alla cifra data,
affiancando opportunamente 7 moduli
(ricorda che puoi chiamare la funzione modulo
definita sopra).
Non preoccuparti per ora di gestire il caso in cui sinistra
sia False
:
ci occuperemo a breve della parte destra.
Le seconde sei cifre, a destra della parte centrale, sono codificate invertendo i ruoli di barra e spazio: la cifra 0, ad esempio, è rappresentata con la sequenza barra-barra-barra-spazio-spazio-barra-spazio (esattamente l'opposto della codifica per la parte sinistra).
Estendi l'implementazione della funzione che hai appena definito per gestire anche il caso in cui sinistra
sia False
.
Possiamo ora creare l'intero codice a barre, affiancando i gruppi di moduli come descritto sopra nell'elenco puntato.
Puoi verificare che il codice a barre "funziona davvero" inquadrandolo con il tuo smartphone e un'applicazione che legga i codici a barre (ne puoi trovare di gratuite sui vari store per le applicazioni).
This activity has been created by LuCE Research Lab and is licensed under CC BY-SA 4.0.
Codice a barre
PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI
Privacy Policy • Platform Version b744b47 (Tue, 08 Oct 2024 16:30:14 GMT)