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

Решение #1

Изображение Самостоятельная работа № 5РЕШЕНИЕ ЗАДАЧ ПО ОБРАБОТКЕ ОДНОМЕРНЫХ МАССИВОВВАРИАНТ 11. Напишите программу. Одномерный массив А[1..N] заполнен 0 и 1, расположенными в...
Дополнительное изображение
Приложенные файлы
Загрузка...

Рассмотрим вариант решения задания из учебника Босова, Босова, Аквилянов 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('Ввод массива');
randomize;
for i := 1 to n do
begin
a[i] := random(2);//получается массив из 1 и 0
write(a[i], ' ')
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('Вывод массива');
for i := 1 to n do
write(a[i], ' ')
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;
*Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания.

Похожие решебники

*размещая тексты в комментариях ниже, вы автоматически соглашаетесь с пользовательским соглашением