Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
53
Task/Damm-algorithm/Pascal/damm-algorithm.pas
Normal file
53
Task/Damm-algorithm/Pascal/damm-algorithm.pas
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
program DammAlgorithm;
|
||||
uses
|
||||
sysutils;
|
||||
|
||||
TYPE TA = ARRAY[0..9,0..9] OF UInt8;
|
||||
CONST table : TA =
|
||||
((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));
|
||||
|
||||
function Damm(s : string) : BOOLEAN;
|
||||
VAR
|
||||
interim,i : UInt8;
|
||||
BEGIN
|
||||
interim := 0;
|
||||
i := 1;
|
||||
WHILE i <= length(s) DO
|
||||
Begin
|
||||
interim := table[interim,ORD(s[i])-ORD('0')];
|
||||
INC(i);
|
||||
END;
|
||||
Damm := interim=0;
|
||||
END;
|
||||
|
||||
PROCEDURE Print(number : Uint32);
|
||||
VAR
|
||||
isValid : BOOLEAN;
|
||||
buf :string;
|
||||
BEGIN
|
||||
buf := IntToStr(number);
|
||||
isValid := Damm(buf);
|
||||
Write(buf);
|
||||
IF isValid THEN
|
||||
Write(' is valid')
|
||||
ELSE
|
||||
Write(' is invalid');
|
||||
WriteLn;
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
Print(5724);
|
||||
Print(5727);
|
||||
Print(112946);
|
||||
Print(112949);
|
||||
Readln;
|
||||
END.
|
||||
Loading…
Add table
Add a link
Reference in a new issue