In deze oefening maken we een correcte streepjescode voor een artikel met 11 cijfers.
Een correcte streepjescode begint met een Startcode “101”, daarna zes blokjes van 7 streepjes, daarna de Middencode “01010”, daarna terug zes blokjes van 7 streepjes en tot slot de Eind-code “101”.
De zeven streepjes in elk (L)inker en (R)-rechter blokje stellen een bepaald cijfer voor, zie https://nl.wikipedia.org/wiki/Universal_Product_Code1. De volgende 10 blokjes worden gebruikt:
Merk op: de R(echter)-codes zijn het complement van de L(inker)-codes (dus 1 wordt 0 en 0 wordt 1)
Schrijf een hulpfunctie complement(code)
die de complementaire bitstring teruggeeft (1 wordt 0 en 0 wordt 1). Je mag veronderstellen dat de paramater code
een bitstring is.
Schrijf de functie get_upc(artikelnummer)
die de correcte streepjescode aanmaakt voor het 11-cijferig artikelnummer
. De parameter is een string met exact 11 cijfers (moet je niet controleren).
Gebruik hierbij de lijst:
cijfers= ["0001101","0011001", "0010011", "0111101", "0100011", "0110001", "0101111", "0111011", "0110111", "0001011"]
Gebruik ook de functie get_controle(artikelnummer)
uit vorige opgave.
>>> complement("011011")
"100100"
Voor het artikelnummer “03600029145” is het controlegetal 2 .
Bepaal de zes L-blokjes:
0 -> "0001101" 3 -> "0111101" 6 -> "0101111" 0 -> "0001101" 0 -> "0001101" 0 -> "0001101"
En de zes R-blokjes
2 -> "1101100" 9 -> "1110100" 1 -> "1100110" 4 -> "1011100" 5 -> "1001110" 2 -> "1101100"
Voeg nu S, M en E toe en je bekomt de streepjescode:
>>> get_upc("03600029145")
"10100011010111101010111100011010001101000110101010110110011101001100110101110010011101101100101"