Массив отсортировать по возрастанию, используя метод парных перестановок. - Turbo Pascal
Формулировка задачи:
Помогите разработать программу, выполняющие следующие действия:
1. Ввод размера массива 2. Выделения памяти под исходный массив (массивы) 3. Ввод исходного массива (массивов) 4. Вывод введенных массивов 5. Обработка массива (массивов) 6. Вывод получившихся массивов 7. Освобождение динамической памяти
Ввести массив А. В массив B скопировать все элементы массива А, имеющие четный индекс, слева от которых расположены элементы с нечетным значением. Массив В отсортировать по возрастанию, используя метод парных перестановок.Решение задачи: «Массив отсортировать по возрастанию, используя метод парных перестановок.»
textual
Листинг программы
uses crt; type TTmas=array[1..1] of integer; Tmas=^TTmas; var a,b:Tmas; n,m,i,j,x:integer; begin clrscr; randomize; {ввод размера} repeat write('Размер массива A от 2 до 100 n='); readln (n); until n in [2..100]; {выделение памяти} getmem(a,sizeof(TTmas)*n); getmem(b,sizeof(TTmas)*n); {ввод массива А} writeln('Массив А'); for i:=1 to n do begin a^[i]:=1+random(50); write (a^[i]:4); end; writeln; {получение массива В} m:=0; for i:=2 to n do if(i mod 2=0)and odd(a^[i-1]) then begin inc(m); b^[m]:=a^[i]; end; if m=0 then begin write('Массив В пустой'); readln; exit; end; {сортировка массива пузырьком} writeln('Массив В до сортировки'); for i:=1 to m do write(b^[i]:4); writeln; for i:=1 to m-1 do for j:=1 to m-1 do if b^[j]>b^[j+1] Then begin x:=b^[j]; b^[j]:=b^[j+1]; b^[j+1]:=x end; {вывод сортированного массива} writeln('Массив В после сортировки'); for i:=1 to m do write(b^[i]:4); {освобождение динамической памяти(в порядке обратном начальному)} freemem(b,sizeof(TTmas)*n); freemem(a,sizeof(TTmas)*n); readln end.
Объяснение кода листинга программы
- В первой строке кода используется библиотека crt, которая является стандартной частью Turbo Pascal.
- Затем определяется тип данных TTmas, который представляет собой массив целых чисел размером от 1 до 100.
- Далее определяются две переменные типа TTmas - a и b. Они будут использоваться для хранения отсортированного и не отсортированного массивов соответственно.
- Затем идет цикл, который запрашивает у пользователя размер массива A от 2 до 100 и выделяет память под два массива такого же размера.
- В следующем блоке кода вводится сам массив A. Каждый элемент этого массива генерируется случайным образом и записывается в соответствующую ячейку массива a.
- После ввода массива A выполняется вывод его элементов.
- Затем идет блок кода, который реализует алгоритм сортировки пузырьком. Он состоит из двух вложенных циклов, которые сравнивают соседние элементы массива b и меняют их местами, если они находятся в неправильном порядке.
- После завершения сортировки выполняется вывод отсортированного массива b.
- Затем происходит освобождение выделенной памяти с помощью функций freemem.
- И, наконец, программа завершается с помощью команды readln.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д