Data update
This commit is contained in:
parent
0df55f9f24
commit
aec8ed51b6
1045 changed files with 18889 additions and 2777 deletions
49
Task/Floyds-triangle/PL-M/floyds-triangle.plm
Normal file
49
Task/Floyds-triangle/PL-M/floyds-triangle.plm
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
100H:
|
||||
BDOS: PROCEDURE (FN, ARG); DECLARE FN BYTE, ARG ADDRESS; GO TO 5; END BDOS;
|
||||
EXIT: PROCEDURE; GO TO 0; END EXIT;
|
||||
PRINT: PROCEDURE (S); DECLARE S ADDRESS; CALL BDOS(9,S); END PRINT;
|
||||
|
||||
|
||||
PUT$NUM: PROCEDURE (N, WIDTH);
|
||||
DECLARE S (6) BYTE INITIAL (' $');
|
||||
DECLARE N ADDRESS, (I, WIDTH) BYTE;
|
||||
I = 5;
|
||||
DIGIT:
|
||||
S(I := I-1) = N MOD 10 + '0';
|
||||
IF (N := N/10) > 0 THEN GO TO DIGIT;
|
||||
DO I=I-1 TO 0 BY -1;
|
||||
S(I) = ' ';
|
||||
END;
|
||||
CALL PRINT(.S(6-WIDTH));
|
||||
END PUT$NUM;
|
||||
|
||||
WIDTH: PROCEDURE (N) BYTE;
|
||||
DECLARE (N, W) BYTE;
|
||||
W = 1;
|
||||
DO WHILE N>0;
|
||||
N = N/10;
|
||||
W = W+1;
|
||||
END;
|
||||
RETURN W;
|
||||
END WIDTH;
|
||||
|
||||
FLOYD: PROCEDURE (ROWS);
|
||||
DECLARE (ROWS, ROW, COL) BYTE;
|
||||
DECLARE (N, MAXNO) ADDRESS;
|
||||
|
||||
MAXNO = ROWS * (ROWS+1)/2;
|
||||
N = 1;
|
||||
DO ROW = 1 TO ROWS;
|
||||
DO COL = 1 TO ROW;
|
||||
CALL PUT$NUM(N, 1 + WIDTH(MAXNO - ROWS + COL));
|
||||
N = N+1;
|
||||
END;
|
||||
CALL PRINT(.(13,10,'$'));
|
||||
END;
|
||||
END FLOYD;
|
||||
|
||||
CALL FLOYD(5);
|
||||
CALL PRINT(.(13,10,'$'));
|
||||
CALL FLOYD(14);
|
||||
CALL EXIT;
|
||||
EOF
|
||||
Loading…
Add table
Add a link
Reference in a new issue