Binnen het ISBN-13 (International Standard Book Numbering1) systeem krijgt elk boek een unieke code toegewezen die bestaat uit exact 13 cijfers. De eerste 12 daarvan geven informatie over het boek zelf, terwijl het laatste louter een controlecijfer is dat dient om foutieve ISBN-13 codes te detecteren.
Een ISBN nummer begint ofwel met 978, ofwel 979. Indien \(x_1, \dots, x_{12}\) de eerste 12 cijfers van een ISBN-13 code voorstellen, dan wordt het controlecijfer \(x_{13}\) als volgt berekend:
\[ o = x_1+x_3+x_5+x_7+x_9+x_{11} \] \[ e = x_2+x_4+x_6+x_8+x_{10}+x_{12} \newline \] \[ x_{13} = (10−(o+3*e) \mod 10 ) \mod 10 \]
Het controlecijfer \(x_{13}\) kan m.a.w. de waarden 0 tot en met 9 aannemen, waardoor ISBN-13 codes uitsluitend uit cijfers bestaan.
Schrijf een programma dat de gebruiker vraagt om een ISBN-13 nummer in te vullen. Vervolgens moet je programma controleren of dit geldig is, conform bovenstaande definitie van een ISBN. Hierna vraagt je programma opnieuw om een ISBN, net zolang tot de gebruiker STOP
ingeeft. Baseer je op onderstaande voorbeelduitvoering.
Hieronder volgt een voorbeelduitvoering van de opgave. De tekst in het rood stelt invoer van de gebruiker voor en wordt logischerwijs niet uitgeprint door je programma.
Geef een ISBN-nummer in om te controleren, of STOP om te stoppen. 9780134462035 "9780134462035" is een geldig ISBN. Geef een ISBN-nummer in om te controleren, of STOP om te stoppen. 9780134462034 "9780134462034" is een ongeldig ISBN. Geef een ISBN-nummer in om te controleren, of STOP om te stoppen. 9685034125034 "9685034125034" is een ongeldig ISBN. Geef een ISBN-nummer in om te controleren, of STOP om te stoppen. STOP
int
gelijk is aan \([-2147483648,2147483647]\), kan je dit niet als een int
inlezen. Het is wel mogelijk om dit als een long
of als een String
in te lezen.