Предмет: Информатика,
автор: hpvm
ПАСКАЛЬ, помогите пожалуйста отсортировать по возрастанию отрицательные элементы массива. вывести исходный массив и измененный массив. можно использовать любой метод сортировки.Массив заполнить случайными положительными и отрицательными числами
Ответы
Автор ответа:
0
const
n = 10;
var
a, b, c: array[1..n] of integer;
i, j, kb, kc, t: integer;
begin
Randomize;
Writeln('Исходный массив');
kb := 0; kc := 0;
for i := 1 to n do
begin
a[i] := random(101) - 50;
Write(a[i]:4);
if a[i] < 0 then begin Inc(kb); b[kb] := a[i] end
else begin Inc(kc); c[kc] := a[i] end
end;
Writeln;
{ теперь массив b содержит отрицательныые элементы, с - остальные }
for i := 1 to kb - 1 do
for j := 1 to kb - 1 do
if b[j] > b[j + 1] then
begin t := b[j]; b[j] := b[j + 1]; b[j + 1] := t end;
{ сливаем массивы b и c в массив а}
i := 0;
for j := 1 to kb do begin i := i + 1; a[i] := b[j] end;
for j := 1 to kc do begin i := i + 1; a[i] := c[j] end;
Writeln('Результирующий массив');
for i := 1 to n do Write(a[i]:4);
Writeln
end.
Тестовое решение:
Исходный массив
-32 -8 43 -24 8 -45 -13 40 17 46
Результирующий массив
-45 -32 -24 -13 -8 43 8 40 17 46
n = 10;
var
a, b, c: array[1..n] of integer;
i, j, kb, kc, t: integer;
begin
Randomize;
Writeln('Исходный массив');
kb := 0; kc := 0;
for i := 1 to n do
begin
a[i] := random(101) - 50;
Write(a[i]:4);
if a[i] < 0 then begin Inc(kb); b[kb] := a[i] end
else begin Inc(kc); c[kc] := a[i] end
end;
Writeln;
{ теперь массив b содержит отрицательныые элементы, с - остальные }
for i := 1 to kb - 1 do
for j := 1 to kb - 1 do
if b[j] > b[j + 1] then
begin t := b[j]; b[j] := b[j + 1]; b[j + 1] := t end;
{ сливаем массивы b и c в массив а}
i := 0;
for j := 1 to kb do begin i := i + 1; a[i] := b[j] end;
for j := 1 to kc do begin i := i + 1; a[i] := c[j] end;
Writeln('Результирующий массив');
for i := 1 to n do Write(a[i]:4);
Writeln
end.
Тестовое решение:
Исходный массив
-32 -8 43 -24 8 -45 -13 40 17 46
Результирующий массив
-45 -32 -24 -13 -8 43 8 40 17 46
Автор ответа:
0
в первом блоке заполнение массива, вывод значений и одновременное разделение массива на два - с отрицательными и неотрицательными элементами. Далее сортировка массива отрицательных методом пузырька - алгоритм описан подробно в интернете. И последний блок сливает массивы, сначала пишет отсортированныЙ, потом ему "в хвост" массив из неотрицательных. Далее следует вывод результата.
Автор ответа:
0
Можно было все сделать в одном массиве, но там такой алгоритм будет, что черт ногу сломит....
Автор ответа:
0
В одномерном массиве размерностью n=10 отсортировать по возрастанию четные элементы массива.Вывести исходный и измененный массив.Можно использовать любой метод сортировки.
Автор ответа:
0
Во-первых, эту задачу уже решали, пользуйтесь поиском. Во-вторых, новое задание должно публиковаться отдельно, в противном случае у решающих нет места для публикации ответов.
Похожие вопросы