Упорядочить четные по значению элементы второй третий массива по убыванию - 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]выводится его значение. - Выводится сообщение о завершении сортировки.
- Выводится отсортированный массив.