A large commit.
[pdp8.git] / sw / src / pascal / HILBER.PS
1 PROGRAM PLOTHILBERTKURVEN(INPUT,OUTPUT);
2
3 CONST H0=2560;
4
5 VAR N,H,I: INTEGER;
6
7 PROCEDURE ANFANG;
8 BEGIN
9 WRITELN("H", H DIV 2 + 100 :1, "@", H DIV 2 + 100 :1, "AKI")
10 END (* ANFANG *);
11
12 PROCEDURE STRECKE(R: INTEGER);
13 BEGIN
14 CASE R MOD 4 OF
15 0: WRITELN(H:1,"A@J");
16 1: WRITELN(H:1,"@AJ");
17 2: WRITELN(H:1,"Q@J");
18 3: WRITELN(H:1,"PAJ")
19 END
20 END (* STRECKE *);
21
22 PROCEDURE SCHLUSS;
23 BEGIN
24 WRITELN("H", H0:1,"@AK");
25 FOR I := 1 TO 384 DO WRITE(" "); WRITELN
26 END (* SCHLUSS *);
27
28
29 PROCEDURE HILBERT(I,R,S: INTEGER);
30 BEGIN
31 IF I>0 THEN
32 BEGIN
33 HILBERT(I-1,R-S,-S);
34 STRECKE(R-S);
35 HILBERT(I-1,R,S);
36 STRECKE(R);
37 HILBERT(I-1,R,S);
38 STRECKE(R+S);
39 HILBERT(I-1,R+S,-S)
40 END
41 END (* HILBERT *);
42
43
44 BEGIN
45 WHILE NOT EOF DO
46 BEGIN READ(N);
47 H := H0; FOR I := 1 TO N DO H := H DIV 2;
48 ANFANG;
49 HILBERT(N,1,1);
50 SCHLUSS
51 END
52 END.