Задание 1 Вариант 1 Самостоятельная работа 5 ГДЗ Рабочая тетрадь Босова 11 класс (Информатика)
- Напишите программу. Одномерный массив $$A[1..N]$$ заполнен $$0$$ и $$1$$, расположенными в произвольном порядке. Переформируйте массив так, чтобы сначала шли элементы, равные $$0$$, а затем — $$1$$. Предусмотрите вывод исходного и переформированного массивов на экран. Запишите текст программы.
Нужно переставить элементы одномерного массива так, чтобы сначала шли все нули, а затем все единицы. Удобно сначала посчитать количество нулей, а потом заполнить массив: первые $$k$$ элементов сделать равными $$0$$, остальные — равными $$1$$.
program s5_v1_1;
const
n = 20;
var
a: array[1..n] of integer;
i, k: integer;
begin
writeln(‘Ввод массива’);
randomize;
for i := 1 to n do
begin
a[i] := random(2);
write(a[i], ‘ ‘);
end;
writeln;k := 0;
for i := 1 to n do
if a[i] = 0 then
k := k + 1;for i := 1 to k do
a[i] := 0;
for i := k + 1 to n do
a[i] := 1;writeln(‘Вывод массива’);
for i := 1 to n do
write(a[i], ‘ ‘);
end.
Возможен и другой вариант решения — перестановка элементов на месте, но способ с подсчётом нулей проще и понятнее.
Ответ
Программа приведена выше.

