1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Семакин
Работа 3.6 Упр.21 ГДЗ Семакин 10 класс (Информатика)
Семакин, Хеннер, Шеина
10 класс
Автор
Семакин, Хеннер, Шеина

Работа 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 для обмена, дополнительный массив не нужен.

Ответ

Отрицательные элементы перемещаются в начало массива последовательными обменами соседних элементов, остальные — в конец, порядок следования сохраняется.



Общая оценка
3.7 / 5
Другие учебники
Другие предметы