1 PROGRAM WORTE(INPUT, OUTPUT);
3 TYPE ALFA = ARRAY[1..10] OF CHAR;
7 A: ARRAY[1..N] OF ALFA;
8 H: ARRAY[1..N] OF INTEGER;
10 FUNCTION EQUAL(VAR X,Y: ALFA): BOOLEAN;
13 REPEAT K:=K+1 UNTIL (X[K]<>Y[K]) OR (K=10);
14 EQUAL := (X[K]=Y[K]) AND (K=10)
17 FUNCTION INDEX(X:ALFA): INTEGER;
20 FOR I := 1 TO 10 DO Z := Z + ORD(X[I]);
21 I := Z MOD N + 1; Q := Z MOD M + 1;
22 WHILE NOT EQUAL(A[I],X) AND (H[I] <> 0) DO I := (I+Q) MOD N + 1;
27 FOR I := 1 TO N DO H[I] := 0;
28 REPEAT FOR J:=1 TO 10 DO WORT[J]:=" "; J := 0;
30 UNTIL (Z>="A") AND (Z<="Z") OR EOLN;
33 REPEAT J := J+1; IF J<=10 THEN WORT[J] := Z;
35 UNTIL NOT ((Z>="A") AND (Z<="Z"));
37 A[I] := WORT; H[I] := H[I] + 1
43 THEN BEGIN FOR K:=1 TO 10 DO WRITE(A[I,K]);
46 IF J >=4 THEN BEGIN J := 0; WRITELN END