00000000: 70 72 6F 67 72 61 6D 20 6A 6F 73 65 70 68 3B 0D |program joseph;.|
00000010: 63 6F 6E 73 74 20 61 6E 7A 61 68 6C 3D 34 31 3B |const anzahl=41;|
00000020: 0D 20 20 20 20 20 20 72 65 73 74 3D 32 3B 0D 20 |. rest=2;. |
00000030: 20 20 20 20 20 61 62 7A 61 65 68 6C 3D 33 3B 0D | abzaehl=3;.|
00000040: 76 61 72 20 69 2C 6A 2C 6B 3A 69 6E 74 65 67 65 |var i,j,k:intege|
00000050: 72 3B 0D 20 20 20 20 72 65 69 68 65 3A 73 65 74 |r;. reihe:set|
00000060: 20 6F 66 20 31 2E 2E 61 6E 7A 61 68 6C 3B 0D 62 | of 1..anzahl;.b|
00000070: 65 67 69 6E 0D 28 2A 69 6E 69 74 69 61 6C 69 73 |egin.(*initialis|
00000080: 69 65 72 65 6E 2A 29 0D 20 20 72 65 69 68 65 3A |ieren*). reihe:|
00000090: 3D 5B 31 2E 2E 61 6E 7A 61 68 6C 5D 3B 0D 20 69 |=[1..anzahl];. i|
000000A0: 3A 3D 61 6E 7A 61 68 6C 3B 0D 20 6B 3A 3D 61 6E |:=anzahl;. k:=an|
000000B0: 7A 61 68 6C 3B 0D 20 28 2A 77 69 65 64 65 72 68 |zahl;. (*wiederh|
000000C0: 6F 6C 65 20 62 69 73 20 6E 75 72 20 6E 6F 63 68 |ole bis nur noch|
000000D0: 20 32 0D 20 20 20 65 6C 65 6D 65 6E 74 65 20 69 | 2. elemente i|
000000E0: 6E 20 64 65 72 20 72 65 69 68 65 20 73 69 6E 64 |n der reihe sind|
000000F0: 0D 20 20 20 64 69 65 73 65 20 67 65 62 65 6E 20 |. diese geben |
00000100: 64 69 65 20 67 65 73 75 63 68 74 65 6E 0D 20 20 |die gesuchten. |
00000110: 20 70 6F 73 69 74 69 6F 6E 65 6E 20 61 6E 20 2A | positionen an *|
00000120: 29 0D 20 77 68 69 6C 65 20 6B 3E 72 65 73 74 20 |). while k>rest |
00000130: 64 6F 0D 20 20 20 62 65 67 69 6E 0D 20 20 20 20 |do. begin. |
00000140: 66 6F 72 20 6A 3A 3D 20 31 20 74 6F 20 61 62 7A |for j:= 1 to abz|
00000150: 61 65 68 6C 20 64 6F 0D 20 20 20 20 20 20 20 72 |aehl do. r|
00000160: 65 70 65 61 74 0D 20 20 20 20 20 20 20 20 69 66 |epeat. if|
00000170: 20 69 3C 61 6E 7A 61 68 6C 20 74 68 65 6E 20 69 | i<anzahl then i|
00000180: 3A 3D 69 2B 31 0D 20 20 20 20 20 20 20 20 20 20 |:=i+1. |
00000190: 65 6C 73 65 20 69 3A 3D 31 3B 0D 20 20 20 20 20 |else i:=1;. |
000001A0: 20 20 75 6E 74 69 6C 20 69 20 69 6E 20 72 65 69 | until i in rei|
000001B0: 68 65 3B 0D 20 28 2A 20 64 65 72 20 6A 65 77 65 |he;. (* der jewe|
000001C0: 69 6C 73 20 64 72 69 74 74 65 20 77 69 72 64 20 |ils dritte wird |
000001D0: 67 65 73 74 72 69 63 68 65 6E 20 2A 29 0D 20 20 |gestrichen *). |
000001E0: 20 20 72 65 69 68 65 3A 3D 72 65 69 68 65 2D 5B | reihe:=reihe-[|
000001F0: 69 5D 3B 0D 20 20 20 20 6B 3A 3D 30 3B 0D 20 28 |i];. k:=0;. (|
00000200: 2A 20 6A 65 74 7A 74 20 77 69 72 64 20 66 65 73 |* jetzt wird fes|
00000210: 74 67 65 73 74 65 6C 6C 74 2C 20 77 69 65 76 69 |tgestellt, wievi|
00000220: 65 6C 65 20 65 6C 65 6D 65 6E 74 65 20 64 69 65 |ele elemente die|
00000230: 0D 20 20 20 20 6D 65 6E 67 65 20 6E 6F 63 68 20 |. menge noch |
00000240: 65 6E 74 68 61 65 6C 74 20 2A 29 0D 20 20 20 20 |enthaelt *). |
00000250: 66 6F 72 20 6A 3A 3D 20 31 20 74 6F 20 61 6E 7A |for j:= 1 to anz|
00000260: 61 68 6C 20 64 6F 0D 20 20 20 20 20 20 69 66 20 |ahl do. if |
00000270: 6A 20 69 6E 20 72 65 69 68 65 20 74 68 65 6E 20 |j in reihe then |
00000280: 6B 3A 3D 6B 2B 31 3B 0D 20 20 65 6E 64 3B 20 28 |k:=k+1;. end; (|
00000290: 2A 20 65 6E 64 65 20 64 65 72 20 77 68 69 6C 65 |* ende der while|
000002A0: 2D 73 63 68 6C 65 69 66 65 2A 29 0D 20 20 20 66 |-schleife*). f|
000002B0: 6F 72 20 6A 3A 3D 20 31 20 74 6F 20 61 6E 7A 61 |or j:= 1 to anza|
000002C0: 68 6C 20 64 6F 0D 20 20 20 20 20 69 66 20 6A 20 |hl do. if j |
000002D0: 69 6E 20 72 65 69 68 65 20 74 68 65 6E 0D 20 20 |in reihe then. |
000002E0: 20 20 20 20 20 20 77 72 69 74 65 6C 6E 28 27 67 | writeln('g|
000002F0: 65 73 75 63 68 74 65 20 70 6F 73 69 74 69 6F 6E |esuchte position|
00000300: 6E 72 2E 3A 20 27 2C 6A 29 0D 65 6E 64 2E 0D |nr.: ',j).end.. |
PROGRAM JOSEPH;.CONST ANZAHL=41;. R
EST=2;. ABZAEHL=3;.VAR I,J,K:INTEGE
R;. REIHE:SET OF 1..ANZAHL;.BEGIN.(*I
NITIALISIEREN*). REIHE:=[1..ANZAHL];. I
:=ANZAHL;. K:=ANZAHL;. (*WIEDERHOLE BIS
NUR NOCH 2. ELEMENTE IN DER REIHE SIND
. DIESE GEBEN DIE GESUCHTEN. POSITIO
NEN AN *). WHILE K>REST DO. BEGIN.
FOR J:= 1 TO ABZAEHL DO. REPEAT.
IF I<ANZAHL THEN I:=I+1.
ELSE I:=1;. UNTIL I IN REIHE;. (*
DER JEWEILS DRITTE WIRD GESTRICHEN *).
REIHE:=REIHE-[I];. K:=0;. (* JETZT
WIRD FESTGESTELLT, WIEVIELE ELEMENTE DIE
. MENGE NOCH ENTHAELT *). FOR J:=
1 TO ANZAHL DO. IF J IN REIHE THEN
K:=K+1;. END; (* ENDE DER WHILE-SCHLEIF
E*). FOR J:= 1 TO ANZAHL DO. IF J
IN REIHE THEN. WRITELN('GESUCHTE
POSITIONNR.: ',J).END..
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL