слова, оканчивающихся заданной буквой. Записать найденные слова в текстовый файл. Все найденные слова должны быть разными!
просьба помочь написать программу

uses crt;
const
delimiters = [' ', '.', ',']; { это - разделители между словами }
letter = 's'; { та самая буква, которая должна быть последней }
const
amount = 4; { столько слов, оканчивающихся буквой lettter надо найти }
type
str_array = array[1 .. amount] of string;
const
long_words: str_array =
('', '', '', '');
min_len: integer = 0;
{
это дополнительная проц-ра для сортировки массива
(пузырек, взято из FAQ...)
}
procedure sort_array(var ar: str_array; n: integer);
var
i, j: integer;
T: string;
begin
For i := 1 To n Do
For j := n DownTo i+1 Do
If length(ar[Pred(j)]) > length(ar[j]) Then Begin
T := ar[Pred(j)]; ar[Pred(j)] := ar[j]; ar[j] := T
End
end;
{
процедура проверяет, нужно ли включать слово S в массив,
и если нужно - слово запоминается, при этом самое короткое
из ранее запомненных слов "выталкивается" из массива...
}
procedure check_word(s: string);
var
i: integer;
begin
if (length(s) > min_len) and (s[length(s)] = letter) then begin
sort_array(long_words, amount);
for i := 1 to amount do
if long_words[i] = s then exit;
long_words[1] := s;
sort_array(long_words, amount);
end;
end;
var
f: text;
s, next_word: string;
i: byte;
begin
assign(f, 'katusha_1.txt'); { файл, с которым я прогонял программу }
reset(f);
while not eof(f) do begin
readln(f, s);
i := 1;
while i <= length(s) do begin
while (s[i] in delimiters) and (i <= length(s)) do inc(i);
next_word := '';
while not (s[i] in delimiters) and (i <= length(s)) do begin
next_word := next_word + s[i]; inc(i)
end;
{ в этом месте в next_word хранится очередное найденное слово }
check_word(next_word);
end;
end;
close(f);
{ здесь замени вывод на экран выводом в файл }
for i := 1 to amount do
if long_words[i] <> '' then writeln(long_words[i]);
end.