How to resolve the algorithm Damm algorithm step by step in the Action! programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Damm algorithm step by step in the Action! programming language
Table of Contents
Problem Statement
The Damm algorithm is a checksum algorithm which detects all single digit errors and adjacent transposition errors.
The algorithm is named after H. Michael Damm.
Verify the checksum, stored as last digit of an input.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Damm algorithm step by step in the Action! programming language
Source code in the action! programming language
BYTE FUNC Damm(CHAR ARRAY a)
BYTE ARRAY table=[
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]
BYTE i,x,c
x=0
FOR i=1 TO a(0)
DO
c=a(i)
IF c<'0 OR c>'9 THEN
RETURN (0)
FI
c==-'0
x=table(x*10+c)
OD
IF x=0 THEN
RETURN (1)
FI
RETURN (0)
PROC Test(CHAR ARRAY a)
BYTE i
Print(a) Print(" -> ")
IF Damm(a)=1 THEN
PrintE("valid")
ELSE
PrintE("invalid")
FI
RETURN
PROC Main()
Test("5724")
Test("5727")
Test("112946")
Test("112949")
RETURN
You may also check:How to resolve the algorithm Text processing/Max licenses in use step by step in the PowerShell programming language
You may also check:How to resolve the algorithm Van Eck sequence step by step in the Miranda programming language
You may also check:How to resolve the algorithm Accumulator factory step by step in the REBOL programming language
You may also check:How to resolve the algorithm Hailstone sequence step by step in the FunL programming language
You may also check:How to resolve the algorithm Apply a callback to an array step by step in the NGS programming language