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 3ec0cab (Tue, 28 Oct 2025 16:56:29 GMT)