Объединить элементы двух массивов в один по неубыванию - Turbo Pascal
Формулировка задачи:
Заданы два массива с N и M элементами, упорядоченными по неубыванию, объединить элементы этих массивов в один массив так, чтобы элементы снова оказались упорядоченными по неубыванию.
Не получается составить код Паскаль
Решение задачи: «Объединить элементы двух массивов в один по неубыванию»
textual
Листинг программы
const Max = 10; type inDat = array [1..Max] of integer; outDat = array [1..Max * 2] of integer; var n, m, o, x, y: integer; Ax, Ay: inDat; Z: outDat; procedure printMas;//вывод массивов на экран var n:integer; begin Writeln('Массив X - '); for n := 1 to Max do write(Ax[n]:4); writeln; Writeln('Массив Y - '); for n := 1 to Max do write(AY[n]:4); writeln; end; begin randomize; for n := 1 to Max do //создаем два случайных массива begin Ax[n] := 50 - random(101); Ay[n] := 50 - random(101); end; printMas; for n := 1 to Max - 1 do //сортировка "пузырьком" for m := 1 to Max - n do begin if Ax[m] > Ax[m + 1] then begin x := Ax[m]; Ax[m] := Ax[m + 1]; Ax[m + 1] := x; end; if Ay[m] > Ay[m + 1] then begin y := Ay[m]; Ay[m] := Ay[m + 1]; Ay[m + 1] := y; end; end; writeln('Отсортированные массивы:'); printMas; n := 1;m := 1;o := 1;//задаем счетчики while (n <= Max) or (m <= Max) do begin if n > max then //если один массив до конца дочитан то читаем другой до конца begin Z[o] := Ay[m]; inc(m); inc(o); end else if m > Max then //и наоборот begin Z[o] := Ax[n]; inc(n); inc(o); end; if (m <= Max) and (n <= Max) then //а пока ни один не дочитан до конца begin if Ax[n] > Ay[m] then //сравниваем элементы массивов и меньший пишем в третий массив begin Z[o] := Ay[m]; inc(m); inc(o); end else begin Z[o] := Ax[n]; inc(n); inc(o); end; end; end; writeln('Итоговый массив Z - '); for n := 1 to Max*2 do write(Z[n]:4); end.
Объяснение кода листинга программы
- Объявляются две переменные типа inDat, которые представляют собой массивы целых чисел размером до 10.
- Объявляется переменная типа outDat, которая представляет собой массив целых чисел размером до 20.
- Объявляются три переменные n, m и o, которые будут использоваться для отслеживания текущего элемента в каждом из массивов.
- Переменные Ax и Ay инициализируются случайными числами от 50 до 100.
- Выводится содержимое массивов X и Y.
- Массивы X и Y сортируются в порядке убывания с помощью алгоритма
пузырька
. - Задаются счетчики n, m и o для отслеживания элементов массивов.
- Пока есть элементы в массивах X и Y, происходит следующее:
- Если элемент в массиве X больше элемента в массиве Y, то записывается элемент из массива Y в итоговый массив Z.
- Если элемент в массиве Y больше элемента в массиве X, то записывается элемент из массива X в итоговый массив Z.
- Если элементы в массивах X и Y одинаковы, то записывается элемент из массива X в итоговый массив Z.
- Выводится содержимое итогового массива Z.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д