Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
40
Task/Subleq/Modula-2/subleq.mod2
Normal file
40
Task/Subleq/Modula-2/subleq.mod2
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
MODULE Subleq;
|
||||
FROM Terminal IMPORT Write,WriteString,WriteLn,ReadChar;
|
||||
|
||||
TYPE MEMORY = ARRAY[0..31] OF INTEGER;
|
||||
VAR
|
||||
mem : MEMORY;
|
||||
ip,a,b : INTEGER;
|
||||
ch : CHAR;
|
||||
BEGIN
|
||||
mem := MEMORY{
|
||||
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
|
||||
};
|
||||
|
||||
ip := 0;
|
||||
REPEAT
|
||||
a := mem[ip];
|
||||
b := mem[ip+1];
|
||||
|
||||
IF a = -1 THEN
|
||||
ch := ReadChar();
|
||||
mem[b] := ORD(ch);
|
||||
ELSIF b = -1 THEN
|
||||
Write(CHR(mem[a]));
|
||||
ELSE
|
||||
DEC(mem[b],mem[a]);
|
||||
IF mem[b] < 1 THEN
|
||||
ip := mem[ip+2];
|
||||
CONTINUE
|
||||
END
|
||||
END;
|
||||
|
||||
INC(ip,3)
|
||||
UNTIL ip < 0;
|
||||
WriteLn;
|
||||
|
||||
ReadChar
|
||||
END Subleq.
|
||||
Loading…
Add table
Add a link
Reference in a new issue