50904 / PythonYmparisto

Esimerkkejä Python-ympäristön asetuksista
0 stars 0 forks source link

Viivakoodi 128B -moduuli #20

Closed 50904 closed 5 hours ago

50904 commented 1 day ago

Sovellukseen tarvitaan moduuli, joka tuottaa henkilötunnuksen viivakoodin. Viivakoodin tulostamiseen käytetään Google Fonts - kirjastosta löytyvää Code 128 fonttia. Viivakoodin muodostamiseen tarvitaan

  1. Alkumerkki
  2. Loppumerkki
  3. Varmistussumma

Viivakoodi128B drawio

Alkumerkkinä käytetään ASCII-merkkiä 204 (104 + 100) Loppumerkkinä käytettään ASCII-merkkinä 206 (106 + 100)

Varmistussumma lasketaan siten, että merkkien järjestysnumerolla kerrotaan merkin ASCII-arvo, josta on vähennetty 32. Tulot lasketaan yhteen ja siihen lisätään vielä alkumerkin ASCII-arvo (104). Varmistussumma on modulo 103.

Esimerkin tapauksessa summaksi tulee 1x17 + 2x18 + 3x24 + 4x34 + 104 = 365. Tästä otetaan jakojäännös 103:lla jaettaessa 365 mod 103 = 56 Kun siihen lisätää 32 saadaan ASCII-arvo 88, joka on merkkinä X

Kuvan esimerkissä varmistussumma lasketaan seuraavasti

Linkkejä koodiesimerkkieihin:

https://www.w3schools.com/python/ref_func_chr.asp https://www.w3schools.com/python/ref_func_ascii.asp https://www.w3schools.com/python/ref_func_ord.asp

50904 commented 5 hours ago

Tehty ja testattu