ISBN
ISBN in tekst en streepjescode.
ISBN in tekst en streepjescode.

Dit is een vervolg op ISBN - met lus1.

Indien $$x_1, \ldots, x_9$$ de eerste 9 cijfers van een ISBN-10 code voorstellen, dan kan het controlecijfer $$x_{10}$$ de waarden 0 tot en met 10 aannemen. De gebruikte formule is \[x_{10} = (x_1+ 2x_2+ 3x_3+ 4x_4+ 5x_5+ 6x_6+ 7x_7+ 8x_8+ 9x_9)\!\!\!\!\mod{11}\]

Opgave

Lees nu één ISBN-10 code in als 'string', en dus niet als 10 aparte getallen. Indien het controlegetal $$x_{10}$$ gelijk is aan het getal 10, wordt dit voorgesteld met de letter "X", zodat er ook maar 1 teken nodig is. De totale lengte van een ISBN-10 code is dus altijd 10. Bepaal in deze opgave of de ingelezen string een geldige ISBN-10 code voorstelt.
Je mag veronderstellen dat de invoer correct is.

De code "976360026X" is een geldige ISBN-10 code.

Invoer

Eén ISBN-10 code, die in één keer wordt ingelezen als string. Het laatste teken kan een "X" zijn, dit betekent dat het controlegetal gelijk is aan 10.

Uitvoer

Het woord "OK" bevat als de ISBN-10 code geldig is of het woord "FOUT" als de ISBN-10 code ongeldig is.

Voorbeeld 1

Ingelezen string is 9971502100
>>> main()
OK 

Voorbeeld 2

Ingelezen string is 9971502108
>>> main()
FOUT 

Voorbeeld 3

Ingelezen string is 976360026X
>>> main()
OK 

Tips

Wat is het verschil met de oefening uit hoofdstuk2? Een ISBN code wordt in deze oefening als string ingelezen, en dus niet als 10 aparte cijfers/getallen.
Hoe begin ik eraan?
  • Overloop de eerste negen cijfers uit de ISBN-code, en zet elk cijfer om naar een getal.
  • Bereken ondertussen de som.
  • Na de lus wordt het controlecijfer gecontroleerd.
Hoe geraak ik aan de getal-waarde van elk cijfer? Gebruik de functie int()
Wat als de laatste letter van de ISBN code 'X' is? het controle-getal is dan 10 - gebruik een if-else