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

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

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

Здравствуйте. Было дано задание : Имеется Первый одномерный массив из N целых чисел, среди которых могут быть одинаковые по значению элементы (задать его типизированной константой). Число N задается в виде константы. Поместить во Второй массив элементы Первого массива, отсортированные в порядке УБЫВЫАНИЯ. Сортировку массива провести следующим образом: 1) найти МАКСИМАЛЬНЫЙ элемент Первого массива и поместить его на Первое место Второго массива; 2) каким-то образом "пометить" его в Первом массиве для того, чтобы этот элемент не участвовал в дальнейшем (придумать самостоятельно); 3) найти следующий МАКСИМАЛЬНЫЙ элемент Первого массива и поместить его на Второе место Второго массива; 4) тем же способом "пометить" и его в Первом массиве; 5) поступая аналогично, отсортировать весь Первый массив. Вывести оба массива на экран. Цикл поиска большего числа я вроде составил, но не знаю как выполнить второй пункт, как пометить это наибольшее число, для того, что бы оно не участвовало в дальнейшем цикле. Буду очень благодарен за помощь.

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

textual
Листинг программы
  1. const n=10;
  2.       a:array[1..n] of integer = (1,0,-1,9,3,3,4,7,0,6);
  3. type mas=array[1..n] of integer;
  4. var b:mas;
  5.     s:set of 1..n;
  6.     i,j,k,max,jmax:integer;
  7. begin
  8.     s:=[];i:=1;max:=a[1];
  9.     while i<=n do
  10.      begin
  11.       k:=1;
  12.       while k in s do inc(k);
  13.       max:=a[k];
  14.       for j:=k to n do
  15.        if (not(j in s))and(a[j]>=max)then begin max:=a[j];jmax:=j end;
  16.       include(s,jmax);
  17.       b[i]:=max;
  18.       inc(i)
  19.      end;
  20.     for i:=1 to n do write(b[i],' ')
  21. end.

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

  1. В начале кода объявляются массивы и переменные: — n — количество элементов в массиве a (10); — a — массив из 10 целых чисел; — b — второй массив, в который будет помещён максимальный элемент; — s — множество для хранения индексов элементов массива a; — i, j, k, max, jmax — вспомогательные переменные для поиска максимального элемента.
  2. В первой строке цикла перебираются все элементы массива a. В каждой итерации: — В каждой итерации внутреннего цикла выбирается первый свободный индекс в множестве s. — Задаётся максимальное значение из выбранного индекса. — В каждой итерации внешнего цикла проверяются все элементы массива a, начиная с текущего индекса и до конца массива. Если текущий элемент больше максимального и его индекс ещё не занят, то он становится максимальным. — После внутреннего цикла в множество s включается найденный максимальный индекс. — Во временную переменную b копируется значение максимального элемента. — Значение счётчика увеличивается на единицу.
  3. В конце кода выводятся все элементы второго массива.

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


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

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

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

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

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

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