100 doors: Difference between revisions

Added OmniMark - basic and optimised versions
(Added OmniMark - basic and optimised versions)
 
Line 9,508:
<pre>
100th doors: (1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
</pre>
 
=={{header|OmniMark}}==
 
<syntaxhighlight lang="omnimark">
process
local switch doors size 100 ; all initialised ('1st pass' to false)
 
repeat over doors
repeat for integer door from #item to 100 by #item
do when doors[door] = false
activate doors[door] ; illustrating alternative to set ... to
else
set doors[door] to false
done
again
again
 
repeat over doors
do when doors = true
put #error '%d(#item)%n'
done
again
</syntaxhighlight>
 
{{out}}
<pre>
1
4
9
16
25
36
49
64
81
100
</pre>
 
'''Optimised version.'''
 
<syntaxhighlight lang="omnimark">
process
local integer door initial {1}
local integer step initial {3}
 
repeat
output "Door %d(door) is open%n"
increment door by step
increment step by 2
exit when door > 100
again
</syntaxhighlight>
 
{{out}}
<pre>
Door 1 is open
Door 4 is open
Door 9 is open
Door 16 is open
Door 25 is open
Door 36 is open
Door 49 is open
Door 64 is open
Door 81 is open
Door 100 is open
</pre>
 
16

edits