Упорядочить четные по значению элементы второй третий массива по убыванию - Pascal ABC
Формулировка задачи:
Упорядочить четные по значению элементы второй третий массива по убыванию.
Решение задачи: «Упорядочить четные по значению элементы второй третий массива по убыванию»
textual
Листинг программы
var a:array[1..99]of integer; n,i,j,k,x:integer; begin randomize; repeat write('Введите размер массива число, кратное 3 от 3 до 99 n='); readln(n); until(n in [3..99])and(n mod 3=0); writeln('Исходный массив'); for i:=1 to n do begin a[i]:=random(100); write(a[i]:4); end; writeln; k:=n div 3; for i:=k+1 to 2*k-1 do for j:=i+1 to 2*k do if (a[i] mod 2=0)and(a[j] mod 2=0)and(a[i]<a[j]) then begin x:=a[i]; a[i]:=a[j]; a[j]:=x; end; writeln('Сортировка четных 2-й трети по убыванию'); for i:=1 to n do write(a[i]:4); end.
Объяснение кода листинга программы
- Создается переменная
a
типаarray[1..99]of integer;
, которая будет использоваться для хранения отсортированного массива. - Задаются переменные
n
,i
,j
,k
,x
типаinteger;
, которые будут использоваться для работы с массивом. - В цикле
repeat
считывается размер массива от пользователя. Условиеn in [3..99]
гарантирует, что введенное значение будет кратно 3 и находиться в диапазоне от 3 до 99. - В цикле
for
считываетсяn
элементов массива. Для каждого элементаa[i]
присваивается случайное число от 1 до 100. - Выводится отсортированный массив.
- В цикле
for
считываетсяk
элементов массива, начиная с индексаk+1
. Для каждого элементаa[i]
и следующего за нимa[j]
проверяется условиеa[i] mod 2=0
иa[j] mod 2=0
. Если условие выполняется иa[i]
меньшеa[j]
, то значенияa[i]
,a[j]
иa[i]
меняются местами. - В цикле
for
считывается оставшиеся элементы массива, начиная с индекса2*k+1
. Для каждого элементаa[i]
выводится его значение. - Выводится сообщение о завершении сортировки.
- Выводится отсортированный массив.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д