Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
179
Task/Twelve-statements/Eiffel/twelve-statements.e
Normal file
179
Task/Twelve-statements/Eiffel/twelve-statements.e
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
class
|
||||
APPLICATION
|
||||
|
||||
create
|
||||
make
|
||||
|
||||
feature
|
||||
|
||||
make
|
||||
-- Possible solutions.
|
||||
do
|
||||
create s.make_filled (False, 1, 12)
|
||||
s [1] := True
|
||||
recurseAll (2)
|
||||
io.put_string (counter.out + " solution found. ")
|
||||
end
|
||||
|
||||
feature {NONE}
|
||||
|
||||
s: ARRAY [BOOLEAN]
|
||||
|
||||
check2: BOOLEAN
|
||||
-- Is statement 2 fulfilled?
|
||||
local
|
||||
count: INTEGER
|
||||
do
|
||||
across
|
||||
7 |..| 12 as c
|
||||
loop
|
||||
if s [c.item] then
|
||||
count := count + 1
|
||||
end
|
||||
end
|
||||
Result := s [2] = (count = 3)
|
||||
end
|
||||
|
||||
check3: BOOLEAN
|
||||
-- Is statement 3 fulfilled?
|
||||
local
|
||||
count, i: INTEGER
|
||||
do
|
||||
from
|
||||
i := 2
|
||||
until
|
||||
i > 12
|
||||
loop
|
||||
if s [i] then
|
||||
count := count + 1
|
||||
end
|
||||
i := i + 2
|
||||
end
|
||||
Result := s [3] = (count = 2)
|
||||
end
|
||||
|
||||
check4: BOOLEAN
|
||||
-- Is statement 4 fulfilled?
|
||||
do
|
||||
Result := s [4] = ((not s [5]) or (s [6] and s [7]))
|
||||
end
|
||||
|
||||
check5: BOOLEAN
|
||||
-- Is statement 5 fulfilled?
|
||||
do
|
||||
Result := s [5] = ((not s [2]) and (not s [3]) and (not s [4]))
|
||||
end
|
||||
|
||||
check6: BOOLEAN
|
||||
-- Is statement 6 fulfilled?
|
||||
local
|
||||
count, i: INTEGER
|
||||
do
|
||||
from
|
||||
i := 1
|
||||
until
|
||||
i > 11
|
||||
loop
|
||||
if s [i] then
|
||||
count := count + 1
|
||||
end
|
||||
i := i + 2
|
||||
end
|
||||
Result := s [6] = (count = 4)
|
||||
end
|
||||
|
||||
check7: BOOLEAN
|
||||
-- Is statement 7 fulfilled?
|
||||
do
|
||||
Result := s [7] = ((s [2] or s [3]) and not (s [2] and s [3]))
|
||||
end
|
||||
|
||||
check8: BOOLEAN
|
||||
-- Is statement 8 fulfilled?
|
||||
do
|
||||
Result := s [8] = (not s [7] or (s [5] and s [6]))
|
||||
end
|
||||
|
||||
check9: BOOLEAN
|
||||
-- Is statement 9 fulfilled?
|
||||
local
|
||||
count: INTEGER
|
||||
do
|
||||
across
|
||||
1 |..| 6 as c
|
||||
loop
|
||||
if s [c.item] then
|
||||
count := count + 1
|
||||
end
|
||||
end
|
||||
Result := s [9] = (count = 3)
|
||||
end
|
||||
|
||||
check10: BOOLEAN
|
||||
-- Is statement 10 fulfilled?
|
||||
do
|
||||
Result := s [10] = (s [11] and s [12])
|
||||
end
|
||||
|
||||
check11: BOOLEAN
|
||||
-- Is statement 11 fulfilled?
|
||||
local
|
||||
count: INTEGER
|
||||
do
|
||||
across
|
||||
7 |..| 9 as c
|
||||
loop
|
||||
if s [c.item] then
|
||||
count := count + 1
|
||||
end
|
||||
end
|
||||
Result := s [11] = (count = 1)
|
||||
end
|
||||
|
||||
check12: BOOLEAN
|
||||
-- Is statement 12 fulfilled?
|
||||
local
|
||||
count: INTEGER
|
||||
do
|
||||
across
|
||||
1 |..| 11 as c
|
||||
loop
|
||||
if s [c.item] then
|
||||
count := count + 1
|
||||
end
|
||||
end
|
||||
Result := (s [12] = (count = 4))
|
||||
end
|
||||
|
||||
counter: INTEGER
|
||||
|
||||
checkit
|
||||
-- Check if all statements are correctly solved.
|
||||
do
|
||||
if check2 and check3 and check4 and check5 and check6 and check7 and check8 and check9 and check10 and check11 and check12 then
|
||||
across
|
||||
1 |..| 12 as c
|
||||
loop
|
||||
if s [c.item] then
|
||||
io.put_string (c.item.out + "%T")
|
||||
end
|
||||
end
|
||||
io.new_line
|
||||
counter := counter + 1
|
||||
end
|
||||
end
|
||||
|
||||
recurseAll (k: INTEGER)
|
||||
-- All possible True and False combinations to check for a solution.
|
||||
do
|
||||
if k = 13 then
|
||||
checkit
|
||||
else
|
||||
s [k] := False
|
||||
recurseAll (k + 1)
|
||||
s [k] := True
|
||||
recurseAll (k + 1)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue