Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
44
Task/Subleq/Delphi/subleq.delphi
Normal file
44
Task/Subleq/Delphi/subleq.delphi
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
program SubleqTest;
|
||||
|
||||
{$APPTYPE CONSOLE}
|
||||
|
||||
{$R *.res}
|
||||
|
||||
uses
|
||||
System.SysUtils;
|
||||
|
||||
var
|
||||
mem: array of Integer;
|
||||
instructionPointer: Integer;
|
||||
a, b: Integer;
|
||||
|
||||
begin
|
||||
mem := [15, 17, -1, 17, -1, -1, 16, 1, -1, 16, 3, -1, 15, 15, 0, 0, -1, 72,
|
||||
101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33, 10, 0];
|
||||
instructionPointer := 0;
|
||||
|
||||
repeat
|
||||
a := mem[instructionPointer];
|
||||
b := mem[instructionPointer + 1];
|
||||
|
||||
if a = -1 then
|
||||
begin
|
||||
read(mem[b]);
|
||||
end
|
||||
else if b = -1 then
|
||||
begin
|
||||
write(ansichar(mem[a]));
|
||||
end
|
||||
else
|
||||
begin
|
||||
mem[b] := mem[b] - mem[a];
|
||||
if (mem[b] < 1) then
|
||||
begin
|
||||
instructionPointer := mem[instructionPointer + 2];
|
||||
Continue;
|
||||
end;
|
||||
end;
|
||||
inc(instructionPointer, 3);
|
||||
until (instructionPointer >= length(mem)) or (instructionPointer < 0);
|
||||
readln;
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue