Работа 3.6 Упр.21 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 21. В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные — в конец с сохранением порядка следования. Дополнительный массив заводить не разрешается.
Чтобы все отрицательные элементы оказались в начале массива, а остальные — в конце, достаточно несколько раз просматривать массив и менять местами соседние элементы, если слева стоит неотрицательное число, а справа — отрицательное.
При таком обмене отрицательные элементы постепенно «всплывают» влево, а порядок следования элементов внутри каждой группы сохраняется.
var
a: array[1..100] of integer;
i, j, n, t: integer;
begin
randomize;
writeln(‘vvedite kol-vo elementov’);
readln(n);writeln(‘ishodnyj massiv’);
for i := 1 to n do
begin
a[i] := random(20) — 10;
write(a[i], ‘ ‘);
end;
writeln;for i := 1 to n do
for j := 1 to n — 1 do
if (a[j] >= 0) and (a[j + 1] < 0) then
begin
t := a[j];
a[j] := a[j + 1];
a[j + 1] := t;
end;writeln(‘novyj massiv’);
for i := 1 to n do
write(a[i], ‘ ‘);
readln;
end.
В программе используется только один дополнительный элемент t для обмена, дополнительный массив не нужен.
Ответ
Отрицательные элементы перемещаются в начало массива последовательными обменами соседних элементов, остальные — в конец, порядок следования сохраняется.