Вопрос задан 17.07.2023 в 07:34. Предмет Информатика. Спрашивает Матвеева Лиля.

Pascal а) Реализовать любую сортировку однострочного массива. Пользователь вводит кол-во

элементов, а затем поэлементно заполняет массив. Пример: 5, 1,78,9,5,4; Ответ:1,4,5.9.78 б) Пользователь вводит два массива по аналогии с предыдущей задачей. Необходимо отсортировать оба и слить их, соблюдая сортировку. Пример входных данных: 3, 1,78,9, 2, 5,4; Ответ:1,4,5.9.78
0 0
Перейти к ответам

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

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

Ответ:

program a;

type

 Ta = array of Integer;

procedure Sort (var a: Ta);

var

 i, j, jmax, atmp: Integer;

begin

 for i := Low (a) to High (a) do begin

   jmax := i;

   for j := i + 1 to High (a) do begin

     if a [j] < a [jmax] then        // возрастание и убывание меняется знаком "<" или ">" в этом операторе

       jmax := j;

   end;

   atmp := a [i];

   a [i] := a [jmax];

   a [jmax] := atmp;

 end;

end;

var

 n, i: Integer;

 a: Ta;

begin

 Write ('Количество элементов: ');

 ReadLn (n);

 SetLength (a, n);

 for i := Low (a) to High (a) do

   Read (a [i]);

 Sort (a);

 for i := Low (a) to High (a) do

   Write (a [i], ' ');

 ReadLn;

 ReadLn;

end.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  

program b;

type

 Ta = array of Integer;

procedure Sort (var a: Ta);

var

 i, j, jmax, atmp: Integer;

begin

 for i := Low (a) to High (a) do begin

   jmax := i;

   for j := i + 1 to High (a) do begin

     if a [j] < a [jmax] then        // возрастание и убывание меняется знаком "<" или ">" в этом операторе

       jmax := j;

   end;

   atmp := a [i];

   a [i] := a [jmax];

   a [jmax] := atmp;

 end;

end;

procedure InArr (var a: Ta);

var

 i, n: Integer;

begin

 Write ('Количество элементов: ');

 ReadLn (n);

 SetLength (a, n);

 for i := Low (a) to High (a) do

   Read (a [i]);

end;

var

 n, i, l1, l2: Integer;

 a1, a2: Ta;

begin

 Write ('Первый массив.');

 InArr (a1);

 Write ('Второй массив.');

 InArr (a2);

 l1 := Length (a1);

 l2 := Length (a2);

 SetLength (a1, l1 + l2);

 for i := Low (a2) to High (a2) do

   a1 [i + l1] := a2 [i];

 Sort (a1);

 for i := Low (a1) to High (a1) do

   Write (a1 [i], ' ');

 ReadLn;

 ReadLn;

end.

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

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

python
# Ввод количества элементов n = int(input("Введите количество элементов: ")) # Ввод элементов массива arr = [int(input("Введите элемент массива: ")) for _ in range(n)] # Сортировка пузырьком for i in range(n - 1): for j in range(n - i - 1): if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] # Вывод отсортированного массива print("Отсортированный массив:", ", ".join(map(str, arr)))

Пример ввода:

Введите количество элементов: 5 Введите элемент массива: 1 Введите элемент массива: 78 Введите элемент массива: 9 Введите элемент массива: 5 Введите элемент массива: 4

Вывод:

Отсортированный массив: 1, 4, 5, 9, 78

б) Вот пример реализации слияния и сортировки двух массивов:

python
# Ввод количества элементов для первого массива n1 = int(input("Введите количество элементов для первого массива: ")) # Ввод элементов первого массива arr1 = [int(input("Введите элемент первого массива: ")) for _ in range(n1)] # Ввод количества элементов для второго массива n2 = int(input("Введите количество элементов для второго массива: ")) # Ввод элементов второго массива arr2 = [int(input("Введите элемент второго массива: ")) for _ in range(n2)] # Сортировка первого массива for i in range(n1 - 1): for j in range(n1 - i - 1): if arr1[j] > arr1[j + 1]: arr1[j], arr1[j + 1] = arr1[j + 1], arr1[j] # Сортировка второго массива for i in range(n2 - 1): for j in range(n2 - i - 1): if arr2[j] > arr2[j + 1]: arr2[j], arr2[j + 1] = arr2[j + 1], arr2[j] # Слияние отсортированных массивов merged_arr = [] i, j = 0, 0 while i < n1 and j < n2: if arr1[i] < arr2[j]: merged_arr.append(arr1[i]) i += 1 else: merged_arr.append(arr2[j]) j += 1 while i < n1: merged_arr.append(arr1[i]) i += 1 while j < n2: merged_arr.append(arr2[j]) j += 1 # Вывод отсортированного объединенного массива print("Отсортированный объединенный массив:", ", ".join(map(str, merged_arr)))

Пример ввода:

Введите количество элементов для первого массива: 3 Введите элемент первого массива: 1 Введите элемент первого массива: 78 Введите элемент первого массива: 9 Введите количество элементов для второго массива: 2 Введите элемент второго массива: 5 Введите элемент второго массива: 4

Вывод:

Отсортированный объединенный массив: 1, 4, 5, 9, 78
0 0

Похожие вопросы

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

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

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