Pascal's triangle: Difference between revisions
Content added Content deleted
m (→JS ES6: Updated primitives) |
No edit summary |
||
Line 1,241: | Line 1,241: | ||
Expansion* = POINTER TO ARRAY OF LONGINT; |
Expansion* = POINTER TO ARRAY OF LONGINT; |
||
PROCEDURE Show(e: Expansion); |
PROCEDURE Show*(e: Expansion); |
||
VAR |
VAR |
||
i: INTEGER; |
i: INTEGER; |
||
Line 1,253: | Line 1,253: | ||
END Show; |
END Show; |
||
PROCEDURE |
PROCEDURE GenFor*(p: LONGINT): Expansion; |
||
VAR |
VAR |
||
expA,expB: Expansion; |
expA,expB: Expansion; |
||
Line 1,266: | Line 1,266: | ||
BEGIN |
BEGIN |
||
ASSERT(p > 0); |
ASSERT(p >= 0); |
||
DEC(p); (* adjust p to work with arrays starting at 0 index *) |
|||
NEW(expA,p + 2);NEW(expB,p + 2); |
NEW(expA,p + 2);NEW(expB,p + 2); |
||
FOR i := 0 TO p DO |
FOR i := 0 TO p DO |
||
Line 1,284: | Line 1,283: | ||
expB := NIL; (* for the GC *) |
expB := NIL; (* for the GC *) |
||
RETURN expA |
RETURN expA |
||
END GenFor; |
|||
END GenPascalTriangleFor; |
|||
Line 1,299: | Line 1,298: | ||
RETURN |
RETURN |
||
ELSIF (s.type = TextMappers.int) THEN |
ELSIF (s.type = TextMappers.int) THEN |
||
exp := |
exp := GenFor(s.int); |
||
Show(exp) |
Show(exp) |
||
END; |
END; |
||
Line 1,308: | Line 1,307: | ||
END PascalTriangle. |
END PascalTriangle. |
||
</lang> |
</lang> |
||
<pre>Execute: ^Q PascalTriangle.Do 1 2 3 4 5 6 7 8 9 10 11 12~</pre> |
<pre>Execute: ^Q PascalTriangle.Do 0 1 2 3 4 5 6 7 8 9 10 11 12~</pre> |
||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
1 |
1 |
||
1 1 |
1 1 |
||
1 2 1 |
1 2 1 |
||
Line 1,323: | Line 1,322: | ||
1 10 45 120 210 252 210 120 45 10 1 |
1 10 45 120 210 252 210 120 45 10 1 |
||
1 11 55 165 330 462 462 330 165 55 11 1 |
1 11 55 165 330 462 462 330 165 55 11 1 |
||
1 12 66 220 495 792 924 792 495 220 66 12 1 |
|||
</pre> |
</pre> |
||
=={{header|D}}== |
=={{header|D}}== |