1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
(Сам и контр)
Задание 1 Вариант 1 Самостоятельная работа 5 ГДЗ Рабочая тетрадь Босова 11 класс (Информатика)
Босова, Босова, Аквилянов
11 класс
Класс
11
Предмет
Информатика
Автор
Босова, Босова, Аквилянов

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

Задача
  1. Напишите программу. Одномерный массив $$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.

Возможен и другой вариант решения — перестановка элементов на месте, но способ с подсчётом нулей проще и понятнее.

Ответ

Программа приведена выше.



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