Queue/Definition: Difference between revisions
m
Order of sections.
Drkameleon (talk | contribs) (fixed implementation to correspond with original problem) |
m (Order of sections.) |
||
Line 1,854:
</pre>
=={{header|BASIC}}==▼
==={{header|BBC BASIC}}===▼
{{works with|BBC BASIC for Windows}}▼
<syntaxhighlight lang="bbcbasic"> FIFOSIZE = 1000▼
FOR n = 3 TO 5▼
PRINT "Push ";n : PROCenqueue(n)▼
NEXT▼
PRINT "Pop " ; FNdequeue▼
PRINT "Push 6" : PROCenqueue(6)▼
REPEAT▼
PRINT "Pop " ; FNdequeue▼
UNTIL FNisempty▼
PRINT "Pop " ; FNdequeue▼
END▼
DEF PROCenqueue(n) : LOCAL f%▼
DEF FNdequeue : LOCAL f% : f% = 1▼
DEF FNisempty : LOCAL f% : f% = 2▼
PRIVATE fifo(), rptr%, wptr%▼
DIM fifo(FIFOSIZE-1)▼
CASE f% OF▼
WHEN 0:▼
wptr% = (wptr% + 1) MOD FIFOSIZE▼
IF rptr% = wptr% ERROR 100, "Error: queue overflowed"▼
fifo(wptr%) = n▼
WHEN 1:▼
IF rptr% = wptr% ERROR 101, "Error: queue empty"▼
rptr% = (rptr% + 1) MOD FIFOSIZE▼
= fifo(rptr%)▼
WHEN 2:▼
= (rptr% = wptr%)▼
ENDCASE▼
ENDPROC</syntaxhighlight>▼
{{out}}▼
<pre>▼
Push 3▼
Push 4▼
Push 5▼
Pop 3▼
Push 6▼
Pop 4▼
Pop 5▼
Pop 6▼
Pop▼
Error: queue empty▼
</pre>▼
=={{header|Batch File}}==
Line 1,931 ⟶ 1,978:
exit /b 0
</syntaxhighlight>
▲=={{header|BASIC}}==
▲==={{header|BBC BASIC}}===
▲{{works with|BBC BASIC for Windows}}
▲<syntaxhighlight lang="bbcbasic"> FIFOSIZE = 1000
▲ FOR n = 3 TO 5
▲ PRINT "Push ";n : PROCenqueue(n)
▲ NEXT
▲ PRINT "Pop " ; FNdequeue
▲ PRINT "Push 6" : PROCenqueue(6)
▲ REPEAT
▲ PRINT "Pop " ; FNdequeue
▲ UNTIL FNisempty
▲ PRINT "Pop " ; FNdequeue
▲ END
▲ DEF PROCenqueue(n) : LOCAL f%
▲ DEF FNdequeue : LOCAL f% : f% = 1
▲ DEF FNisempty : LOCAL f% : f% = 2
▲ PRIVATE fifo(), rptr%, wptr%
▲ DIM fifo(FIFOSIZE-1)
▲ CASE f% OF
▲ WHEN 0:
▲ wptr% = (wptr% + 1) MOD FIFOSIZE
▲ IF rptr% = wptr% ERROR 100, "Error: queue overflowed"
▲ fifo(wptr%) = n
▲ WHEN 1:
▲ IF rptr% = wptr% ERROR 101, "Error: queue empty"
▲ rptr% = (rptr% + 1) MOD FIFOSIZE
▲ = fifo(rptr%)
▲ WHEN 2:
▲ = (rptr% = wptr%)
▲ ENDCASE
▲ ENDPROC</syntaxhighlight>
▲{{out}}
▲<pre>
▲Push 3
▲Push 4
▲Push 5
▲Pop 3
▲Push 6
▲Pop 4
▲Pop 5
▲Pop 6
▲Pop
▲Error: queue empty
▲</pre>
=={{header|BQN}}==
|