Сформировать и вывести новый массив, в который поместить в убывающем порядке все отрицательные числа исходного - Pascal ABC
Формулировка задачи:
Дан произвольный одномерный массив целых чисел. Размерность 15. Сформировать и вывести новый массив, в который поместить в убывающем порядке все отрицательные числа исходного массива.
помогите
Решение задачи: «Сформировать и вывести новый массив, в который поместить в убывающем порядке все отрицательные числа исходного»
textual
Листинг программы
program pr;
var
a: array [1..15] of integer;
b: array [1..15] of integer;
i, j, cout, temp, k: integer;
begin
j := 1;
cout := 0;
writeln('Исходный массив');
for i := 1 to 15 do
begin
a[i] := random(21) - 10; // диапазон заполнения ставь любой ( здесь от -10 до 10)
write(a[i]:3);
end;
for i := 1 to 15 do
if a[i] < 0 then
begin
cout := cout + 1;
b[j] := a[i];
j := j + 1;
end;
writeln;
for j := 1 to cout - 1 do
for k := 1 to cout - j do
if b[k] < b[k + 1] then
begin
temp := b[k];
b[k] := b[k + 1];
b[k + 1] := temp;
end;
writeln;
writeln('Полученный массив');
for j := 1 to cout do
write(b[j]:3);
end.
Объяснение кода листинга программы
- Создается программа на языке Pascal ABC.
- Объявляются переменные: a, b, i, j, cout, temp, k - целочисленные.
- Задается начальное значение для переменной j - 1.
- Задается начальное значение для переменной cout - 0.
- Выводится сообщение «Исходный массив».
- Заполняется массив a случайными числами от -10 до 10 (включительно).
- Выводится сообщение «Полученный массив».
- Заполняется массив b числами из массива a в порядке убывания.
- Проверяется условие: если текущее число в массиве b меньше следующего, то оно помещается в новую позицию, а текущая позиция сдвигается на одну позицию вправо.
- Повторяется шаг 9 до тех пор, пока не будет выполнено условие: текущее число в массиве b меньше следующего.
- Выводится сообщение «Полученный массив» с указанием значений элементов массива b.