Отсортировать массив и найти количество различных чисел в нём. Паскаль.
Ответы на вопрос
Хорошо, давай разберём, как это можно сделать в Pascal шаг за шагом. Задача состоит из двух частей:
-
Отсортировать массив.
-
Посчитать количество различных чисел в массиве.
Вот пример, как это можно реализовать:
pascalprogram 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.
Пояснение:
-
Сортировка массива
-
Используется простая сортировка пузырьком (
BubbleSort). -
После сортировки одинаковые элементы окажутся рядом, что упрощает подсчёт уникальных чисел.
-
-
Подсчёт уникальных чисел
-
Проходим по отсортированному массиву и сравниваем каждый элемент с предыдущим.
-
Если текущий элемент отличается от предыдущего, увеличиваем счётчик уникальных чисел.
-
-
Особенности
-
В массиве с
n = 0нужно добавить проверку, чтобы избежать ошибок. -
Для больших массивов можно использовать более эффективную сортировку (например, быструю), но для учебных задач пузырёк подходит.
-
Если хочешь, я могу показать ещё более короткий вариант без сортировки, используя динамический подход с подсчётом через поиск в массиве.
Хочешь, чтобы я показал такой вариант?
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

