ISBN Buchnummer und ihr Nachfolger, die Buch-EAN

Prof. Dr. Dörte Haftendorn MuPAD 4 Feb 07  https://mathe.web.leuphana.de

###############################################################

b:=[3,4,4,6,2,0,8,3,9,9];

math

 

bs:=b[i]*(11-i)$ i=1..10

math

_plus(bs), _plus(bs)/11

math

bs9:=_plus(bs)-b[10];

pz:=11-bs9 mod 11

math

math

prfIBSN:=if (bs9+b[10]) mod 11=0 then

        print("ISBN ist gültig")

   else print("Fehler") end_if;

"ISBN ist gültig"

 

+++++++++++++++++++++++++++++

Buch-EAN

Seit 2007 gibt es die alte ISBN nicht mehr, es wird 978 vorangestellt, dann

folgt die alte Buchnummer, die Prüfziffer entspricht nun aber der EAN.

Umrechnung unten mit der Funktion altToNeu

#####################################

nb:=[9,7,8,3,4,4,6,2,0,8,3,9,1]

math

nbs:=nb[i]*(2+(-1)^i)$ i=1..13

math

nbs12:=_plus(nbs)-nb[13]

math

prfEAN:=if (nbs12+nb[13]) mod 10=0 then

        print("EAN ist gültig")

   else print("Fehler") end_if

"EAN ist gültig"

 

978-3-446-20839-1

978-3-407-22153-7

----------------------

Hier wird gezeigt, dass man 7 und 2 vertauschen kann.

nb :=[9,7,8,3,4,0,7,2,2,1,5,3,7];

nb2:=[9,7,8,3,4,0,2,7,2,1,5,3,7]

math

math

nbs :=nb[i] *(2+(-1)^i)$ i=1..13;

nbs2:=nb2[i]*(2+(-1)^i)$ i=1..13;

math

math

nbs12 :=_plus(nbs )- nb[13];

nbs122:=_plus(nbs2)-nb2[13]

math

math

prfEAN :=if (nbs12+nb[13]) mod 10=0 then

        print("EAN ist gültig")

   else print("Fehler") end_if;

prfEAN2:=if (nbs122+nb2[13]) mod 10=0 then

        print("EAN ist gültig")

   else print("Fehler") end_if:

"EAN ist gültig"

"EAN ist gültig"

 

Die neue EAN-Buichnummer ist also nicht so gut wie die alte ISBN.

Ziffern, die sich um 5 unterscheiden kann man umbemerkt vertauschen.

(Überlegung von Hand)

-----------------------------

978-3-518-39865-4

 

nb:=[9,7,8,3,5,1,8,3,9,8,6,5,4]

math

nbs:=nb[i]*(2+(-1)^i)$ i=1..13

math

nbs12:=_plus(nbs)-nb[13]

math

prfEAN:=if (nbs12+nb[13]) mod 10=0 then

        print("EAN ist gültig")

   else print("Fehler") end_if

"EAN ist gültig"

 

--------------------------------

 

978-3-518-39865-4

 

nb:=[9,7,8,3,5,1,8,3,9,8,6,5,4]

math

nbs:=nb[i]*(2+(-1)^i)$ i=1..13

math

nbs12:=_plus(nbs)-nb[13]

math

prfEAN:=if (nbs12+nb[13]) mod 10=0 then

        print("EAN ist gültig")

   else print("Fehler") end_if

"EAN ist gültig"

 

--------------------------------

 

altToNeu:=proc(isbn)

            local i,nb,nbs,nbs12,pz;

            begin           

            bs:=isbn[i]*(11-i)$ i=1..10;

            bss:=_plus(bs);

            if bss mod 11<>0 then

               print("ISBN ist gar nicht gültig");

               end_if;

            nb:=[9,7,8].isbn;

            nbs:=nb[i]*(2+(-1)^i)$ i=1..12;

            nbs12:=_plus(nbs):

            pz:=10-nbs12 mod 10;

            nb[13]:=pz;

            return(nb);

          end_proc:       

 

altToNeu([3,5,2,8,4,6,5,5,2,2]);

math