Cantor set: Difference between revisions

Content deleted Content added
Hout (talk | contribs)
Loren (talk | contribs)
→‎{{header|XPL0}}: cleaner version
Line 3,841: Line 3,841:


=={{header|XPL0}}==
=={{header|XPL0}}==
<lang XPL0>char LineSeg;
<lang XPL0>proc Cantor(N, LineSeg, Len); \Delete middle third of LineSeg
int N; char LineSeg; int Len, Third, I;

proc Cantor(N, Base, Len); \Delete middle third of LineSeg
int N, Base, Len, Third, I;
[if N>0 and Len>1 then
[if N>0 and Len>1 then
[Third:= Len/3;
[Third:= Len/3;
for I:= Base+Third, Base+2*Third-1 do
for I:= Third, 2*Third-1 do LineSeg(I):= ^ ;
Cantor(N-1, LineSeg, Third);
LineSeg(I):= ^ ;
Cantor(N-1, Base, Third);
Cantor(N-1, LineSeg+2*Third, Third);
Cantor(N-1, Base+2*Third, Third);
];
];
];
];


char LineSeg, N;
int N;
[LineSeg:=
[LineSeg:=
"#################################################################################
"#################################################################################
";
";
for N:= 0 to 4 do
for N:= 0 to 4 do
[Cantor(N, 0, 81);
[Cantor(N, LineSeg, 81);
Text(0, LineSeg);
Text(0, LineSeg);
];
];