Задание 1 Вариант 1 Самостоятельная работа 5 ГДЗ Рабочая тетрадь Босова 11 класс (Информатика)


Решение Решение

Ниже вариант решения задания из учебника Босова, Босова, Аквилянов 11 класс, Бином:

Самостоятельная работа № 5

РЕШЕНИЕ ЗАДАЧ ПО ОБРАБОТКЕ ОДНОМЕРНЫХ МАССИВОВ

ВАРИАНТ 1

1. Напишите программу. Одномерный массив А[1..N] заполнен 0 и 1, расположенными в произвольном порядке. Переформируйте массив так, чтобы сначала шли элементы, равные 0, а затем — 1. Предусмотрите вывод исходного и переформированного массивов на экран.

Запишите текст программы.

program s5_v1_1;

const

n = 20;

var

a: array[1..n] of integer;

i, k, c: integer;

begin

writeln(taskВвод массиваtask);

randomize;

for i := 1 to n do

begin

a[i] := random(2);//получается массив из 1 и 0

write(a[i], task task)

end;

writeln;

k := 1;

for i := 1 to n do

if (a[i] = 0) then //если встретился 0

if(i k)then

begin //перестановка

c := a[i];

a[i] := a[k];

a[k] := c;

k := k + 1

end

else k:=k+1;//если i и k совпадают

writeln(taskВывод массиваtask);

for i := 1 to n do

write(a[i], task task)

end.

Ввод массива

0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 1 0 0 0 1

Вывод массива

0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Вариант проще. Подсчитать количество 0, написать их в начале массива, затем дописать его 1.

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;