Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
63
Task/CUSIP/FreeBASIC/cusip.basic
Normal file
63
Task/CUSIP/FreeBASIC/cusip.basic
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
' version 04-04-2017
|
||||
' compile with: fbc -s console
|
||||
|
||||
sub cusip(input_str As String)
|
||||
|
||||
Print input_str;
|
||||
If Len(input_str) <> 9 Then
|
||||
Print " length is incorrect, invalid cusip"
|
||||
Return
|
||||
End If
|
||||
|
||||
Dim As Long i, v , sum
|
||||
Dim As UByte x
|
||||
|
||||
For i = 1 To 8
|
||||
x = input_str[i-1]
|
||||
Select Case x
|
||||
Case Asc("0") To Asc("9")
|
||||
v = x - Asc("0")
|
||||
Case Asc("A") To Asc("Z")
|
||||
v = x - Asc("A") + 1 + 9
|
||||
Case Asc("*")
|
||||
v= 36
|
||||
Case Asc("@")
|
||||
v = 37
|
||||
Case Asc("#")
|
||||
v = 38
|
||||
Case Else
|
||||
Print " found a invalid character, invalid cusip"
|
||||
return
|
||||
End Select
|
||||
|
||||
If (i And 1) = 0 Then v = v * 2
|
||||
sum = sum + v \ 10 + v Mod 10
|
||||
Next
|
||||
|
||||
sum = (10 - (sum Mod 10)) Mod 10
|
||||
If sum = (input_str[8] - Asc("0")) Then
|
||||
Print " is valid"
|
||||
Else
|
||||
Print " is invalid"
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
' ------=< MAIN >=------
|
||||
|
||||
Data "037833100", "17275R102", "38259P508"
|
||||
Data "594918104", "68389X106", "68389X105"
|
||||
|
||||
Dim As String input_str
|
||||
|
||||
Print
|
||||
For i As Integer = 1 To 6
|
||||
Read input_str
|
||||
cusip(input_str)
|
||||
Next
|
||||
|
||||
' empty keyboard buffer
|
||||
While InKey <> "" : Wend
|
||||
Print : Print "hit any key to end program"
|
||||
Sleep
|
||||
End
|
||||
Loading…
Add table
Add a link
Reference in a new issue