40 lines
804 B
Text
40 lines
804 B
Text
string 0; \use zero-terminated strings
|
|
|
|
func CheckDigit(Str); \Return the check digit for a SEDOL
|
|
char Str;
|
|
int Sum, I, C, V;
|
|
[Sum:= 0;
|
|
for I:= 0 to 6-1 do
|
|
[C:= Str(I);
|
|
case of
|
|
C>=^0 & C<=^9: V:= C-^0;
|
|
C>=^A & C<=^Z: V:= C-^A+10
|
|
other V:= -1;
|
|
case I of
|
|
1, 4: V:= V*3;
|
|
3: V:= V*7;
|
|
5: V:= V*9
|
|
other [];
|
|
Sum:= Sum+V;
|
|
];
|
|
return rem( (10 - rem(Sum/10)) / 10 ) + ^0;
|
|
];
|
|
|
|
int Sedol, N;
|
|
[Sedol:= ["710889",
|
|
"B0YBKJ",
|
|
"406566",
|
|
"B0YBLH",
|
|
"228276",
|
|
"B0YBKL",
|
|
"557910",
|
|
"B0YBKR",
|
|
"585284",
|
|
"B0YBKT",
|
|
"B00030"];
|
|
for N:= 0 to 11-1 do
|
|
[Text(0, Sedol(N));
|
|
ChOut(0, CheckDigit(Sedol(N)));
|
|
CrLf(0);
|
|
];
|
|
]
|