|
|||||||||||||||||||||||||||||||||||
ISBN számok felismeréseA manapság kiadott könyvek többségéhez hozzárendelnek egy kódot, amely egyértelműen azonosítja azokat. Az International Standard Book Number (ISBN) általában 10 decimális számjegy sorozata, de bizonyos esetekben az X nagybetű is előfordulhat tizedik számjegyként. A könnyebb olvashatóság kedvéért az ISBN számban bárhol állhatnak kötőjelek, más szerepük azonban nincs. Az alább látható példa input és példa output bemutat több érvényes és néhány érvénytelen ISBN számot. Valójában az ISBN számnak csak az első kilenc számjegyét használják a könyvek azonosítására. A tizedik számjegy azt a célt szolgálja, hogy ellenőrizze, hogy az előző kilenc számjegy helyes-e. Az ellenőrző szánjegyet úgy választják meg, hogy a következő algoritmussal kiszámított érték maradék nélkül osztható legyen 11-gyel. Mivel az ellenőrző számjegynek néha 10-nek kell lennie, hogy garantáljuk a 11-gyel való oszthatóságot, az ISBN tervezői egy speciális szimbólumot választottak ki a 10 jelölésére, ez lett az X. Az ISBN számot ellenőrző algoritmus viszonylag egyszerű. Az ISBN szám számjegyeiből két összeget (s1 és s2) számítunk ki. Az s1 az eddig vizsgált számjegyek összege, s2 pedig az eddig vizsgált számjegyekhez tartozó s1 értékek (részösszegek) összege. Az ISBN szám helyes, ha s2 utolsó értéke maradék nélkül osztható 11-gyel. Egy példa világossá teszi az eljárást. Tekintsük a (helyes) 0-13-162959-X ISBN számot, amely Tanenbaum Computer Networks című könyvének az ISBN száma. Lássuk először s1 kiszámítását:
Az s2 kiszámítása az s1 kiszámítása közben kapott részösszegek összegzésével történik:
Ezután ellenőrizhetjük az ISBN helyességét, megfigyelve, hogy a 165 valóban maradék nélkül osztható 11-gyel. A bemenet specifikációjaA feladat bemenete soronként egy karaktersorozatot tartalmaz, amelyet megelőzhetnek és/vagy követhetnek további szóköz karakterek. Egyik sorban sincs 80-nál több karakter, de a karaktersorozat tartalmazhat olyan karaktereket is, amelyek nem szerepelhetnek szabályos ISBN számban, valamint lehet hosszabb, illetve rövidebb is, mint a szükséges 10 számjegy. A kimenet specifikációjaA kimenetnek a bemenetről beolvasott karaktersorozatokat kell tartalmaznia soronként, valamint azt, hogy az adott karaktersorozat szabályos ISBN szám-e vagy sem. Példa bemenet
A példa bemenethez tartozó kimenet
|
|||||||||||||||||||||||||||||||||||
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01. |