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

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

Ответ:
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.



а) Вот пример реализации сортировки однострочного массива, основанный на алгоритме сортировки пузырьком:
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


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







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili