KOCH(HEX)
FILE INFORMATION
FILENAME(S): KOCH(HEX)
FILE TYPE(S): SEQ
FILE SIZE: 2.4K
FIRST SEEN: 2025-11-30 21:28:18
APPEARS ON: 1 disk(s)
FILE HASH
9344fe4eb2bdd91260d9a0e16bf1340e5c09fc8f82e80ef1cc5fc9459980f63b
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| VCGN D 64007 | KOCH(HEX) | SEQ | DuncanTwain | 19 | 10 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: 50 52 4F 47 52 41 4D 0D 20 20 20 20 20 20 20 20 |PROGRAM. |
00000010: 6B 6F 63 68 A4 68 65 78 3B 0D 43 4F 4E 53 54 0D |koch.hex;.CONST.|
00000020: 20 20 20 20 20 20 66 6D 61 78 3D 20 31 36 3B 0D | fmax= 16;.|
00000030: 20 20 20 20 20 20 20 20 70 69 3D 20 33 2E 31 34 | pi= 3.14|
00000040: 31 35 39 3B 0D 56 41 52 0D 20 20 20 20 20 20 61 |159;.VAR. a|
00000050: 6E 73 77 65 72 3A 20 63 68 61 72 3B 0D 20 20 20 |nswer: char;. |
00000060: 20 61 6C 66 61 2C 63 68 69 3A 20 69 6E 74 65 67 | alfa,chi: integ|
00000070: 65 72 3B 0D 20 20 20 20 20 20 20 20 20 78 2C 79 |er;. x,y|
00000080: 3A 20 72 65 61 6C 3B 0D 20 20 20 20 20 20 20 6C |: real;. l|
00000090: 2C 70 2C 71 3A 20 69 6E 74 65 67 65 72 3B 0D 20 |,p,q: integer;. |
000000A0: 20 20 20 20 20 20 20 20 70 68 69 3A 20 41 52 52 | phi: ARR|
000000B0: 41 59 20 5B 31 2E 2E 66 6D 61 78 5D 0D 20 20 20 |AY [1..fmax]. |
000000C0: 20 20 20 20 20 20 20 20 20 20 20 4F 46 20 69 6E | OF in|
000000D0: 74 65 67 65 72 3B 0D 20 20 20 20 20 20 20 6E 66 |teger;. nf|
000000E0: 2C 6E 67 3A 20 69 6E 74 65 67 65 72 3B 0D 20 20 |,ng: integer;. |
000000F0: 20 20 20 20 20 67 72 61 61 64 3A 20 69 6E 74 65 | graad: inte|
00000100: 67 65 72 3B 0D 20 20 20 20 20 20 20 78 30 2C 79 |ger;. x0,y|
00000110: 30 3A 20 69 6E 74 65 67 65 72 3B 0D 20 20 20 20 |0: integer;. |
00000120: 20 20 20 20 20 20 20 65 3A 20 41 52 52 41 59 20 | e: ARRAY |
00000130: 5B 30 2E 2E 35 5D 20 4F 46 0D 20 20 20 20 20 20 |[0..5] OF. |
00000140: 20 20 20 20 20 20 20 20 52 45 43 4F 52 44 0D 20 | RECORD. |
00000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 | x|
00000160: 2C 79 3A 20 72 65 61 6C 0D 20 20 20 20 20 20 20 |,y: real. |
00000170: 20 20 20 20 20 20 20 45 4E 44 3B 0D 23 61 72 74 | END;.#art|
00000180: 2E 6C 69 62 0D 50 52 4F 43 45 44 55 52 45 0D 20 |.lib.PROCEDURE. |
00000190: 20 20 20 20 20 20 20 20 20 70 72 69 6D 69 74 69 | primiti|
000001A0: 65 76 65 6E 3B 0D 43 4F 4E 53 54 0D 20 20 20 20 |even;.CONST. |
000001B0: 20 20 20 70 69 3D 20 33 2E 31 34 31 35 39 3B 0D | pi= 3.14159;.|
000001C0: 56 41 52 0D 20 20 20 20 20 20 63 68 69 3A 20 72 |VAR. chi: r|
000001D0: 65 61 6C 3B 0D 20 20 20 20 20 20 20 20 69 3A 20 |eal;. i: |
000001E0: 69 6E 74 65 67 65 72 3B 0D 42 45 47 49 4E 0D 20 |integer;.BEGIN. |
000001F0: 20 63 68 69 3A 3D 70 69 2F 33 3B 0D 20 20 46 4F | chi:=pi/3;. FO|
00000200: 52 20 69 3A 3D 30 20 54 4F 20 35 20 44 4F 20 42 |R i:=0 TO 5 DO B|
00000210: 45 47 49 4E 0D 20 20 20 20 65 5B 69 5D 2E 78 3A |EGIN. e[i].x:|
00000220: 3D 63 6F 73 28 63 68 69 2A 69 29 3B 0D 20 20 20 |=cos(chi*i);. |
00000230: 20 65 5B 69 5D 2E 79 3A 3D 73 69 6E 28 63 68 69 | e[i].y:=sin(chi|
00000240: 2A 69 29 3B 0D 20 20 45 4E 44 0D 45 4E 44 0D 3B |*i);. END.END.;|
00000250: 0D 50 52 4F 43 45 44 55 52 45 0D 20 20 20 20 20 |.PROCEDURE. |
00000260: 20 20 20 20 20 73 65 74 70 65 6E 20 28 61 2C 62 | setpen (a,b|
00000270: 3A 20 69 6E 74 65 67 65 72 29 3B 0D 42 45 47 49 |: integer);.BEGI|
00000280: 4E 0D 20 20 70 3A 3D 61 3B 20 78 3A 3D 61 3B 0D |N. p:=a; x:=a;.|
00000290: 20 20 71 3A 3D 62 3B 20 79 3A 3D 62 3B 0D 45 4E | q:=b; y:=b;.EN|
000002A0: 44 0D 3B 0D 50 52 4F 43 45 44 55 52 45 0D 20 20 |D.;.PROCEDURE. |
000002B0: 20 20 20 20 20 20 20 20 64 72 61 77 0D 20 20 20 | draw. |
000002C0: 20 20 20 20 20 20 20 28 6C 2C 61 3A 20 69 6E 74 | (l,a: int|
000002D0: 65 67 65 72 29 3B 0D 56 41 52 0D 20 20 20 20 20 |eger);.VAR. |
000002E0: 20 70 31 2C 71 31 3A 20 69 6E 74 65 67 65 72 3B | p1,q1: integer;|
000002F0: 0D 42 45 47 49 4E 0D 20 20 61 3A 3D 28 61 2B 36 |.BEGIN. a:=(a+6|
00000300: 29 20 4D 4F 44 20 36 3B 0D 20 20 78 3A 3D 78 2B |) MOD 6;. x:=x+|
00000310: 6C 2A 65 5B 61 5D 2E 78 3B 0D 20 20 79 3A 3D 79 |l*e[a].x;. y:=y|
00000320: 2B 6C 2A 65 5B 61 5D 2E 79 3B 0D 20 20 70 31 3A |+l*e[a].y;. p1:|
00000330: 3D 72 6F 75 6E 64 28 78 29 3B 0D 20 20 71 31 3A |=round(x);. q1:|
00000340: 3D 72 6F 75 6E 64 28 79 29 3B 0D 20 20 70 6C 6F |=round(y);. plo|
00000350: 74 28 32 2C 70 2C 71 2C 70 31 2C 71 31 29 3B 0D |t(2,p,q,p1,q1);.|
00000360: 20 20 70 3A 3D 70 31 3B 0D 20 20 71 3A 3D 71 31 | p:=p1;. q:=q1|
00000370: 3B 0D 45 4E 44 0D 3B 0D 50 52 4F 43 45 44 55 52 |;.END.;.PROCEDUR|
00000380: 45 0D 20 20 20 20 20 20 20 20 20 20 70 61 72 61 |E. para|
00000390: 6D 65 74 65 72 73 3B 0D 56 41 52 0D 20 20 20 20 |meters;.VAR. |
000003A0: 20 20 20 20 69 2C 68 6F 65 6B 3A 20 69 6E 74 65 | i,hoek: inte|
000003B0: 67 65 72 3B 0D 20 20 20 20 20 20 20 20 20 20 20 |ger;. |
000003C0: 20 63 72 3A 20 63 68 61 72 3B 0D 20 20 50 52 4F | cr: char;. PRO|
000003D0: 43 45 44 55 52 45 0D 20 20 20 20 20 20 20 20 20 |CEDURE. |
000003E0: 20 20 20 74 61 62 3B 0D 20 20 42 45 47 49 4E 0D | tab;. BEGIN.|
000003F0: 20 20 20 20 20 20 20 20 77 72 69 74 65 28 27 20 | write(' |
00000400: 20 20 20 27 29 0D 20 20 45 4E 44 0D 20 20 3B 0D | '). END. ;.|
00000410: 42 45 47 49 4E 20 28 2A 20 70 61 72 61 6D 65 74 |BEGIN (* paramet|
00000420: 65 72 73 20 2A 29 0D 20 20 63 72 3A 3D 63 68 72 |ers *). cr:=chr|
00000430: 28 31 33 29 3B 0D 20 20 70 61 67 65 3B 20 65 6D |(13);. page; em|
00000440: 70 74 79 3B 0D 20 20 77 72 69 74 65 6C 6E 28 27 |pty;. writeln('|
00000450: 20 4B 4F 43 48 20 49 53 4C 45 20 27 2C 63 72 29 | KOCH ISLE ',cr)|
00000460: 3B 0D 20 20 77 72 69 74 65 6C 6E 28 27 20 20 28 |;. writeln(' (|
00000470: 48 65 78 61 67 6F 6E 61 6C 65 20 62 61 73 69 73 |Hexagonale basis|
00000480: 29 27 29 3B 0D 20 20 77 72 69 74 65 6C 6E 28 27 |)');. writeln('|
00000490: 20 20 49 6E 69 74 69 61 74 6F 72 20 3A 27 29 3B | Initiator :');|
000004A0: 0D 20 20 74 61 62 3B 0D 20 20 77 72 69 74 65 28 |. tab;. write(|
000004B0: 27 47 72 61 61 64 20 70 6F 6C 79 67 6F 6F 6E 20 |'Graad polygoon |
000004C0: 27 29 3B 0D 20 20 77 72 69 74 65 28 27 20 5B 31 |');. write(' [1|
000004D0: 2C 33 2C 36 5D 20 3D 20 27 29 3B 0D 20 20 72 65 |,3,6] = ');. re|
000004E0: 61 64 6C 6E 28 67 72 61 61 64 29 3B 0D 20 20 49 |adln(graad);. I|
000004F0: 46 20 4E 4F 54 20 28 67 72 61 61 64 20 49 4E 20 |F NOT (graad IN |
00000500: 5B 31 2C 33 2C 36 5D 29 0D 20 20 20 20 20 54 48 |[1,3,6]). TH|
00000510: 45 4E 20 67 72 61 61 64 3A 3D 31 3B 0D 20 20 74 |EN graad:=1;. t|
00000520: 61 62 3B 20 77 72 69 74 65 28 27 4C 65 6E 67 74 |ab; write('Lengt|
00000530: 65 20 7A 79 64 65 20 3D 20 27 29 3B 0D 20 20 72 |e zyde = ');. r|
00000540: 65 61 64 6C 6E 28 6C 29 3B 0D 20 20 77 72 69 74 |eadln(l);. writ|
00000550: 65 6C 6E 28 63 72 2C 27 20 20 47 65 6E 65 72 61 |eln(cr,' Genera|
00000560: 74 6F 72 20 3A 27 29 3B 0D 20 20 74 61 62 3B 0D |tor :');. tab;.|
00000570: 20 20 77 72 69 74 65 28 27 41 61 6E 74 61 6C 20 | write('Aantal |
00000580: 67 65 6E 65 72 61 74 69 65 73 20 3D 20 27 29 3B |generaties = ');|
00000590: 0D 20 20 72 65 61 64 6C 6E 28 6E 67 29 3B 0D 20 |. readln(ng);. |
000005A0: 20 74 61 62 3B 0D 20 20 77 72 69 74 65 28 27 41 | tab;. write('A|
000005B0: 61 6E 74 61 6C 20 66 72 61 63 74 75 72 65 73 20 |antal fractures |
000005C0: 20 3D 20 27 29 3B 0D 20 20 72 65 61 64 6C 6E 28 | = ');. readln(|
000005D0: 6E 66 29 3B 0D 20 20 49 46 20 6E 66 3E 66 6D 61 |nf);. IF nf>fma|
000005E0: 78 20 54 48 45 4E 20 6E 66 3A 3D 66 6D 61 78 3B |x THEN nf:=fmax;|
000005F0: 0D 20 20 77 72 69 74 65 28 63 72 29 3B 20 74 61 |. write(cr); ta|
00000600: 62 3B 0D 20 20 77 72 69 74 65 28 27 48 6F 65 6B |b;. write('Hoek|
00000610: 65 6E 20 69 6E 20 6E 2A 36 30 20 67 72 61 64 65 |en in n*60 grade|
00000620: 6E 27 29 3B 0D 20 20 77 72 69 74 65 28 63 72 29 |n');. write(cr)|
00000630: 3B 0D 20 20 77 72 69 74 65 28 27 20 44 65 20 72 |;. write(' De r|
00000640: 65 65 6B 73 20 3D 20 27 29 3B 0D 20 20 46 4F 52 |eeks = ');. FOR|
00000650: 20 69 3A 3D 31 20 54 4F 20 6E 66 20 44 4F 20 42 | i:=1 TO nf DO B|
00000660: 45 47 49 4E 0D 20 20 20 20 72 65 61 64 28 68 6F |EGIN. read(ho|
00000670: 65 6B 29 3B 0D 20 20 20 20 70 68 69 5B 69 5D 3A |ek);. phi[i]:|
00000680: 3D 28 68 6F 65 6B 2B 36 29 20 4D 4F 44 20 36 3B |=(hoek+6) MOD 6;|
00000690: 0D 20 20 45 4E 44 3B 0D 20 20 72 65 61 64 6C 6E |. END;. readln|
000006A0: 3B 0D 20 20 63 68 69 3A 3D 36 20 44 49 56 20 67 |;. chi:=6 DIV g|
000006B0: 72 61 61 64 3B 0D 20 20 77 72 69 74 65 28 27 53 |raad;. write('S|
000006C0: 74 61 72 74 20 70 6F 73 69 74 69 65 20 5B 78 20 |tart positie [x |
000006D0: 79 5D 20 3D 20 27 29 3B 0D 20 20 72 65 61 64 6C |y] = ');. readl|
000006E0: 6E 28 78 30 2C 79 30 29 3B 0D 45 4E 44 0D 3B 0D |n(x0,y0);.END.;.|
000006F0: 50 52 4F 43 45 44 55 52 45 0D 20 20 20 20 20 20 |PROCEDURE. |
00000700: 20 20 20 20 69 73 6C 65 3B 0D 56 41 52 0D 20 20 | isle;.VAR. |
00000710: 20 20 20 20 20 20 20 20 20 20 69 3A 20 69 6E 74 | i: int|
00000720: 65 67 65 72 3B 0D 20 20 50 52 4F 43 45 44 55 52 |eger;. PROCEDUR|
00000730: 45 0D 20 20 20 20 20 20 20 20 20 20 20 20 67 65 |E. ge|
00000740: 6E 65 72 61 74 65 0D 20 20 20 20 20 20 20 20 20 |nerate. |
00000750: 20 20 20 28 6E 2C 61 6C 66 61 3A 20 69 6E 74 65 | (n,alfa: inte|
00000760: 67 65 72 29 3B 0D 20 20 56 41 52 0D 20 20 20 20 |ger);. VAR. |
00000770: 20 20 20 20 6A 3A 20 69 6E 74 65 67 65 72 3B 0D | j: integer;.|
00000780: 20 20 42 45 47 49 4E 0D 20 20 20 20 49 46 20 28 | BEGIN. IF (|
00000790: 6E 3D 30 29 0D 20 20 20 20 20 20 20 54 48 45 4E |n=0). THEN|
000007A0: 20 64 72 61 77 28 6C 2C 61 6C 66 61 29 0D 20 20 | draw(l,alfa). |
000007B0: 20 20 20 20 20 45 4C 53 45 20 42 45 47 49 4E 0D | ELSE BEGIN.|
000007C0: 20 20 20 20 20 20 20 20 20 46 4F 52 20 6A 3A 3D | FOR j:=|
000007D0: 31 20 54 4F 20 6E 66 20 44 4F 20 42 45 47 49 4E |1 TO nf DO BEGIN|
000007E0: 0D 20 20 20 20 20 20 20 20 20 20 20 61 6C 66 61 |. alfa|
000007F0: 3A 3D 61 6C 66 61 2B 70 68 69 5B 6A 5D 3B 0D 20 |:=alfa+phi[j];. |
00000800: 20 20 20 20 20 20 20 20 20 20 67 65 6E 65 72 61 | genera|
00000810: 74 65 28 6E 2D 31 2C 61 6C 66 61 29 0D 20 20 20 |te(n-1,alfa). |
00000820: 20 20 20 20 20 20 45 4E 44 0D 20 20 20 20 20 20 | END. |
00000830: 20 45 4E 44 0D 20 20 45 4E 44 0D 20 20 3B 0D 42 | END. END. ;.B|
00000840: 45 47 49 4E 20 28 2A 20 69 73 6C 65 20 2A 29 0D |EGIN (* isle *).|
00000850: 20 20 61 6C 66 61 3A 3D 30 3B 0D 20 20 46 4F 52 | alfa:=0;. FOR|
00000860: 20 69 3A 3D 31 20 54 4F 20 67 72 61 61 64 20 44 | i:=1 TO graad D|
00000870: 4F 20 42 45 47 49 4E 0D 20 20 20 20 67 65 6E 65 |O BEGIN. gene|
00000880: 72 61 74 65 28 6E 67 2C 61 6C 66 61 29 3B 0D 20 |rate(ng,alfa);. |
00000890: 20 20 20 61 6C 66 61 3A 3D 61 6C 66 61 2B 63 68 | alfa:=alfa+ch|
000008A0: 69 3B 0D 20 20 45 4E 44 0D 45 4E 44 0D 20 20 3B |i;. END.END. ;|
000008B0: 0D 42 45 47 49 4E 20 28 2A 20 6B 6F 63 68 69 73 |.BEGIN (* kochis|
000008C0: 6C 65 20 2A 29 0D 20 20 70 72 69 6D 69 74 69 65 |le *). primitie|
000008D0: 76 65 6E 3B 0D 20 20 52 45 50 45 41 54 0D 20 20 |ven;. REPEAT. |
000008E0: 20 20 70 61 72 61 6D 65 74 65 72 73 3B 0D 20 20 | parameters;. |
000008F0: 20 20 67 72 61 66 69 6E 69 74 28 30 2C 30 29 3B | grafinit(0,0);|
00000900: 0D 20 20 20 20 73 65 74 70 65 6E 28 78 30 2C 79 |. setpen(x0,y|
00000910: 30 29 3B 0D 20 20 20 20 69 6E 6B 28 37 29 3B 0D |0);. ink(7);.|
00000920: 20 20 20 20 69 73 6C 65 3B 0D 20 20 20 20 49 46 | isle;. IF|
00000930: 20 61 66 64 72 75 6B 20 54 48 45 4E 20 42 45 47 | afdruk THEN BEG|
00000940: 49 4E 0D 20 20 20 20 20 20 20 6D 6F 76 65 3B 0D |IN. move;.|
00000950: 20 20 20 20 20 20 20 68 61 72 64 63 6F 70 79 0D | hardcopy.|
00000960: 20 20 20 20 45 4E 44 0D 20 20 55 4E 54 49 4C 20 | END. UNTIL |
00000970: 6B 6C 61 61 72 6F 76 65 72 0D 45 4E 44 2E 0D 00 |klaarover.END...|
PROGRAM. KOCH.HEX;.CONST. FM
AX= 16;. PI= 3.14159;.VAR. A
NSWER: CHAR;. ALFA,CHI: INTEGER;.
X,Y: REAL;. L,P,Q: INTEGER;.
PHI: ARRAY [1..FMAX].
OF INTEGER;. NF,NG: INTEGER;.
GRAAD: INTEGER;. X0,Y0: INTEG
ER;. E: ARRAY [0..5] OF.
RECORD. X,Y: REAL
. END;.#ART.LIB.PROCEDURE.
PRIMITIEVEN;.CONST. PI= 3
.14159;.VAR. CHI: REAL;. I:
INTEGER;.BEGIN. CHI:=PI/3;. FOR I:=0 T
O 5 DO BEGIN. E[I].X:=COS(CHI*I);.
E[I].Y:=SIN(CHI*I);. END.END.;.PROCEDU
RE. SETPEN (A,B: INTEGER);.BEGI
N. P:=A; X:=A;. Q:=B; Y:=B;.END.;.PROC
EDURE. DRAW. (L,A: INT
EGER);.VAR. P1,Q1: INTEGER;.BEGIN.
A:=(A+6) MOD 6;. X:=X+L*E[A].X;. Y:=Y
+L*E[A].Y;. P1:=ROUND(X);. Q1:=ROUND(Y
);. PLOT(2,P,Q,P1,Q1);. P:=P1;. Q:=Q1
;.END.;.PROCEDURE. PARAMETERS;.
VAR. I,HOEK: INTEGER;.
CR: CHAR;. PROCEDURE. TAB;.
BEGIN. WRITE(' '). END. ;.
BEGIN (* PARAMETERS *). CR:=CHR(13);.
PAGE; EMPTY;. WRITELN(' KOCH ISLE ',CR)
;. WRITELN(' (HEXAGONALE BASIS)');. W
RITELN(' INITIATOR :');. TAB;. WRITE(
'GRAAD POLYGOON ');. WRITE(' [1,3,6] =
');. READLN(GRAAD);. IF NOT (GRAAD IN
[1,3,6]). THEN GRAAD:=1;. TAB; WRIT
E('LENGTE ZYDE = ');. READLN(L);. WRIT
ELN(CR,' GENERATOR :');. TAB;. WRITE(
'AANTAL GENERATIES = ');. READLN(NG);.
TAB;. WRITE('AANTAL FRACTURES = ');.
READLN(NF);. IF NF>FMAX THEN NF:=FMAX;
. WRITE(CR); TAB;. WRITE('HOEKEN IN N*
60 GRADEN');. WRITE(CR);. WRITE(' DE R
EEKS = ');. FOR I:=1 TO NF DO BEGIN.
READ(HOEK);. PHI[I]:=(HOEK+6) MOD 6;
. END;. READLN;. CHI:=6 DIV GRAAD;.
WRITE('START POSITIE [X Y] = ');. READL
N(X0,Y0);.END.;.PROCEDURE. ISLE
;.VAR. I: INTEGER;. PROCEDUR
E. GENERATE. (N,AL
FA: INTEGER);. VAR. J: INTEGER;.
BEGIN. IF (N=0). THEN DRAW(L,
ALFA). ELSE BEGIN. FOR J:=
1 TO NF DO BEGIN. ALFA:=ALFA+P
HI[J];. GENERATE(N-1,ALFA).
END. END. END. ;.BEGIN (*
ISLE *). ALFA:=0;. FOR I:=1 TO GRAAD D
O BEGIN. GENERATE(NG,ALFA);. ALFA:
=ALFA+CHI;. END.END. ;.BEGIN (* KOCHIS
LE *). PRIMITIEVEN;. REPEAT. PARAME
TERS;. GRAFINIT(0,0);. SETPEN(X0,Y
0);. INK(7);. ISLE;. IF AFDRUK
THEN BEGIN. MOVE;. HARDCOPY.
END. UNTIL KLAAROVER.END...
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL