Найти максимальный элемент первого массива и поместить его на первое место второго массива - PascalABC.NET
Формулировка задачи:
Здравствуйте. Было дано задание : Имеется Первый одномерный массив из N целых чисел, среди которых
могут быть одинаковые по значению элементы (задать его типизированной
константой). Число N задается в виде константы.
Поместить во Второй массив элементы Первого массива, отсортированные
в порядке УБЫВЫАНИЯ. Сортировку массива провести следующим образом:
1) найти МАКСИМАЛЬНЫЙ элемент Первого массива и поместить его на
Первое место Второго массива;
2) каким-то образом "пометить" его в Первом массиве для того, чтобы
этот элемент не участвовал в дальнейшем (придумать самостоятельно);
3) найти следующий МАКСИМАЛЬНЫЙ элемент Первого массива и поместить
его на Второе место Второго массива;
4) тем же способом "пометить" и его в Первом массиве;
5) поступая аналогично, отсортировать весь Первый массив.
Вывести оба массива на экран.
Цикл поиска большего числа я вроде составил, но не знаю как выполнить второй пункт, как пометить это наибольшее число, для того, что бы оно не участвовало в дальнейшем цикле. Буду очень благодарен за помощь.
Решение задачи: «Найти максимальный элемент первого массива и поместить его на первое место второго массива»
textual
Листинг программы
const n=10; a:array[1..n] of integer = (1,0,-1,9,3,3,4,7,0,6); type mas=array[1..n] of integer; var b:mas; s:set of 1..n; i,j,k,max,jmax:integer; begin s:=[];i:=1;max:=a[1]; while i<=n do begin k:=1; while k in s do inc(k); max:=a[k]; for j:=k to n do if (not(j in s))and(a[j]>=max)then begin max:=a[j];jmax:=j end; include(s,jmax); b[i]:=max; inc(i) end; for i:=1 to n do write(b[i],' ') end.
Объяснение кода листинга программы
- В начале кода объявляются массивы и переменные: — n — количество элементов в массиве a (10); — a — массив из 10 целых чисел; — b — второй массив, в который будет помещён максимальный элемент; — s — множество для хранения индексов элементов массива a; — i, j, k, max, jmax — вспомогательные переменные для поиска максимального элемента.
- В первой строке цикла перебираются все элементы массива a. В каждой итерации: — В каждой итерации внутреннего цикла выбирается первый свободный индекс в множестве s. — Задаётся максимальное значение из выбранного индекса. — В каждой итерации внешнего цикла проверяются все элементы массива a, начиная с текущего индекса и до конца массива. Если текущий элемент больше максимального и его индекс ещё не занят, то он становится максимальным. — После внутреннего цикла в множество s включается найденный максимальный индекс. — Во временную переменную b копируется значение максимального элемента. — Значение счётчика увеличивается на единицу.
- В конце кода выводятся все элементы второго массива.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д