TREE
FILE INFORMATION
FILENAME(S): TREE
FILE TYPE(S): SEQ
FILE SIZE: 3.4K
FIRST SEEN: 2025-11-30 21:28:18
APPEARS ON: 1 disk(s)
FILE HASH
f7f07347c35e41303d81740c9e8f6047677891b1df104f0fc48a610a02a6b344
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| VCGN D 64007 | TREE | SEQ | DuncanTwain | 20 | 0 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: 50 52 4F 47 52 41 4D 0D 20 20 20 20 20 20 20 20 |PROGRAM. |
00000010: 74 72 65 65 20 28 69 6E 70 75 74 2C 6F 75 74 70 |tree (input,outp|
00000020: 75 74 29 3B 0D 43 4F 4E 53 54 0D 20 20 20 20 20 |ut);.CONST. |
00000030: 20 20 20 20 20 20 70 69 3D 20 33 2E 31 34 31 35 | pi= 3.1415|
00000040: 39 3B 0D 54 59 50 45 0D 20 20 20 20 20 20 20 76 |9;.TYPE. v|
00000050: 65 63 74 6F 72 3D 20 52 45 43 4F 52 44 0D 20 20 |ector= RECORD. |
00000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 2C | x,|
00000070: 79 3A 20 72 65 61 6C 0D 20 20 20 20 20 20 20 20 |y: real. |
00000080: 20 20 20 20 20 20 20 45 4E 44 3B 0D 56 41 52 0D | END;.VAR.|
00000090: 20 20 20 20 20 72 6F 6F 74 2C 74 6F 70 3A 20 76 | root,top: v|
000000A0: 65 63 74 6F 72 3B 0D 20 20 20 20 20 20 20 20 65 |ector;. e|
000000B0: 72 61 73 65 3A 20 62 6F 6F 6C 65 61 6E 3B 0D 20 |rase: boolean;. |
000000C0: 20 20 20 4C 2C 4F 2C 4C 64 2C 4F 64 3A 20 72 65 | L,O,Ld,Od: re|
000000D0: 61 6C 3B 0D 20 20 20 20 20 20 20 20 76 4C 2C 76 |al;. vL,v|
000000E0: 4F 2C 0D 20 20 20 20 20 64 2C 76 65 72 74 61 6B |O,. d,vertak|
000000F0: 3A 20 69 6E 74 65 67 65 72 3B 0D 23 61 72 74 2E |: integer;.#art.|
00000100: 6C 69 62 0D 20 50 52 4F 43 45 44 55 52 45 0D 20 |lib. PROCEDURE. |
00000110: 20 20 20 20 20 20 20 20 20 20 70 61 72 61 6D 65 | parame|
00000120: 74 65 72 73 3B 0D 20 56 41 52 0D 20 20 20 20 20 |ters;. VAR. |
00000130: 20 20 20 20 20 20 78 3A 20 69 6E 74 65 67 65 72 | x: integer|
00000140: 3B 0D 20 20 20 20 20 20 20 20 20 20 20 63 3A 20 |;. c: |
00000150: 63 68 61 72 3B 0D 20 42 45 47 49 4E 0D 20 20 70 |char;. BEGIN. p|
00000160: 61 67 65 3B 20 62 6F 72 64 65 72 28 30 29 3B 20 |age; border(0); |
00000170: 65 6D 70 74 79 3B 0D 20 20 77 72 69 74 65 6C 6E |empty;. writeln|
00000180: 28 27 20 54 52 45 45 20 27 29 3B 0D 20 20 77 72 |(' TREE ');. wr|
00000190: 69 74 65 6C 6E 28 27 20 27 29 3B 0D 20 20 77 72 |iteln(' ');. wr|
000001A0: 69 74 65 28 27 23 76 65 72 74 61 6B 6B 69 6E 67 |ite('#vertakking|
000001B0: 65 6E 20 27 2C 0D 20 20 20 20 20 20 20 20 27 20 |en ',. ' |
000001C0: 5B 31 2E 2E 31 30 5D 20 3D 20 27 29 3B 0D 20 20 |[1..10] = ');. |
000001D0: 72 65 61 64 6C 6E 28 76 65 72 74 61 6B 29 3B 0D |readln(vertak);.|
000001E0: 20 20 77 72 69 74 65 28 27 53 74 61 6D 2D 6C 65 | write('Stam-le|
000001F0: 6E 67 74 65 20 20 20 27 2C 0D 20 20 20 20 20 20 |ngte ',. |
00000200: 20 20 27 20 5B 31 2E 2E 38 30 5D 20 3D 20 27 29 | ' [1..80] = ')|
00000210: 3B 0D 20 20 72 65 61 64 6C 6E 28 4C 29 3B 0D 20 |;. readln(L);. |
00000220: 20 77 72 69 74 65 28 27 53 74 61 6D 2D 64 69 6B | write('Stam-dik|
00000230: 74 65 20 20 20 20 27 2C 0D 20 20 20 20 20 20 20 |te ',. |
00000240: 20 27 20 5B 33 2E 2E 31 31 5D 20 3D 20 27 29 3B | ' [3..11] = ');|
00000250: 0D 20 20 72 65 61 64 6C 6E 28 64 29 3B 0D 20 20 |. readln(d);. |
00000260: 4F 3A 3D 70 69 2F 32 3B 0D 20 20 28 2A 20 63 6F |O:=pi/2;. (* co|
00000270: 6E 74 72 6F 6C 65 20 2A 29 0D 20 20 49 46 20 4E |ntrole *). IF N|
00000280: 4F 54 20 28 76 65 72 74 61 6B 20 49 4E 20 5B 31 |OT (vertak IN [1|
00000290: 2E 2E 31 30 5D 29 0D 20 20 20 20 20 54 48 45 4E |..10]). THEN|
000002A0: 20 76 65 72 74 61 6B 3A 3D 33 3B 0D 20 20 49 46 | vertak:=3;. IF|
000002B0: 20 28 4C 3C 31 29 4F 52 28 4C 3E 38 30 29 0D 20 | (L<1)OR(L>80). |
000002C0: 20 20 20 20 54 48 45 4E 20 4C 3A 3D 35 30 3B 0D | THEN L:=50;.|
000002D0: 20 20 49 46 20 4E 4F 54 28 64 20 49 4E 20 5B 33 | IF NOT(d IN [3|
000002E0: 2E 2E 31 31 5D 29 0D 20 20 20 20 20 54 48 45 4E |..11]). THEN|
000002F0: 20 64 3A 3D 34 3B 0D 20 20 77 72 69 74 65 28 27 | d:=4;. write('|
00000300: 56 65 72 6B 6F 72 74 69 6E 67 20 20 20 20 27 2C |Verkorting ',|
00000310: 0D 20 20 20 27 20 28 25 29 20 5B 31 2E 2E 39 30 |. ' (%) [1..90|
00000320: 5D 20 3D 20 27 29 3B 0D 20 20 72 65 61 64 6C 6E |] = ');. readln|
00000330: 28 78 29 3B 0D 20 20 77 72 69 74 65 28 27 20 72 |(x);. write(' r|
00000340: 75 69 73 20 64 61 61 72 20 6F 70 20 27 2C 0D 20 |uis daar op ',. |
00000350: 20 20 27 20 28 25 29 20 5B 30 2E 2E 33 30 5D 20 | ' (%) [0..30] |
00000360: 3D 20 27 29 3B 0D 20 20 72 65 61 64 6C 6E 28 76 |= ');. readln(v|
00000370: 4C 29 3B 0D 20 20 49 46 20 4E 4F 54 20 28 78 20 |L);. IF NOT (x |
00000380: 20 49 4E 20 5B 31 2E 2E 39 30 5D 29 0D 20 20 20 | IN [1..90]). |
00000390: 20 20 54 48 45 4E 20 78 3A 3D 36 36 3B 0D 20 20 | THEN x:=66;. |
000003A0: 49 46 20 4E 4F 54 20 28 76 4C 20 49 4E 20 5B 30 |IF NOT (vL IN [0|
000003B0: 2E 2E 33 30 5D 29 0D 20 20 20 20 20 54 48 45 4E |..30]). THEN|
000003C0: 20 76 4C 3A 3D 30 3B 0D 20 20 4C 64 3A 3D 78 2F | vL:=0;. Ld:=x/|
000003D0: 31 30 30 3B 0D 20 20 77 72 69 74 65 28 27 48 6F |100;. write('Ho|
000003E0: 65 6B 20 76 61 72 69 61 74 69 65 20 27 2C 0D 20 |ek variatie ',. |
000003F0: 20 20 27 20 28 25 29 20 5B 35 2E 2E 34 35 5D 20 | ' (%) [5..45] |
00000400: 3D 20 27 29 3B 0D 20 20 72 65 61 64 6C 6E 28 78 |= ');. readln(x|
00000410: 29 3B 0D 20 20 77 72 69 74 65 28 27 20 72 75 69 |);. write(' rui|
00000420: 73 20 64 61 61 72 20 6F 70 20 27 2C 0D 20 20 20 |s daar op ',. |
00000430: 27 20 28 25 29 20 5B 30 2E 2E 33 30 5D 20 3D 20 |' (%) [0..30] = |
00000440: 27 29 3B 0D 20 20 72 65 61 64 6C 6E 28 76 4F 29 |');. readln(vO)|
00000450: 3B 0D 20 20 49 46 20 4E 4F 54 20 28 78 20 20 49 |;. IF NOT (x I|
00000460: 4E 20 5B 35 2E 2E 34 35 5D 29 0D 20 20 20 20 20 |N [5..45]). |
00000470: 54 48 45 4E 20 78 3A 3D 33 30 3B 0D 20 20 49 46 |THEN x:=30;. IF|
00000480: 20 4E 4F 54 20 28 76 4F 20 49 4E 20 5B 30 2E 2E | NOT (vO IN [0..|
00000490: 33 30 5D 29 0D 20 20 20 20 20 54 48 45 4E 20 76 |30]). THEN v|
000004A0: 4F 3A 3D 30 3B 0D 20 20 4F 64 3A 3D 78 2A 70 69 |O:=0;. Od:=x*pi|
000004B0: 2F 31 38 30 3B 0D 20 20 77 72 69 74 65 28 27 43 |/180;. write('C|
000004C0: 6F 6F 72 64 69 6E 61 74 65 6E 20 73 74 61 6D 20 |oordinaten stam |
000004D0: 27 2C 0D 20 20 20 20 20 20 20 20 27 5B 78 20 79 |',. '[x y|
000004E0: 5D 20 3D 20 27 29 3B 0D 20 20 72 65 61 64 6C 6E |] = ');. readln|
000004F0: 28 72 6F 6F 74 2E 78 2C 72 6F 6F 74 2E 79 29 3B |(root.x,root.y);|
00000500: 0D 20 20 77 72 69 74 65 28 27 48 69 72 65 73 2D |. write('Hires-|
00000510: 73 63 68 65 72 6D 20 73 63 68 6F 6F 6E 20 27 2C |scherm schoon ',|
00000520: 0D 20 20 20 20 20 20 20 20 27 28 6A 2F 6E 29 20 |. '(j/n) |
00000530: 3F 20 27 29 3B 0D 20 20 72 65 61 64 6C 6E 28 63 |? ');. readln(c|
00000540: 29 3B 0D 20 20 65 72 61 73 65 3A 3D 28 63 3D 27 |);. erase:=(c='|
00000550: 6A 27 29 3B 0D 20 45 4E 44 0D 20 3B 0D 20 50 52 |j');. END. ;. PR|
00000560: 4F 43 45 44 55 52 45 0D 20 20 20 20 20 20 20 20 |OCEDURE. |
00000570: 20 20 20 74 65 6B 65 6E 65 6E 3B 0D 20 20 50 52 | tekenen;. PR|
00000580: 4F 43 45 44 55 52 45 0D 20 20 20 20 20 20 20 20 |OCEDURE. |
00000590: 20 20 20 20 73 74 61 6D 0D 20 20 20 20 20 20 20 | stam. |
000005A0: 20 20 20 20 28 72 6F 6F 74 3A 20 76 65 63 74 6F | (root: vecto|
000005B0: 72 3B 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 |r;. |
000005C0: 4C 2C 4F 3A 20 72 65 61 6C 3B 0D 20 20 20 20 20 |L,O: real;. |
000005D0: 20 20 20 20 20 20 20 20 20 20 64 3A 20 69 6E 74 | d: int|
000005E0: 65 67 65 72 3B 0D 20 20 20 20 20 20 20 20 20 56 |eger;. V|
000005F0: 41 52 20 74 6F 70 3A 20 76 65 63 74 6F 72 29 3B |AR top: vector);|
00000600: 0D 20 20 56 41 52 0D 20 20 20 20 20 20 78 31 2C |. VAR. x1,|
00000610: 78 32 2C 79 31 2C 79 32 3A 20 69 6E 74 65 67 65 |x2,y1,y2: intege|
00000620: 72 3B 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 |r;. |
00000630: 20 20 20 7A 3A 20 69 6E 74 65 67 65 72 3B 0D 20 | z: integer;. |
00000640: 20 20 20 20 20 20 20 20 20 76 2C 64 65 6C 74 61 | v,delta|
00000650: 3A 20 76 65 63 74 6F 72 3B 0D 20 20 42 45 47 49 |: vector;. BEGI|
00000660: 4E 0D 20 20 20 74 6F 70 2E 78 3A 3D 4C 2A 63 6F |N. top.x:=L*co|
00000670: 73 28 4F 29 2B 72 6F 6F 74 2E 78 3B 0D 20 20 20 |s(O)+root.x;. |
00000680: 74 6F 70 2E 79 3A 3D 4C 2A 73 69 6E 28 4F 29 2B |top.y:=L*sin(O)+|
00000690: 72 6F 6F 74 2E 79 3B 0D 20 20 20 49 46 20 28 64 |root.y;. IF (d|
000006A0: 3E 31 29 0D 20 20 20 54 48 45 4E A0 42 45 47 49 |>1). THEN.BEGI|
000006B0: 4E 0D 20 20 20 20 64 65 6C 74 61 2E 78 3A 3D 2D |N. delta.x:=-|
000006C0: 73 69 6E 28 4F 29 2F 32 3B 0D 20 20 20 20 64 65 |sin(O)/2;. de|
000006D0: 6C 74 61 2E 79 3A 3D 2B 63 6F 73 28 4F 29 2F 32 |lta.y:=+cos(O)/2|
000006E0: 3B 0D 20 20 20 20 46 4F 52 20 7A 3A 3D 2D 64 20 |;. FOR z:=-d |
000006F0: 54 4F 20 2B 64 20 44 4F 20 42 45 47 49 4E 0D 20 |TO +d DO BEGIN. |
00000700: 20 20 20 20 76 2E 78 3A 3D 7A 2A 64 65 6C 74 61 | v.x:=z*delta|
00000710: 2E 78 3B 0D 20 20 20 20 20 76 2E 79 3A 3D 7A 2A |.x;. v.y:=z*|
00000720: 64 65 6C 74 61 2E 79 3B 0D 20 20 20 20 20 78 31 |delta.y;. x1|
00000730: 3A 3D 72 6F 75 6E 64 28 72 6F 6F 74 2E 78 2B 76 |:=round(root.x+v|
00000740: 2E 78 29 3B 0D 20 20 20 20 20 79 31 3A 3D 72 6F |.x);. y1:=ro|
00000750: 75 6E 64 28 72 6F 6F 74 2E 79 2B 76 2E 79 29 3B |und(root.y+v.y);|
00000760: 0D 20 20 20 20 20 78 32 3A 3D 72 6F 75 6E 64 28 |. x2:=round(|
00000770: 20 74 6F 70 2E 78 2B 76 2E 78 29 3B 0D 20 20 20 | top.x+v.x);. |
00000780: 20 20 79 32 3A 3D 72 6F 75 6E 64 28 20 74 6F 70 | y2:=round( top|
00000790: 2E 79 2B 76 2E 79 29 3B 0D 20 20 20 20 20 70 6C |.y+v.y);. pl|
000007A0: 6F 74 28 32 2C 78 31 2C 79 31 2C 78 32 2C 79 32 |ot(2,x1,y1,x2,y2|
000007B0: 29 0D 20 20 20 20 45 4E 44 0D 20 20 20 45 4E 44 |). END. END|
000007C0: 0D 20 20 20 45 4C 53 45 0D 20 20 20 20 70 6C 6F |. ELSE. plo|
000007D0: 74 28 32 2C 72 6F 75 6E 64 28 72 6F 6F 74 2E 78 |t(2,round(root.x|
000007E0: 29 2C 0D 20 20 20 20 20 20 20 20 20 20 20 72 6F |),. ro|
000007F0: 75 6E 64 28 72 6F 6F 74 2E 79 29 2C 0D 20 20 20 |und(root.y),. |
00000800: 20 20 20 20 20 20 20 20 72 6F 75 6E 64 28 20 74 | round( t|
00000810: 6F 70 2E 78 29 2C 0D 20 20 20 20 20 20 20 20 20 |op.x),. |
00000820: 20 20 72 6F 75 6E 64 28 20 74 6F 70 2E 79 29 29 | round( top.y))|
00000830: 0D 20 20 45 4E 44 0D 20 20 3B 0D 20 20 50 52 4F |. END. ;. PRO|
00000840: 43 45 44 55 52 45 0D 20 20 20 20 20 20 20 20 20 |CEDURE. |
00000850: 20 20 20 74 61 6B 6B 65 6E 0D 20 20 20 20 20 20 | takken. |
00000860: 20 20 20 20 20 28 72 6F 6F 74 3A 20 76 65 63 74 | (root: vect|
00000870: 6F 72 3B 0D 20 20 20 20 20 20 20 20 20 20 20 20 |or;. |
00000880: 20 4C 2C 4F 3A 20 72 65 61 6C 3B 0D 20 20 20 20 | L,O: real;. |
00000890: 20 20 20 20 64 2C 76 65 72 74 61 6B 3A 20 69 6E | d,vertak: in|
000008A0: 74 65 67 65 72 29 3B 0D 20 20 20 46 55 4E 43 54 |teger);. FUNCT|
000008B0: 49 4F 4E 0D 20 20 20 20 20 20 20 20 20 20 20 20 |ION. |
000008C0: 6B 61 6E 73 3A 20 62 6F 6F 6C 65 61 6E 3B 0D 20 |kans: boolean;. |
000008D0: 20 20 20 42 45 47 49 4E 0D 20 20 20 20 20 6B 61 | BEGIN. ka|
000008E0: 6E 73 3A 3D 28 72 61 6E 64 6F 6D 3E 31 32 37 29 |ns:=(random>127)|
000008F0: 0D 20 20 20 20 45 4E 44 0D 20 20 20 20 3B 0D 20 |. END. ;. |
00000900: 20 20 50 52 4F 43 45 44 55 52 45 0D 20 20 20 20 | PROCEDURE. |
00000910: 20 20 20 20 20 20 20 20 20 74 61 6B 20 28 73 69 | tak (si|
00000920: 67 6E 3A 20 69 6E 74 65 67 65 72 29 3B 0D 20 20 |gn: integer);. |
00000930: 20 56 41 52 0D 20 20 20 20 20 20 20 6E 4F 2C 6E | VAR. nO,n|
00000940: 4C 3A 20 72 65 61 6C 3B 0D 20 20 20 20 20 20 20 |L: real;. |
00000950: 20 20 74 6F 70 3A 20 76 65 63 74 6F 72 3B 0D 20 | top: vector;. |
00000960: 20 20 20 46 55 4E 43 54 49 4F 4E 0D 20 20 20 20 | FUNCTION. |
00000970: 20 20 20 20 20 20 20 20 20 72 75 69 73 0D 20 20 | ruis. |
00000980: 20 20 20 20 20 20 20 20 20 20 20 28 61 3A 20 69 | (a: i|
00000990: 6E 74 65 67 65 72 29 0D 20 20 20 20 20 20 20 20 |nteger). |
000009A0: 20 20 20 20 20 20 20 3A 20 72 65 61 6C 3B 0D 20 | : real;. |
000009B0: 20 20 20 42 45 47 49 4E 0D 20 20 20 20 20 20 49 | BEGIN. I|
000009C0: 46 20 28 61 3D 30 29 0D 20 20 20 20 20 20 20 20 |F (a=0). |
000009D0: 20 54 48 45 4E A0 72 75 69 73 3A 3D 30 0D 20 20 | THEN.ruis:=0. |
000009E0: 20 20 20 20 20 20 20 45 4C 53 45 20 72 75 69 73 | ELSE ruis|
000009F0: 3A 3D 0D 20 20 20 20 20 20 20 20 20 28 2D 61 2B |:=. (-a+|
00000A00: 28 72 61 6E 64 6F 6D 20 4D 4F 44 20 61 29 29 2F |(random MOD a))/|
00000A10: 31 30 30 0D 20 20 20 20 45 4E 44 0D 20 20 20 20 |100. END. |
00000A20: 3B 0D 20 20 20 20 46 55 4E 43 54 49 4F 4E 0D 20 |;. FUNCTION. |
00000A30: 20 20 20 20 20 20 20 20 20 20 20 20 66 72 61 63 | frac|
00000A40: 74 69 6F 6E 0D 20 20 20 20 20 20 20 20 20 20 20 |tion. |
00000A50: 20 20 28 4C 3A 20 72 65 61 6C 29 0D 20 20 20 20 | (L: real). |
00000A60: 20 20 20 20 20 20 20 20 20 20 20 3A 20 72 65 61 | : rea|
00000A70: 6C 3B 0D 20 20 20 20 42 45 47 49 4E 0D 20 20 20 |l;. BEGIN. |
00000A80: 20 20 66 72 61 63 74 69 6F 6E 3A 3D 0D 20 20 20 | fraction:=. |
00000A90: 20 20 4C 2A 28 31 2B 72 75 69 73 28 76 4C 29 29 | L*(1+ruis(vL))|
00000AA0: 2A 4C 64 0D 20 20 20 20 45 4E 44 0D 20 20 20 20 |*Ld. END. |
00000AB0: 3B 0D 20 20 20 20 46 55 4E 43 54 49 4F 4E 0D 20 |;. FUNCTION. |
00000AC0: 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 69 | vari|
00000AD0: 61 74 65 0D 20 20 20 20 20 20 20 20 20 20 20 20 |ate. |
00000AE0: 20 28 4F 3A 20 72 65 61 6C 3B 0D 20 20 20 20 20 | (O: real;. |
00000AF0: 20 20 20 20 20 20 73 69 67 6E 3A 20 69 6E 74 65 | sign: inte|
00000B00: 67 65 72 29 0D 20 20 20 20 20 20 20 20 20 20 20 |ger). |
00000B10: 20 20 20 20 3A 20 72 65 61 6C 3B 0D 20 20 20 20 | : real;. |
00000B20: 42 45 47 49 4E 0D 20 20 20 20 20 76 61 72 69 61 |BEGIN. varia|
00000B30: 74 65 3A 3D 0D 20 20 20 20 20 4F 2B 4F 64 2A 28 |te:=. O+Od*(|
00000B40: 72 75 69 73 28 76 4F 29 2B 73 69 67 6E 29 0D 20 |ruis(vO)+sign). |
00000B50: 20 20 20 45 4E 44 0D 20 20 20 20 3B 0D 20 20 20 | END. ;. |
00000B60: 42 45 47 49 4E 20 28 2A 20 74 61 6B 20 2A 29 0D |BEGIN (* tak *).|
00000B70: 20 20 20 20 6E 4F 3A 3D 20 76 61 72 69 61 74 65 | nO:= variate|
00000B80: 28 4F 2C 73 69 67 6E 29 3B 0D 20 20 20 20 6E 4C |(O,sign);. nL|
00000B90: 3A 3D 66 72 61 63 74 69 6F 6E 28 4C 29 3B 0D 20 |:=fraction(L);. |
00000BA0: 20 20 20 73 74 61 6D 20 28 72 6F 6F 74 2C 6E 4C | stam (root,nL|
00000BB0: 2C 6E 4F 2C 64 2C 74 6F 70 29 3B 0D 20 20 20 20 |,nO,d,top);. |
00000BC0: 74 61 6B 6B 65 6E 28 74 6F 70 2C 6E 4C 2C 6E 4F |takken(top,nL,nO|
00000BD0: 2C 64 2D 31 2C 76 65 72 74 61 6B 2D 31 29 0D 20 |,d-1,vertak-1). |
00000BE0: 20 20 45 4E 44 0D 20 20 20 3B 0D 20 20 42 45 47 | END. ;. BEG|
00000BF0: 49 4E 20 28 2A 20 74 61 6B 6B 65 6E 20 2A 29 0D |IN (* takken *).|
00000C00: 20 20 20 49 46 20 28 76 65 72 74 61 6B 3E 3D 30 | IF (vertak>=0|
00000C10: 29 20 54 48 45 4E 20 42 45 47 49 4E 0D 20 20 20 |) THEN BEGIN. |
00000C20: 20 74 61 6B 28 2B 31 29 3B 0D 20 20 20 20 74 61 | tak(+1);. ta|
00000C30: 6B 28 2D 31 29 3B 0D 20 20 20 20 49 46 20 28 64 |k(-1);. IF (d|
00000C40: 3E 31 29 20 41 4E 44 20 6B 61 6E 73 20 54 48 45 |>1) AND kans THE|
00000C50: 4E 20 74 61 6B 28 30 29 0D 20 20 20 45 4E 44 0D |N tak(0). END.|
00000C60: 20 20 45 4E 44 0D 20 20 3B 0D 20 42 45 47 49 4E | END. ;. BEGIN|
00000C70: 20 28 2A 20 74 65 6B 65 6E 65 6E 20 2A 29 0D 20 | (* tekenen *). |
00000C80: 20 20 73 74 61 6D 20 28 72 6F 6F 74 2C 4C 2C 4F | stam (root,L,O|
00000C90: 2C 64 2C 74 6F 70 29 3B 0D 20 20 20 74 61 6B 6B |,d,top);. takk|
00000CA0: 65 6E 28 74 6F 70 2C 4C 2C 4F 2C 64 2D 31 2C 76 |en(top,L,O,d-1,v|
00000CB0: 65 72 74 61 6B 2D 31 29 0D 20 45 4E 44 0D 20 3B |ertak-1). END. ;|
00000CC0: 0D 42 45 47 49 4E 20 28 2A 20 74 72 65 65 20 2A |.BEGIN (* tree *|
00000CD0: 29 0D 20 20 52 45 50 45 41 54 0D 20 20 20 20 70 |). REPEAT. p|
00000CE0: 61 72 61 6D 65 74 65 72 73 3B 0D 20 20 20 20 69 |arameters;. i|
00000CF0: 6E 6B 28 31 34 29 3B 0D 20 20 20 20 49 46 20 65 |nk(14);. IF e|
00000D00: 72 61 73 65 20 54 48 45 4E 20 67 72 61 66 69 6E |rase THEN grafin|
00000D10: 69 74 28 30 2C 32 29 0D 20 20 20 20 20 20 20 20 |it(0,2). |
00000D20: 20 20 20 20 20 45 4C 53 45 20 68 69 72 65 73 28 | ELSE hires(|
00000D30: 31 29 3B 0D 20 20 20 20 74 65 6B 65 6E 65 6E 3B |1);. tekenen;|
00000D40: 0D 20 20 20 20 49 46 20 61 66 64 72 75 6B 20 54 |. IF afdruk T|
00000D50: 48 45 4E 20 42 45 47 49 4E 0D 20 20 20 20 20 20 |HEN BEGIN. |
00000D60: 20 6D 6F 76 65 3B 20 68 61 72 64 63 6F 70 79 0D | move; hardcopy.|
00000D70: 20 20 20 20 45 4E 44 0D 20 20 55 4E 54 49 4C 20 | END. UNTIL |
00000D80: 6B 6C 61 61 72 6F 76 65 72 0D 45 4E 44 2E 0D FF |klaarover.END...|
PROGRAM. TREE (INPUT,OUTPUT);.CON
ST. PI= 3.14159;.TYPE. V
ECTOR= RECORD. X,Y: REAL.
END;.VAR. ROOT,TOP: V
ECTOR;. ERASE: BOOLEAN;. L,O,L
D,OD: REAL;. VL,VO,. D,VERTAK
: INTEGER;.#ART.LIB. PROCEDURE.
PARAMETERS;. VAR. X: INTEGER
;. C: CHAR;. BEGIN. PAGE; BOR
DER(0); EMPTY;. WRITELN(' TREE ');. WR
ITELN(' ');. WRITE('#VERTAKKINGEN ',.
' [1..10] = ');. READLN(VERTAK);.
WRITE('STAM-LENGTE ',. ' [1..
80] = ');. READLN(L);. WRITE('STAM-DIK
TE ',. ' [3..11] = ');. READL
N(D);. O:=PI/2;. (* CONTROLE *). IF N
OT (VERTAK IN [1..10]). THEN VERTAK:
=3;. IF (L<1)OR(L>80). THEN L:=50;.
IF NOT(D IN [3..11]). THEN D:=4;.
WRITE('VERKORTING ',. ' (%) [1..90
] = ');. READLN(X);. WRITE(' RUIS DAAR
OP ',. ' (%) [0..30] = ');. READLN(V
L);. IF NOT (X IN [1..90]). THEN X
:=66;. IF NOT (VL IN [0..30]). THEN
VL:=0;. LD:=X/100;. WRITE('HOEK VARIA
TIE ',. ' (%) [5..45] = ');. READLN(X
);. WRITE(' RUIS DAAR OP ',. ' (%) [0
..30] = ');. READLN(VO);. IF NOT (X I
N [5..45]). THEN X:=30;. IF NOT (VO
IN [0..30]). THEN VO:=0;. OD:=X*PI
/180;. WRITE('COORDINATEN STAM ',.
'[X Y] = ');. READLN(ROOT.X,ROOT.Y);
. WRITE('HIRES-SCHERM SCHOON ',.
'(J/N) ? ');. READLN(C);. ERASE:=(C='
J');. END. ;. PROCEDURE. TEKEN
EN;. PROCEDURE. STAM.
(ROOT: VECTOR;. L,O: REA
L;. D: INTEGER;. V
AR TOP: VECTOR);. VAR. X1,X2,Y1,Y2
: INTEGER;. Z: INTEGER;.
V,DELTA: VECTOR;. BEGIN. TOP
.X:=L*COS(O)+ROOT.X;. TOP.Y:=L*SIN(O)+
ROOT.Y;. IF (D>1). THEN BEGIN. DE
LTA.X:=-SIN(O)/2;. DELTA.Y:=+COS(O)/2
;. FOR Z:=-D TO +D DO BEGIN. V.X:
=Z*DELTA.X;. V.Y:=Z*DELTA.Y;. X1
:=ROUND(ROOT.X+V.X);. Y1:=ROUND(ROOT
.Y+V.Y);. X2:=ROUND( TOP.X+V.X);.
Y2:=ROUND( TOP.Y+V.Y);. PLOT(2,X1,
Y1,X2,Y2). END. END. ELSE. PLO
T(2,ROUND(ROOT.X),. ROUND(ROOT
.Y),. ROUND( TOP.X),.
ROUND( TOP.Y)). END. ;. PROCEDURE.
TAKKEN. (ROOT: VECT
OR;. L,O: REAL;. D,VE
RTAK: INTEGER);. FUNCTION.
KANS: BOOLEAN;. BEGIN. KANS:=(RAN
DOM>127). END. ;. PROCEDURE.
TAK (SIGN: INTEGER);. VAR.
NO,NL: REAL;. TOP: VECTOR;.
FUNCTION. RUIS.
(A: INTEGER). : REAL;.
BEGIN. IF (A=0). THEN RU
IS:=0. ELSE RUIS:=. (-A+
(RANDOM MOD A))/100. END. ;. FU
NCTION. FRACTION.
(L: REAL). : REAL;. B
EGIN. FRACTION:=. L*(1+RUIS(VL))
*LD. END. ;. FUNCTION.
VARIATE. (O: REAL;.
SIGN: INTEGER). : RE
AL;. BEGIN. VARIATE:=. O+OD*(
RUIS(VO)+SIGN). END. ;. BEGIN (*
TAK *). NO:= VARIATE(O,SIGN);. NL
:=FRACTION(L);. STAM (ROOT,NL,NO,D,TO
P);. TAKKEN(TOP,NL,NO,D-1,VERTAK-1).
END. ;. BEGIN (* TAKKEN *). IF (V
ERTAK>=0) THEN BEGIN. TAK(+1);. TA
K(-1);. IF (D>1) AND KANS THEN TAK(0)
. END. END. ;. BEGIN (* TEKENEN *).
STAM (ROOT,L,O,D,TOP);. TAKKEN(TOP,L
,O,D-1,VERTAK-1). END. ;.BEGIN (* TREE *
). REPEAT. PARAMETERS;. INK(14);.
IF ERASE THEN GRAFINIT(0,2).
ELSE HIRES(1);. TEKENEN;. IF
AFDRUK THEN BEGIN. MOVE; HARDCOPY.
END. UNTIL KLAAROVER.END...
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL