Найти индекс минимального элемента массива - PascalABC.NET
Формулировка задачи:
Процедура находит индекс минимального элемента массива.
Выдает ошибку на строке 15
Должно работать, а почему-то не работает, помогите плз.
Листинг программы
- const
- N=5;
- Type
- Ar=array of integer;
- Var
- M:Ar;
- i:integer;
- 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;
Решение задачи: «Найти индекс минимального элемента массива»
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 выполняется перебор всех элементов массива и применяется алгоритм выбора по принципу
мин-макс
, в результате чего на каждой итерации находится минимальный элемент и меняется его позиция с текущей. - В основной части программы заполняются и сортируются массивы и выводится результат.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д