1 PROGRAM PLOTALLTREES(INPUT,OUTPUT);
5 X,Y: ARRAY[1..6] OF REAL;
6 U,V: ARRAY[1..6] OF INTEGER;
8 PENXPOS,PENYPOS: INTEGER;
10 (********** P L O T T E R PROZEDUREN **********)
12 PROCEDURE PEN(I:CHAR);
15 PROCEDURE SEND(IX,IY: INTEGER);
17 IF IX>=0 THEN WRITE( IX:1,"@")
18 ELSE WRITE(-IX:1,"P");
19 IF IY>=0 THEN WRITE( IY:1,"A")
23 PROCEDURE MOVE(X,Y: REAL);
25 PENXPOS:=ROUND(X); PENYPOS:=ROUND(Y);
27 SEND(PENXPOS,PENYPOS);
31 PROCEDURE LINE(X,Y: REAL);
36 SEND(DX,DY); WRITELN("J");
37 PENXPOS:=PENXPOS+DX; PENYPOS:=PENYPOS+DY
40 PROCEDURE SYSIZE(R,G: INTEGER);
42 WRITE("C", CHR(G+16*(R+2)))
45 PROCEDURE BLATTWECHSEL;
46 BEGIN PEN("H"); WRITELN(" ":384); TREE := 0 END;
47 (***********************************************)
50 CONST R=150.0; RAD=0.0174533;
52 P1W: ARRAY[3..6] OF REAL;
54 P1W[3] := -30.0; P1W[4] := 45.0; P1W[5] := 18.0; P1W[6] := 60.0;
57 X[I] := R*COS( (I*360/N + P1W[N]) * RAD);
58 Y[I] := R*SIN( (I*360/N + P1W[N]) * RAD)
65 Z: ARRAY[1..6] OF INTEGER;
67 FOR I := 1 TO N DO Z[I] := 0;
68 FOR K := 1 TO N-1 DO Z[ V[K] ] := Z[ V[K] ] + 1;
70 BEGIN I := 1; WHILE Z[I]<>0 DO I := I + 1;
72 Z[I] := -1 (* FORGET THIS VERTEX *);
73 Z[ V[K] ] := Z[ V[K] ] - 1
82 OX := 200 + 400*(TREE MOD 9);
83 OY := 2600 - 400*(TREE DIV 9);
86 MOVE(OX+X[ U[K] ], OY+Y[ U[K] ]); PEN("I");
87 LINE(OX+X[ V[K] ], OY+Y[ V[K] ])
89 TREE := TREE + 1; IF TREE=63 THEN BLATTWECHSEL
92 PROCEDURE COMBITREE(N,K: INTEGER);
96 BEGIN FOR Z := 1 TO N DO
97 BEGIN V[K] := Z; COMBITREE(N,K-1) END
107 V[N-1] := N; COMBITREE(N,N-2);