Отсортировать массив по убыванию - PascalABC.NET
Формулировка задачи:
Помогите плз)
нужно поставить элементы с 1 и 3 столбца массива как до сортировки.
то есть, к примеру, после сортировки стало: 227|0,000987|227|0,000987
а должно быть 192|0,000987|197|0,000987
Решение задачи: «Отсортировать массив по убыванию»
textual
Листинг программы
begin Randomize; var a : array [1..64, 1..4] of Real; for var i := 1 to 64 do begin a[i, 1] := i; a[i, 2] := Random; a[i, 3] := i; a[i, 4] := Random; end; var Col := 2; // Сортировка по второму столбцу var Row := 1; while Row < 64 do if a[Row, Col] < a[Row+1, Col] then begin Swap(a[Row, Col-1], a[Row+1, Col-1]); Swap(a[Row, Col ], a[Row+1, Col ]); if Row > 1 then Row -= 1; end else Row += 1; Col := 4; // Сортировка по четвёртому столбцу Row := 1; while Row < 64 do if a[Row, Col] < a[Row+1, Col] then begin Swap(a[Row, Col-1], a[Row+1, Col-1]); Swap(a[Row, Col ], a[Row+1, Col ]); if Row > 1 then Row -= 1; end else Row += 1; for var i := 1 to 64 do WriteLn(a[i,1]:2, ' - ', a[i,2]:6:4, ' ', a[i,3]:2, ' - ', a[i,4]:6:4); end.
Объяснение кода листинга программы
В данном коде представлен алгоритм сортировки массива по убыванию двух отдельных массивов, используя два различных столбца.
- Создается массив типа Real размером 64x4, заполняемый случайными значениями от 0 до 63 для каждого элемента.
- Два вложенных цикла проверяют, что текущий элемент меньше следующего в выбранном столбце. Если это так, то элементы меняются местами.
- Если текущий элемент больше следующего, то происходит переход к следующему элементу внешнего цикла.
- После завершения первого вложенного цикла, происходит переход ко второму вложенному циклу, который сортирует массив по второму столбцу.
- После завершения второго вложенного цикла, происходит вывод отсортированного массива. Список действий:
- Создание массива
- Заполнение массива
- Первый цикл сортировки
- Второй цикл сортировки
- Вывод отсортированного массива
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д