RosettaCodeData/Task/Damm-algorithm/FutureBasic/damm-algorithm.basic

32 lines
753 B
Plaintext

NSUInteger local fn Damm( string as CFStringRef )
mda(0,0) = {{0,3,1,7,5,9,8,6,4,2},
{7,0,9,2,1,5,4,8,6,3},{4,2,0,6,8,7,1,3,5,9},
{1,7,5,0,9,8,3,4,2,6},{6,1,2,3,0,4,5,9,7,8},
{3,6,7,4,2,0,9,5,8,1},{5,8,6,9,7,2,0,1,3,4},
{8,9,4,5,3,6,2,0,1,7},{9,4,3,8,6,1,7,2,0,5},
{2,5,8,1,4,3,6,7,9,0}}
NSUInteger i, colI, oldRowI = 0, newRowI
for i = 0 to len(string) - 1
colI = intval(string[i])
newRowI = mda(oldRowI,colI)
oldRowI = newRowI
next
end fn = newRowI
void local fn DoIt
CFArrayRef dta = @[@"5724",@"5727",@"112946",@"112949"]
for CFStringRef string in dta
print string;
if ( fn Damm( string ) == 0 )
print @" is valid"
else
print @" is invalid"
end if
next
end fn
fn DoIt
HandleEvents