00000000: 70 72 6F 67 72 61 6D 20 6C 6F 74 74 6F 3B 0D 63 |program lotto;.c|
00000010: 6F 6E 73 74 20 6B 30 3D 31 30 3B 0D 76 61 72 20 |onst k0=10;.var |
00000020: 61 3A 70 61 63 6B 65 64 20 61 72 72 61 79 5B 31 |a:packed array[1|
00000030: 2E 2E 34 39 5D 20 6F 66 20 62 6F 6F 6C 65 61 6E |..49] of boolean|
00000040: 3B 0D 20 20 20 20 69 2C 6B 3A 20 69 6E 74 65 67 |;. i,k: integ|
00000050: 65 72 3B 0D 66 75 6E 63 74 69 6F 6E 20 72 6E 64 |er;.function rnd|
00000060: 28 7A 61 68 6C 3A 69 6E 74 65 67 65 72 29 3A 72 |(zahl:integer):r|
00000070: 65 61 6C 3B 0D 63 6F 6E 73 74 20 61 3D 31 33 3B |eal;.const a=13;|
00000080: 0D 20 20 20 20 20 20 62 3D 32 39 3B 0D 20 20 20 |. b=29;. |
00000090: 20 20 20 6D 3D 36 33 3B 0D 62 65 67 69 6E 0D 20 | m=63;.begin. |
000000A0: 20 7A 61 68 6C 3A 3D 28 61 2A 7A 61 68 6C 2B 62 | zahl:=(a*zahl+b|
000000B0: 29 20 6D 6F 64 20 6D 3B 0D 20 20 72 6E 64 3A 3D |) mod m;. rnd:=|
000000C0: 7A 61 68 6C 2F 6D 3B 0D 65 6E 64 3B 0D 62 65 67 |zahl/m;.end;.beg|
000000D0: 69 6E 0D 20 20 66 6F 72 20 69 3A 3D 31 20 74 6F |in. for i:=1 to|
000000E0: 20 34 39 20 64 6F 20 61 5B 69 5D 3A 3D 66 61 6C | 49 do a[i]:=fal|
000000F0: 73 65 3B 0D 20 20 6B 3A 3D 6B 30 3B 0D 20 20 77 |se;. k:=k0;. w|
00000100: 72 69 74 65 6C 6E 28 27 64 69 65 20 6C 6F 74 74 |riteln('die lott|
00000110: 6F 7A 61 68 6C 65 6E 3A 20 27 29 3B 0D 20 20 69 |ozahlen: ');. i|
00000120: 3A 3D 30 3B 0D 20 20 77 68 69 6C 65 20 69 3C 36 |:=0;. while i<6|
00000130: 20 64 6F 0D 20 20 62 65 67 69 6E 0D 20 20 20 20 | do. begin. |
00000140: 6B 3A 3D 74 72 75 6E 63 28 72 6E 64 28 6B 29 2A |k:=trunc(rnd(k)*|
00000150: 34 38 2B 30 2E 35 29 2B 31 3B 0D 20 20 20 20 69 |48+0.5)+1;. i|
00000160: 66 20 61 5B 6B 5D 3D 66 61 6C 73 65 20 74 68 65 |f a[k]=false the|
00000170: 6E 0D 20 20 20 20 62 65 67 69 6E 0D 20 20 20 20 |n. begin. |
00000180: 20 20 77 72 69 74 65 28 6B 3A 34 29 3B 0D 20 20 | write(k:4);. |
00000190: 20 20 20 20 69 3A 3D 69 2B 31 3B 0D 20 20 20 20 | i:=i+1;. |
000001A0: 20 20 61 5B 6B 5D 3A 3D 74 72 75 65 0D 20 20 20 | a[k]:=true. |
000001B0: 20 65 6E 64 3B 0D 20 20 65 6E 64 3B 20 28 2A 20 | end;. end; (* |
000001C0: 77 68 69 6C 65 2D 73 63 68 6C 65 69 66 65 20 2A |while-schleife *|
000001D0: 29 0D 65 6E 64 2E 0D |).end.. |
PROGRAM LOTTO;.CONST K0=10;.VAR A:PACKED
ARRAY[1..49] OF BOOLEAN;. I,K: INTEG
ER;.FUNCTION RND(ZAHL:INTEGER):REAL;.CON
ST A=13;. B=29;. M=63;.BEGIN.
ZAHL:=(A*ZAHL+B) MOD M;. RND:=ZAHL/M;.
END;.BEGIN. FOR I:=1 TO 49 DO A[I]:=FAL
SE;. K:=K0;. WRITELN('DIE LOTTOZAHLEN:
');. I:=0;. WHILE I<6 DO. BEGIN.
K:=TRUNC(RND(K)*48+0.5)+1;. IF A[K]=F
ALSE THEN. BEGIN. WRITE(K:4);.
I:=I+1;. A[K]:=TRUE. END;.
END; (* WHILE-SCHLEIFE *).END..
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL