| |
|
|
 | KompilierenMarkierenSeparierenSource wurde am 30.08.2006 in die Babyklappe auf XProfan.Com abgelegt:
Diese Proc prüft, ob eine ISBN-Nummer valid ist.
Eine valide ISBN-Nummer ist z.B.: 0-672-31285-9.
Jede Zahl wird mit ihrer Position multipliziert.
Wenn das Ergebnis durch 11 teilbar ist, ist die Nummer valid: 0*10 + 6*9 + 7*8 + 2* 7 usw.
Da ich blutiger Anfänger bin wird das wohl viel eleganter zu lösen sein.Trotzdem.....
Declare Eingabe$,Ziffer%[10],Ergebnis%
Proc ISBN_Pruef
Let Eingabe$ = @Translate$(Eingabe$,-,)
WhileLoop 10
Ziffer%[&Loop] = @Val(@Mid$(Eingabe$,&Loop,1))
EndWhile
Let Ziffer%[1] = Ziffer%[1]*10
Let Ziffer%[2] = Ziffer%[2]*9
Let Ziffer%[3] = Ziffer%[3]*8
Let Ziffer%[4] = Ziffer%[4]*7
Let Ziffer%[5] = Ziffer%[5]*6
Let Ziffer%[6] = Ziffer%[6]*5
Let Ziffer%[7] = Ziffer%[7]*4
Let Ziffer%[8] = Ziffer%[8]*3
Let Ziffer%[9] = Ziffer%[9]*2
Let Ziffer%[10] = Ziffer%[10]*1
Let Ergebnis% = Ziffer%[1]+Ziffer%[2]+Ziffer%[3]+Ziffer%[4]+Ziffer%[5]+Ziffer%[6]+Ziffer%[7]+Ziffer%[8]+Ziffer%[9]+Ziffer%[10]
If (Ergebnis% mod 11 = 0)
Print richtige ISBN-Nummer
Else
Print ungültige ISBN-Nummer
EndIf
EndProc
CLS
Eingabe$ = @Input$(ISBN Nummer eingeben:, ISBN-Nummer prüfen, 0-6723-1285-9)
ISBN_Pruef
WaitInput
|
|
|
| |
|
|
|
 Jörg Sellmeyer | Mal ein bischen bearbeitet: -weniger Code -Ergebnis% durch Ergebnis! ersetzt, sonst gibt es bei Werten circa 1.4~Mrd Probleme. auf jeden Fall was dazugelernt circa ISBN-Nummern  KompilierenMarkierenSeparierenSource wurde am 30.08.2006 in die Babyklappe auf XProfan.Com abgelegt:
Diese Proc prüft, ob eine ISBN-Nummer valid ist.
Eine valide ISBN-Nummer ist z.B.: 0-672-31285-9.
Jede Zahl wird mit ihrer Position multipliziert.
Wenn das Ergebnis durch 11 teilbar ist, ist die Nummer valid: 0*10 + 6*9 + 7*8 + 2* 7 usw.
Da ich blutiger Anfänger bin wird das wohl viel eleganter zu lösen sein.Trotzdem.....
Declare Eingabe$,Ziffer%[10],Ergebnis!
Proc Isbn_pruef
Let Eingabe$ = @Translate$(Eingabe$,-,)
Whileloop 0,9
Ziffer%[&Loop] = @Val(@Mid$(Eingabe$,&Loop + 1,1))
Ziffer%[&Loop] = Ziffer%[&Loop] * &Loop + 1
Ergebnis!=Ergebnis! + Ziffer%[&Loop]
Endwhile
If (Ergebnis! Mod 11 = 0)
Print richtige ISBN-Nummer
Else
Print ungültige ISBN-Nummer
Endif
Endproc
Cls
Eingabe$ = @Input$(ISBN Nummer eingeben:, ISBN-Nummer prüfen, 0-6723-1285-9)
Isbn_pruef
Waitinput
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ...  | 30.08.2006 ▲ |
|
|
|