Найти индекс минимального элемента массива - PascalABC.NET
Формулировка задачи:
Процедура находит индекс минимального элемента массива.
Выдает ошибку на строке 15
Должно работать, а почему-то не работает, помогите плз.
Решение задачи: «Найти индекс минимального элемента массива»
textual
Листинг программы
Program Analiz_sortirovok;{Программа выполняет сортировку массивов разными способами} uses crt; const N=5; Type Ar=array of integer; Var Arvozr,Arub,Arrandom:Ar; i:integer; Procedure BuildAr;{Заполняет 3 массива с максимальной длинной с заданными условиями} var i : integer; begin for i := 0 to N do begin Arvozr[i] := i; Arub[i] := N-i; Arrandom[i]:=Random(N); end; end; procedure swap(var x,y: integer);{Меняем местами заданные элементы массива} var t: integer; begin t := x; x := y; y := t end; procedure FindMin(startindex:integer;M:ar;var lowindex: integer);{Перебирает массив начиная с заданного индекса и находим минимальный элемент} var min,u:integer; begin lowindex:= startindex; min := M[startindex]; for u:=startindex+1 to N do if M[u]< min then begin min := M[u]; lowindex:= u; end end; procedure Pryamoi_vibor(M:ar); var j:integer; begin for j:=0 to N do begin FindMin(j,m,i); swap(M[j],M[i]); end end; begin SetLength(Arvozr,N); SetLength(Arub,N); SetLength(Arrandom,N); Buildar; Pryamoi_vibor(Arrandom); Writeln(Arrandom); end.
Объяснение кода листинга программы
- В программе объявлены три массива типа Ar: Arvozr, Arub и Arrandom.
- В процедуре BuildAr заполняются все элементы этих массивов начальными значениями.
- В процедуре swap меняются местами два заданных элемента массива.
- В процедуре FindMin перебираются все элементы массива, начиная с заданного индекса, и находится минимальный элемент.
- В процедуре Pryamoi_vibor выполняется перебор всех элементов массива и применяется алгоритм выбора по принципу
мин-макс
, в результате чего на каждой итерации находится минимальный элемент и меняется его позиция с текущей. - В основной части программы заполняются и сортируются массивы и выводится результат.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д