Помогите пожалуйста
Сама программа:
{ Нужно реализовать шифровку и расшифровку с помощью кодировочной книги. }
const
MaxWord: integer = 200;
type
TBook = array[1..MaxWord] of string; // тип для выходного массива слов
function GetWords(const line: string; var words: TBook; var count: integer): integer; // разбиение строки на слова по разделителю
const
delimiter = [' ',',','.','(',')',':','?','!'];
var
back,pos,n: integer;
begin
pos:=1;
while pos <= length(line) do
begin
while (pos <= length(line)) and (line[pos] in delimiter) do pos:=pos+1;
if pos <= length(line) then
begin
back:=pos;
while (pos <= length(line)) and not(line[pos] in delimiter) do pos:=pos+1;
n:=n+1;
words[n]:=copy(line,back,pos-back);
end;
end;
GetWords:=n;
end;
var
book,txt: TBook;
shifr: array[1..MaxWord] of integer;
i,j,k,n: integer;
str: string;
key: byte;
f: text;
begin
assign(f,'kkk.txt');
reset(f);
n:=0;
while not eof(f) do
begin
readln(f,str);
n:=GetWords(str,book,n);
end;
close(f);
writeln('Кодировочная книга успешно прочитана...');
repeat
writeln;
writeln(' < МЕНЮ > ');
writeln(' 1 - зашифровать текст');
writeln(' 2 - дешифровать текст');
writeln(' 3 - выход');
writeln;
write('Введите номер пункта : ');
readln(key);
case key of
1: begin
write('Введите текст : ');
readln(str);
write('Зашифрованный текст : ');
k:=0;
k:=GetWords(str,txt,k);
for i:=1 to k do
begin
j:=1;
while j <= n do
begin
if txt[i] = book[j] then
begin
write(j,' ');
j:=n;
end;
j:=j+1;
end;
end;
writeln;
end;
2: begin
write('Введите количество слов в тексте : ');
readln(k);
write('Введите шифр : ');
for i:=1 to k do read(shifr[i]);
writeln;
write('Дешифрованный текст : ');
for i:=1 to k do write(book[shifr[i]],' ');
writeln;
end;
3: writeln('Нажмите любую клавишу для выхода...');
end;
until key = 3;
readln;
end.