Найти максимальный элемент первого массива и поместить его на первое место второго массива - 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.

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

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

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


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

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

13   голосов , оценка 4 из 5
Похожие ответы