Найти индекс минимального элемента массива - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Процедура находит индекс минимального элемента массива. Выдает ошибку на строке 15 Должно работать, а почему-то не работает, помогите плз.
Листинг программы
  1. const
  2. N=5;
  3. Type
  4. Ar=array of integer;
  5. Var
  6. M:Ar;
  7. i:integer;
  8. procedure FindMin(startindex:integer;M:ar;var lowindex: integer);
  9. var min,u:integer;
  10. begin
  11. lowindex:= startindex;
  12. min := M[startindex];
  13. for u:=startindex+1 to N do
  14. if M[u]< min then
  15. begin
  16. min := M[u];
  17. lowindex:= u
  18. end
  19. end;

Решение задачи: «Найти индекс минимального элемента массива»

textual
Листинг программы
  1. Program Analiz_sortirovok;{Программа выполняет сортировку массивов разными способами}
  2. uses crt;
  3. const
  4. N=5;
  5. Type
  6. Ar=array of integer;
  7. Var
  8. Arvozr,Arub,Arrandom:Ar;
  9. i:integer;
  10.  
  11. Procedure BuildAr;{Заполняет 3 массива с максимальной длинной с заданными условиями}
  12. var
  13. i : integer;
  14. begin
  15. for i := 0 to N do
  16. begin
  17. Arvozr[i] := i;
  18. Arub[i] := N-i;
  19. Arrandom[i]:=Random(N);
  20. end;
  21. end;
  22.  
  23. procedure swap(var x,y: integer);{Меняем местами заданные элементы массива}
  24. var t: integer;
  25. begin
  26. t := x;
  27. x := y;
  28. y := t
  29. end;
  30.  
  31. procedure FindMin(startindex:integer;M:ar;var lowindex: integer);{Перебирает массив начиная с заданного индекса и находим минимальный элемент}
  32. var min,u:integer;
  33. begin
  34. lowindex:= startindex;
  35. min := M[startindex];
  36. for u:=startindex+1 to N do
  37. if M[u]< min then
  38. begin
  39. min := M[u];
  40. lowindex:= u;
  41. end
  42. end;
  43.  
  44. procedure Pryamoi_vibor(M:ar);
  45. var
  46. j:integer;
  47. begin
  48. for j:=0 to N do
  49. begin
  50. FindMin(j,m,i);
  51. swap(M[j],M[i]);
  52. end
  53. end;
  54.  
  55. begin
  56. SetLength(Arvozr,N);
  57. SetLength(Arub,N);
  58. SetLength(Arrandom,N);
  59. Buildar;
  60. Pryamoi_vibor(Arrandom);
  61. Writeln(Arrandom);
  62.  
  63. end.

Объяснение кода листинга программы

  1. В программе объявлены три массива типа Ar: Arvozr, Arub и Arrandom.
  2. В процедуре BuildAr заполняются все элементы этих массивов начальными значениями.
  3. В процедуре swap меняются местами два заданных элемента массива.
  4. В процедуре FindMin перебираются все элементы массива, начиная с заданного индекса, и находится минимальный элемент.
  5. В процедуре Pryamoi_vibor выполняется перебор всех элементов массива и применяется алгоритм выбора по принципу мин-макс, в результате чего на каждой итерации находится минимальный элемент и меняется его позиция с текущей.
  6. В основной части программы заполняются и сортируются массивы и выводится результат.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.615 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы