С использованием подпрограмм ввести два вектора размерности по 5 компонентов в каждой, целочисленного типа и вывода их - Turbo Pascal
Формулировка задачи:
С использованием подпрограмм ввести два вектора размерности по 5 компонентов в каждой, целочисленного типа и вывода их. Образовать из них 3 вектор. Отсортировать по убыванию Используя метод пузырька. Вывести отсортированный третий вектор
Решение задачи: «С использованием подпрограмм ввести два вектора размерности по 5 компонентов в каждой, целочисленного типа и вывода их»
textual
Листинг программы
uses crt; const n=5; type mas=array[1..2*n] of integer; procedure vvod(var a:mas;c:char); var i:byte; begin writeln('Введите ',n,' элементов массива(целые числа) ',c); for i:=1 to n do begin write('el[',i,']='); readln(a[i]); end; end; procedure vyvod(a:mas;k:byte;s:string); var i:byte; begin writeln(s); for i:=1 to k do write(a[i],' '); writeln; end; procedure new_mas(a,b:mas;var c:mas); var i:byte; begin for i:=1 to 2*n do if i<=n then c[i]:=a[i] else c[i]:=b[i-n]; end; procedure sort(var a:mas); var i,j:byte; k:integer; begin for i:=1 to 2*n-1 do for j:=1 to 2*n-i do if a[j]<a[j+1] then begin k:=a[j]; a[j]:=a[j+1]; a[j+1]:=k; end; end; var a,b,c:mas; begin clrscr; vvod(a,'A'); vvod(b,'B'); clrscr; vyvod(a,n,'Исходный массив А'); vyvod(b,n,'Исходный массив B'); new_mas(a,b,c); vyvod(c,2*n,'Объединенный массив С'); sort(c); vyvod(c,2*n,'Отсортированный массив С'); readln end.
Объяснение кода листинга программы
- В начале кода объявляются константы и типы данных, включая массив
mas
размером 2*n. - Функция
vvod
используется для ввода элементов массиваa
и принимает два аргумента: ссылку на массивa
и символc
. - Функция
vvod
использует циклfor
для итерации по индексам от 1 до n. - В каждой итерации цикла
for
выводится сообщение с просьбой ввести элемент массива, а затем используется функцияreadln
для чтения этого элемента и его сохранения в соответствующем элементе массиваa
. - Функция
vvod
используется для вывода элементов массиваa
и принимает три аргумента: ссылку на массивa
, индексk
и строкуs
. - Функция
vvod
использует циклfor
для итерации по индексам от 1 до k. - В каждой итерации цикла
for
выводится строкаs
, а затем используется функцияwrite
для вывода соответствующего элемента массиваa
. - Функция
new_mas
используется для создания нового массиваc
путем объединения элементов массивовa
иb
. - Функция
new_mas
использует циклfor
для итерации по индексам от 1 до 2*n. - В каждой итерации цикла
for
проверяется, является ли индекс меньше или равным n. - Если индекс меньше или равен n, соответствующий элемент массива
c
устанавливается равным соответствующему элементу массиваa
. - В противном случае, соответствующий элемент массива
c
устанавливается равным соответствующему элементу массиваb
с индексом, уменьшенным на n. - Функция
sort
используется для сортировки элементов массиваa
. - Функция
sort
использует два вложенных циклаfor
для итерации по элементам массиваa
. - В каждой итерации внутреннего цикла
for
проверяется, является ли текущий элемент меньше следующего элемента. - Если текущий элемент меньше следующего элемента, выполняется последовательность действий для обмена элементов.
- Обмен элементов включает присваивание переменной
k
значения текущего элемента, присвоение текущего элемента значению следующего элемента и присвоение переменнойk
значения следующего элемента. - В конце кода выполняется ввод-вывод данных, включая ввод исходных массивов
a
иb
, вывод исходных массивовa
иb
, создание объединенного массиваc
и сортировку объединенного массиваc
. - Для ввода и вывода данных используется функция
readln
и циклfor
, соответственно. - В конце кода выполняется операция
readln
, чтобы дождаться ввода пользователя перед завершением программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д