Tot slot wordt de controle van een streepjescode afgewerkt.

Streepjescode

Herneem de logische functie is_geldig_upc(upc) uit Universal Product Code - vervolg1

De twee eerste controles (lengte en de structuur SLLLLLLMRRRRRRE) blijven behouden. De derde controle wordt verder uitgewerkt:

Gebruik hierbij functies uit de vorige oefeningen en de lijst:

cijfers= ["0001101","0011001", "0010011", "0111101", "0100011", "0110001", "0101111", "0111011", "0110111", "0001011"]

Voorbeeld

De S, M en E zijn juist toegevoegd in de UPC-code “10101110110110111000101101011110100011011101101010101000010010001001110101000010001001100110101

Er zijn zes L-blokjes:

"0111011" ->  7
"0110111" ->  8
"0001011" ->  9
"0101111" ->  6
"0100011" ->  4
"0111011" ->  7 

En zijn zes R-blokjes:

"1010000" ->  6
"1001000" ->  8
"1001110" ->  5
"1010000" ->  6
"1000100" ->  7
"1100110" ->  1

Het artikelnummer is dus “78964768567” en het controlegetal is “1”.

Reken na: 7 + 9 + 4 + 6 + 5 + 7 = 38 en 8 + 6 + 7 + 8 + 6 + 1 = 36

En 36 + 3*38 = 150 is deelbaar door 10

>>> is_geldig_upc("10101110110110111000101101011110100011011101101010101000010010001001110101000010001001100110101")
True