Ошибка: "нет индексного свойства по умолчанию для типа byte" - PascalABC.NET
Формулировка задачи:
Решение задачи: «Ошибка: "нет индексного свойства по умолчанию для типа byte"»
procedure Sortvybora(na: byte; var a: massiv);// сортировка выбора var i, j, nmin, c: byte; begin for i := 1 to na do begin if (a[i] < 10) or (a[i] > 99) then continue; nmin := i; for j := i + 1 to na do if (a[j] > 9) and (a[j] < 100) and (a[j] < a[nmin]) then nmin := j; if nmin <> i then begin//сравнение c := a[i];//запминает пересылка элемента a[i] := a[nmin];// a[nmin] := c;//перестановка если нужна end; end; end;
Объяснение кода листинга программы
В данной программе реализован алгоритм сортировки выбором. Он предназначен для работы с массивом байтов, представленным в виде диапазона от 10 до 99. Процедура начинается с цикла, который проходит по всем элементам массива. Если текущий элемент меньше 10 или больше 99, то он пропускается (continue). Если текущий элемент больше или равен 10 и меньше 99, то он помечается как минимальный элемент в этом диапазоне. Далее следует еще один цикл, который проходит по элементам, начиная с текущего элемента и до конца массива. Если текущий элемент больше 9 и меньше 100 и при этом меньше текущего минимального элемента, то он становится новым минимальным элементом. Если текущий минимальный элемент отличается от индекса текущего элемента, то производится перестановка элементов. В итоге получается отсортированный массив.