Процедура неправильно добавляет слово в массив

решил написать подобие орфографического словаря на паскале, но она работает неправильно (не знаю почему). Когда добавляешь слово, а потом пытаешься это же слово добавить повторно, то он сообщает, что слово уже есть в массиве. Но если добавить слово, а потом его распечатать, то в списке его не будет.

var mass: array [0..1000] of string; s:string; dev,kol:integer;

procedure Dub();
var b: boolean; y: char; i:integer;
begin
        repeat
                b:=true;
                write('Введите слово: ');
                readln(s);
                for i := 0 to kol - 1 do begin
                        if mass[i] = s then b := false;
                end;
                if b then begin
                        mass[kol]:= s;
                        kol:= kol + 1;
                end
                else writeln('Это слово есть в списке!');
                writeln(kol);
                write('Есть еще слова?(Д/Н): ');
                readln(y);
        until y = 'Н';
end;

procedure print();
var i:integer;
begin
        writeln('Список слов:');
        for i:=0 to kol - 1 do writeln('    ', mass[i]);
        writeln('Всего: ', kol);
end;

begin
        repeat
                mass[0] := 'кое за чем';
                mass[1] := 'брошюра';
                kol:=2;
                writeln('Действия:');
                writeln('    1:    Добавить слово');
                writeln('    2:    Распечатать слова');
                writeln('    0:    Выход');
                write('Введите действие: ');
                readln(dev);
                case dev of
                        1: Dub();
                        2: print();
                        0: break;
                        else writeln('Нет такой команды!');
                end;
        until false;
        readln;
end.

Ответы (1 шт):

Автор решения: Ainar-G

Так вы же сами внутри цикла список перезаписываете:

BEGIN
    REPEAT
        mass[0] := 'кое за чем';
        mass[1] := 'брошюра';
        kol := 2;
        WriteLn('Действия: ');
        { … }

Вынесите инициализацию за пределы цикла.

→ Ссылка