Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- Psalmen permutieren (PASCAL): Fuer eine regelmaessige Lesung
- und Wiederholung innerhalb eines Leseplans der Psalmen koennte
- es sinnvoll sein, die Ordnung der Psalmen staendig zu
- variieren. Die Psalmen, 150 an der Zahl, werden von diesem
- Programm daher in immer anderer Ordnung ausgegeben. Pro Zeile
- gibt das Programm die Nummern von drei Psalmen aus, die dann an
- einem Tag gelesen werden koennen.
- WITHOUT ANY WARRANTY! USE AT YOUR OWN RISK!
- I compiled and tested this program on https://www.onlinegdb.com.
- Henning POLZER, September 23rd, 2023
- Send comments and error reports to: h underscore polzer at gmx dot de.
- }
- PROGRAM psalmen_permutieren;
- CONST max=150; { 150 Psalmen }
- TYPE Tps=SET OF 1..max;
- VAR i,zahl: byte; { 0..255 }
- einzelelement: ARRAY[1..max] OF byte;
- liste: Tps;
- BEGIN
- liste:=[]; { fuer eine anfangs definierbar leere Liste sorgen }
- randomize; { Zufallszaehlengenerator initialisieren }
- FOR i:=1 TO max DO { Liste fuellen }
- BEGIN
- REPEAT
- zahl:=random(max)+1
- UNTIL NOT (zahl IN liste); { Doppelungen vermeiden }
- liste:=liste+[zahl]; { Zahl zur Liste hinzufuegen }
- { Mit Hilfe dieses Arrays kann spaeter bei der Ausgabe
- auf die Einzelelemente zugegriffen werden: }
- einzelelement[i]:=zahl
- END; { FOR i:=1 TO max DO }
- FOR i:=1 TO max DO { Ausgabe }
- BEGIN
- write (einzelelement[i],' ');
- IF i MOD 3=0 THEN writeln { Nur drei Psalmen pro Zeile }
- END { FOR i:=1 TO max DO }
- END.
- { Kurze Version, die Zahlen werden sofort ausgegeben: }
- {
- PROGRAM psalmen_permutieren;
- CONST max=150; { 150 Psalmen }
- TYPE Tps=SET OF 1..max;
- VAR i,zahl: byte; { 0..255 }
- liste: Tps;
- BEGIN
- liste:=[]; { fuer eine anfangs definierbar leere Liste sorgen }
- randomize; { Zufallszaehlengenerator initialisieren }
- FOR i:=1 TO max DO { Liste fuellen }
- BEGIN
- REPEAT
- zahl:=random(max)+1
- UNTIL NOT (zahl IN liste); { Doppelungen vermeiden }
- liste:=liste+[zahl]; { Zahl zur Liste hinzufuegen }
- write(zahl,' ');
- IF i MOD 3=0 THEN writeln { Nur drei Psalmen pro Zeile }
- END { FOR i:=1 TO max DO }
- END.
- }
- {
- Beispielausgabe:
- 2 145 97
- 57 146 149
- 78 28 41
- 25 101 137
- 117 10 4
- 75 71 93
- 95 62 138
- 36 63 42
- 12 26 29
- 115 120 21
- 37 46 133
- 8 73 34
- 111 5 1
- 130 53 102
- 124 105 24
- 112 110 19
- 3 70 30
- 144 109 7
- 131 107 114
- 143 116 49
- 82 68 129
- 123 50 52
- 134 39 32
- 77 9 79
- 54 150 81
- 99 122 33
- 89 91 44
- 106 76 84
- 48 31 60
- 104 55 127
- 128 61 47
- 13 38 58
- 118 59 125
- 22 14 45
- 141 56 43
- 74 135 87
- 17 148 90
- 88 126 132
- 119 65 15
- 140 23 113
- 18 51 108
- 64 86 92
- 100 35 6
- 67 40 142
- 121 85 94
- 66 69 136
- 72 96 16
- 20 27 98
- 11 83 80
- 147 103 139
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement