Sierpinski triangle: Difference between revisions
Content added Content deleted
(Updated to work with Nim 1.4: replaced ".. <" with "<..". Added output.) |
Not a robot (talk | contribs) (Add PL/M) |
||
Line 3,399: | Line 3,399: | ||
end sierpinski;</lang> |
end sierpinski;</lang> |
||
=={{header|PL/M}}== |
|||
<lang plm>100H: |
|||
DECLARE ORDER LITERALLY '4'; |
|||
/* CP/M BDOS CALL */ |
|||
BDOS: PROCEDURE (FN, ARG); |
|||
DECLARE FN BYTE, ARG ADDRESS; |
|||
GO TO 5; |
|||
END BDOS; |
|||
PUT$CHAR: PROCEDURE (CHAR); |
|||
DECLARE CHAR BYTE; |
|||
CALL BDOS(2, CHAR); |
|||
END PUT$CHAR; |
|||
/* PRINT SIERPINSKI TRIANGLE */ |
|||
DECLARE (X, Y, SIZE) BYTE; |
|||
SIZE = SHL(1, ORDER); |
|||
Y = SIZE - 1; |
|||
DO WHILE Y <> -1; |
|||
DO X = 0 TO Y; |
|||
CALL PUT$CHAR(' '); |
|||
END; |
|||
DO X = 0 TO SIZE-Y-1; |
|||
IF (X AND Y) = 0 |
|||
THEN CALL PUT$CHAR('*'); |
|||
ELSE CALL PUT$CHAR(' '); |
|||
CALL PUT$CHAR(' '); |
|||
END; |
|||
Y = Y - 1; |
|||
CALL PUT$CHAR(13); |
|||
CALL PUT$CHAR(10); |
|||
END; |
|||
CALL BDOS(0,0); |
|||
EOF</lang> |
|||
{{out}} |
|||
<pre> * |
|||
* * |
|||
* * |
|||
* * * * |
|||
* * |
|||
* * * * |
|||
* * * * |
|||
* * * * * * * * |
|||
* * |
|||
* * * * |
|||
* * * * |
|||
* * * * * * * * |
|||
* * * * |
|||
* * * * * * * * |
|||
* * * * * * * * |
|||
* * * * * * * * * * * * * * * *</pre> |
|||
=={{header|Pop11}}== |
=={{header|Pop11}}== |