Luhn test of credit card numbers: Difference between revisions
m
no edit summary
(Added Chipmunk Basic) |
mNo edit summary |
||
Line 1,379:
390 endif
400 next test</syntaxhighlight>
==={{header|IS-BASIC}}===▼
<syntaxhighlight lang="is-basic">100 PROGRAM "CredCard.bas"▼
110 DO▼
120 PRINT :PRINT "Credit card number:":INPUT PROMPT ">":CCN$▼
130 IF CCN$="" THEN EXIT DO▼
140 IF LUHN(TRIM$(CCN$)) THEN▼
150 PRINT "Card number is valid."▼
160 ELSE▼
170 SET #102:INK 3:PRINT "Card number is invalid.":SET #102:INK 1▼
180 END IF▼
190 LOOP▼
200 DEF LUHN(CCN$)▼
210 LET L=LEN(CCN$):LET S=0▼
220 FOR I=1 TO L▼
230 LET N=VAL(CCN$(L-I+1))▼
240 IF I BAND 1 THEN▼
250 LET S=S+N▼
260 ELSE▼
270 LET N=N*2:LET S=S+MOD(N,10)+INT(N/10)▼
280 END IF▼
290 NEXT▼
300 LET LUHN=MOD(S,10)=0▼
310 END DEF▼
320 DEF TRIM$(S$)▼
330 LET T$=""▼
340 FOR I=1 TO LEN(S$)▼
350 IF S$(I)>CHR$(47) AND S$(I)<CHR$(58) THEN LET T$=T$&S$(I)▼
360 NEXT▼
370 LET TRIM$=T$▼
380 END DEF</syntaxhighlight>▼
Output:▼
<pre>Credit card number:▼
>49927398716▼
Card number is valid.▼
Credit card number:▼
>49927398717▼
Card number is invalid.▼
Credit card number:▼
>1234 5678 1234 5678▼
Card number is invalid.▼
Credit card number:▼
>1234 5678 1234 5670▼
Card number is valid.</pre>▼
==={{header|QBasic}}===
Line 3,527 ⟶ 3,575:
1234567812345670 - valid
</pre>
▲=={{header|IS-BASIC}}==
▲<syntaxhighlight lang="is-basic">100 PROGRAM "CredCard.bas"
▲110 DO
▲120 PRINT :PRINT "Credit card number:":INPUT PROMPT ">":CCN$
▲130 IF CCN$="" THEN EXIT DO
▲140 IF LUHN(TRIM$(CCN$)) THEN
▲150 PRINT "Card number is valid."
▲160 ELSE
▲170 SET #102:INK 3:PRINT "Card number is invalid.":SET #102:INK 1
▲180 END IF
▲190 LOOP
▲200 DEF LUHN(CCN$)
▲210 LET L=LEN(CCN$):LET S=0
▲220 FOR I=1 TO L
▲230 LET N=VAL(CCN$(L-I+1))
▲240 IF I BAND 1 THEN
▲250 LET S=S+N
▲260 ELSE
▲270 LET N=N*2:LET S=S+MOD(N,10)+INT(N/10)
▲280 END IF
▲290 NEXT
▲300 LET LUHN=MOD(S,10)=0
▲310 END DEF
▲320 DEF TRIM$(S$)
▲330 LET T$=""
▲340 FOR I=1 TO LEN(S$)
▲350 IF S$(I)>CHR$(47) AND S$(I)<CHR$(58) THEN LET T$=T$&S$(I)
▲360 NEXT
▲370 LET TRIM$=T$
▲380 END DEF</syntaxhighlight>
▲Output:
▲<pre>Credit card number:
▲>49927398716
▲Card number is valid.
▲Credit card number:
▲>49927398717
▲Card number is invalid.
▲Credit card number:
▲>1234 5678 1234 5678
▲Card number is invalid.
▲Credit card number:
▲>1234 5678 1234 5670
▲Card number is valid.</pre>
=={{header|J}}==
|