У Вас массив какой и откуда он берётся? Допустим это целочисленный динамический массив с псевдо-случайными элементами из диапазона [a;b], границы которого задаются в одной строке вместе с длиной массива n, причём a≤b. Числа a, b и n - относительно небольшие - это для того чтобы массив было удобно печатать и сортировать:
uses crt;
var a, b, c, i, j, m, n: integer;
Arr: array of integer;
procedure print_array();
begin
j := 0;
for i := 0 to m do
begin
write(Arr[i]: 6);
j := j + 1;
if j = 10 then
begin
j := 0;
writeln()
end;
end;
if j > 0 then writeln()
end;
begin
textbackground(white);
textcolor(black);
clrscr();
write('a b n: ');
readln(a, b, n);
c := b + 1 - a;
setlength(Arr, n);
randomize();
m := n - 1;
for i := 0 to m do Arr[i] := a + random(c);
writeln('Исходный массив:');
print_array();
for i := 1 to m do
for j := m downto i do
if Arr[j - 1] > Arr[j] then
begin
c := Arr[j - 1];
Arr[j - 1] := Arr[j];
Arr[j] := c
end;
writeln('Отсортированный массив:');
print_array();
c := 1;
for i := 1 to m do
if Arr[i - 1] Arr[i] then c := c + 1;
writeln('Уникальных элементов: ', c)
end.
Сортировка - пузырьковая по возрастанию. А если бы n было, скажем, миллион, то и сам алгоритм пузырьковой сортировки был бы здесь совершенно неуместен. Поэтому и надо сразу указывать что это за массив - какого типа, какого размера и откуда вообще берётся. Вот пример сеанса:
