Вопрос задан 17.05.2026 в 06:31. Предмет Информатика. Спрашивает Кузьмина Виктория.

Отсортировать массив и найти количество различных чисел в нём. Паскаль.

Перейти к ответам

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

Отвечает Коловандина Полина.

Хорошо, давай разберём, как это можно сделать в Pascal шаг за шагом. Задача состоит из двух частей:

  1. Отсортировать массив.

  2. Посчитать количество различных чисел в массиве.

Вот пример, как это можно реализовать:

pascal
program UniqueNumbers;

uses
SysUtils;

const
MAX = 1000; { Максимальный размер массива }

var
arr: array[1..MAX] of Integer;
n, i, count: Integer;

{ Процедура сортировки массива пузырьком }
procedure BubbleSort(var a: array of Integer; size: Integer);
var
i, j, temp: Integer;
begin
for i := 0 to size - 2 do
for j := 0 to size - 2 - i do
if a[j] > a[j + 1] then
begin
temp := a[j];
a[j] := a[j + 1];
a[j + 1] := temp;
end;
end;

begin
{ Ввод количества элементов }
Write('Введите количество элементов массива: ');
ReadLn(n);

{ Ввод элементов массива }
WriteLn('Введите элементы массива:');
for i := 1 to n do
Read(arr[i]);

{ Сортировка массива }
BubbleSort(arr, n);

{ Подсчёт различных чисел }
count := 1; { Первый элемент точно уникален }
for i := 2 to n do
if arr[i] <> arr[i - 1] then
count := count + 1;

{ Вывод результата }
WriteLn('Количество различных чисел в массиве: ', count);
end.

Пояснение:

  1. Сортировка массива

    • Используется простая сортировка пузырьком (BubbleSort).

    • После сортировки одинаковые элементы окажутся рядом, что упрощает подсчёт уникальных чисел.

  2. Подсчёт уникальных чисел

    • Проходим по отсортированному массиву и сравниваем каждый элемент с предыдущим.

    • Если текущий элемент отличается от предыдущего, увеличиваем счётчик уникальных чисел.

  3. Особенности

    • В массиве с n = 0 нужно добавить проверку, чтобы избежать ошибок.

    • Для больших массивов можно использовать более эффективную сортировку (например, быструю), но для учебных задач пузырёк подходит.

Если хочешь, я могу показать ещё более короткий вариант без сортировки, используя динамический подход с подсчётом через поиск в массиве.

Хочешь, чтобы я показал такой вариант?

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

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

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

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