Advertisement
hpolzer

Permutate reading order of Psalms

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