Про настройки компиляции я конечно загнул.
Нашёл такой перевод документации Delphi. Так же это, видимо, справедливо и для Free Pascal Compiler.
Если вы явно не инициализируете глобальную переменную, компилятор устанавливает для нее значение 0. Данные из экземпляров объектов (поля) также инициализируются нолем. На платформе Wiin32 содержимое локальных переменных не определено до того момента, как им не будет присвоено значение.
Также, если в IDE Free Pascal в настройках (Options->Compiler->Verbose) выбрать Warnings, Notes, Hints, General Info, то при компиляции программы из первого поста, выяснится, что переменная b может быть не инициализирована, то есть глобальная переменная "b" будут забита нулями.
И потом ещё 9-ть раз придётся ввести это круглое значение, т.к. других значений программа ввести не позволит.
И тут возникает вопрос: Какие настройки компиляции нужно включить, чтобы принудительно обнулялся массив из integer, при его создании?
Позволит ввести отличное от нуля, только ноль можно вводить до посинения (а не 9-ть раз), потому что isFound будет равен "1".
Смотрим в код
- Код: Выделить всё
if b[j] = element then begin
isFound:=1;
break;
end;
Любой b[j] равен, по умолчанию, нулю и element равен нулю, а для завершения repeat until, isFount должен быть нулём, а получается единица. И пошёл repeat на новый круг.