mirror of
https://github.com/anatolykopyl/term-paper-tes.git
synced 2026-03-26 12:54:38 +00:00
Initial commit
This commit is contained in:
38
coder.lua
Normal file
38
coder.lua
Normal file
@@ -0,0 +1,38 @@
|
||||
input_code = {1, 0, 1, 1, 1, 1, 0, 0, 1}
|
||||
|
||||
-- Logical sum
|
||||
function m2s(a, b)
|
||||
if a+b == 2 then
|
||||
return 0
|
||||
else
|
||||
return a+b
|
||||
end
|
||||
end
|
||||
|
||||
function coder(input_code, verbose)
|
||||
register = {0, 0, 0}
|
||||
result = {}
|
||||
states = {}
|
||||
|
||||
for i, code_digit in ipairs(input_code) do
|
||||
register[#register+1] = code_digit
|
||||
state = register[#register-1]..register[#register-2]
|
||||
if verbose then
|
||||
print(i..'-ое состояние - '..state)
|
||||
end
|
||||
states[#states + 1] = state
|
||||
|
||||
result1 = m2s(m2s(register[#register], register[#register-1]), register[#register-2])
|
||||
result2 = m2s(register[#register], register[#register-2])
|
||||
|
||||
result[#result+1] = result1..result2
|
||||
end
|
||||
|
||||
return result, states
|
||||
end
|
||||
|
||||
result, states = coder(input_code)
|
||||
|
||||
for _, v in ipairs(states) do print(v..' ') end
|
||||
print('Код на выходе кодера:')
|
||||
for _, v in ipairs(result) do io.write(v..' ') end
|
||||
Reference in New Issue
Block a user