Вопрос задан 11.09.2018 в 08:06. Предмет Информатика. Спрашивает Плетнёва Аля.

Заполнить массив случайными целыми числами и выделить в другой массив все числа, которые

встречаются более одного раза.(Паскаль)
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Котик Алёна.
 const
  n = 15;

var
  a, b: array[1..n] of integer;
  i, j, step, t: integer;
  flag: boolean;

begin
  Randomize;
  Writeln('Исходные элементы массива');
  for i := 1 to n do
  begin
    a[i] := Random(10) - 5;
    Write(a[i]:4)
  end;
  { Сортируем массив (метод Шелла) }
  step := n div 2;
  while step > 0 do
  begin
    for j := n - step downto 1 do
    begin
      i := j;
      while i <= n - step do
      begin
        if a[i] > a[i + step] then
        begin
          t := a[i]; a[i] := a[i + step]; a[i + step] := t
        end;
        i := i + step
      end
    end;
    step := step div 2
  end;
  {
  проходим по массиву и если элемент встречается более одного раза подряд,
  переносим его в другой массив
  }
  j := 0; t := a[1]; flag := false;
  for i := 2 to n do
  begin
    if (a[i] = t) and (not flag) then
    begin
      j := j + 1; b[j] := t; flag := true
    end
    else begin flag := false; t := a[i] end
  end;
  Writeln;
  Writeln('Отобранные элементы массива');
  for i := 1 to j do Write(b[i]:4);
  Writeln
end.

Тестовое решение:

Исходные элементы массива
  -2   4   1  -3  -1  -2  -5  -1   2   4   1   3  -5  -2  -3
Отобранные элементы массива
  -5  -3  -2  -1   1   4



0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для заполнения массива случайными целыми числами и выделения в другой массив всех чисел, которые встречаются более одного раза, вам потребуется использовать язык программирования Паскаль. Вот пример кода, который решает эту задачу:

```pascal program Main;

const MAX_SIZE = 100; // Максимальный размер массива MAX_VALUE = 100; // Максимальное значение случайных чисел

type IntArray = array[1..MAX_SIZE] of Integer;

procedure FillArrayRandomly(var arr: IntArray; size: Integer); var i: Integer; begin Randomize; // Инициализация генератора случайных чисел for i := 1 to size do arr[i] := Random(MAX_VALUE) + 1; // Заполнение массива случайными числами от 1 до MAX_VALUE end;

procedure FindDuplicates(const arr: IntArray; size: Integer; var duplicates: IntArray; var duplicatesCount: Integer); var i, j: Integer; begin duplicatesCount := 0; for i := 1 to size - 1 do begin for j := i + 1 to size do begin if (arr[i] = arr[j]) and (arr[i] <> 0) then begin duplicatesCount := duplicatesCount + 1; duplicates[duplicatesCount] := arr[i]; arr[j] := 0; // Помечаем повторяющееся число, чтобы не учитывать его повторно end; end; end; end;

var arr: IntArray; duplicates: IntArray; duplicatesCount: Integer; i: Integer; begin FillArrayRandomly(arr, MAX_SIZE); FindDuplicates(arr, MAX_SIZE, duplicates, duplicatesCount);

// Вывод исходного массива WriteLn('Исходный массив:'); for i := 1 to MAX_SIZE do Write(arr[i], ' ');

// Вывод повторяющихся чисел WriteLn; WriteLn('Повторяющиеся числа:'); for i := 1 to duplicatesCount do Write(duplicates[i], ' ');

ReadLn; end. ```

В этом коде используется процедура `FillArrayRandomly`, которая заполняет массив `arr` случайными числами от 1 до `MAX_VALUE`. Затем процедура `FindDuplicates` находит повторяющиеся числа в массиве `arr` и сохраняет их в массиве `duplicates`. Количество повторяющихся чисел сохраняется в переменной `duplicatesCount`.

Обратите внимание, что в этом коде используется константа `MAX_SIZE`, которая определяет максимальный размер массива, и константа `MAX_VALUE`, которая определяет максимальное значение случайных чисел. Вы можете изменить эти значения в соответствии с вашими потребностями.

Надеюсь, это поможет! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос