Не работает сортировка методом выбора - Turbo Pascal
Формулировка задачи:
Укажите пожалуйста на ошибку. Пытался отсортировать массив методом выбора, но что-то идет не так
Решение задачи: «Не работает сортировка методом выбора»
textual
Листинг программы
program mv; const N = 10; var arr: array[1..N] of integer; {var} {z,x,v,i,m: integer; //Что за Z X V M ?? Зачем 2 раза писать Var?} i, j, x, ri: integer;//i,j - для циклов x - промежуточное значение для обмена begin writeln('Массив:'); for i := 1 to N do begin arr[i] := random(10); write(arr[i]:3) end; for i := 1 to N do begin ri := i; x := arr[i]; for j := i + 1 to N do { найти элемент с наименьшим значением } if arr[j] < x then begin ri := j; x := arr[j]; end; arr[ri] := arr[i]; { обмен } arr[i] := x; end; writeln; writeln('Массив после сортировки:'); for i := 1 to N do write(arr[i]:3); end.
Объяснение кода листинга программы
В данном коде объявлены следующие переменные:
- arr — массив целых чисел от 1 до N.
- N — константа, равная 10.
- i, j, x, ri — переменные для циклов и промежуточных вычислений.
- random(10) — функция генерации случайного числа от 0 до 9 (включительно).
- write(arr[i]:3) — записывает значение элемента массива arr[i] в текущую строку.
- arr[ri] := arr[i] — обмен значениями элементов массива.
- x — временная переменная для хранения промежуточного значения при обмене. Код выполняет следующие действия:
- Выводит исходный массив.
- Для каждого элемента массива (от 1 до N):
- Генерирует случайное число и записывает его в массив.
- Находит элемент с наименьшим значением (сравнивая элементы массива от i+1 до N).
- Если найденный элемент меньше текущего, меняет их местами.
- Записывает текущий элемент в его окончательное положение.
- Выводит отсортированный массив.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д