Задать вопрос
21 октября, 01:19

Заполнить массив случайными целыми числами и выделить в другой массив все числа, которые встречаются более одного раза. (Паскаль)

+4
Ответы (1)
  1. 21 октября, 02:31
    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
Знаете ответ?
Сомневаетесь в ответе?
Найдите правильный ответ на вопрос ✅ «Заполнить массив случайными целыми числами и выделить в другой массив все числа, которые встречаются более одного раза. (Паскаль) ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы