21 lines
587 B
Text
21 lines
587 B
Text
Macro TestISBN13(X)
|
|
Print(X)
|
|
If IsISBN13(X) : PrintN(" good") : Else : PrintN(" bad") : EndIf
|
|
EndMacro
|
|
|
|
Procedure.b IsISBN13(ISBN13.s)
|
|
ISBN13=Left(ISBN13,3)+Mid(ISBN13,5)
|
|
If IsNAN(Val(ISBN13)) Or Len(ISBN13)<>13 : ProcedureReturn #False : EndIf
|
|
Dim ISBN.s{1}(12) : PokeS(@ISBN(),ISBN13)
|
|
For i=0 To 11 Step 2 : sum+Val(ISBN(i))+Val(ISBN(i+1))*3 : Next
|
|
sum+Val(ISBN(12))
|
|
ProcedureReturn Bool(sum%10=0)
|
|
EndProcedure
|
|
|
|
If OpenConsole()
|
|
TestISBN13("978-0596528126")
|
|
TestISBN13("978-0596528120")
|
|
TestISBN13("978-1788399081")
|
|
TestISBN13("978-1788399083")
|
|
Input()
|
|
EndIf
|