Переставить элементы массива так, чтобы располагались все нули, затем все единицы, и, наконец, все двойки - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста решить задачу: В массиве х(12) каждый элемент равен 0, 1 или 2. Переставить элементы массива так, чтобы располагались все нули, затем все единицы, и, наконец, все двойки.

Решение задачи: «Переставить элементы массива так, чтобы располагались все нули, затем все единицы, и, наконец, все двойки»

textual
Листинг программы
Var
  x: Array [1..12] of Byte;
  i,j,tmp: Byte;
BEGIN
Randomize;
Writeln('Исходный массив:');
For i:=1 to 12 do
begin
  x[i]:=Random(3);
  Write(x[i],' ');
end;
For i:=1 to 11 do
begin
  For j:=i+1 to 12 do
  If x[i]>x[j] Then
  begin
    tmp:=x[i];
    x[i]:=x[j];
    x[j]:=tmp
  end;
end;
Writeln;
Writeln('Полученный массив:');
For i:=1 to 12 do
Write(x[i],' ');
Readln
END.

Объяснение кода листинга программы

В данном коде происходит следующее:

  1. Создается переменная x, которая представляет собой массив из 12 элементов типа Byte.
  2. Задаются три переменные: i, j и tmp, которые будут использоваться для перемещения элементов массива.
  3. Выполняется цикл For i:=1 to 12 do, который проходит по всем элементам массива x.
  4. Внутри цикла задается значение каждого элемента массива x[i] с помощью оператора присваивания x[i]:=Random(3), где Random(3) генерирует случайное число от 0 до 2.
  5. Выводится значение каждого элемента массива x[i] с помощью функции Write(x[i],' ').
  6. Если значение элемента x[i] больше значения элемента x[j] (где j назначается как i+1), то выполняется блок кода If x[i]>x[j] Then, где tmp присваивается значение x[i], а x[i] и x[j] меняются местами с помощью оператора присваивания x[i]:=x[j] и x[j]:=tmp.
  7. Цикл For i:=1 to 11 do выполняется 11 раз, каждый раз проходя по всем элементам массива x.
  8. Внутри цикла выполняется вложенный цикл For j:=i+1 to 12 do, который проходит по всем элементам массива x, начиная с элемента x[i] и заканчивая элементом x[12].
  9. Если значение элемента x[i] больше значения элемента x[j] (где j назначается как i+1), то выполняется блок кода If x[i]>x[j] Then, где tmp присваивается значение x[i], а x[i] и x[j] меняются местами с помощью оператора присваивания x[i]:=x[j] и x[j]:=tmp.
  10. После выполнения всех итераций циклов выводится сообщение Writeln('Полученный массив:'); и выводится значение каждого элемента массива x[i] с помощью функции Write(x[i],' ').
  11. Выполняется блок кода Readln, который считывает ввод пользователя и завершает выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5
Похожие ответы