И сортировка, и удаление повторов происходит автоматически.
Кстати, числа у вас одноразрядные или это только такой пример неудачный получился?
program N87180437;
var
s: set of byte;
a, b, c: array [byte] of byte;
i, n, k: byte;
begin
writeln('Введите ряд чисел a, разделённых пробелом: ');
n := 0;
while not eoln(input) do
begin
read(a[n]);
inc(n)
end;
readln;
fillchar(c, sizeof(c), 0);
s := [ ];
for i := 0 to n - 1 do
begin
inc(c[a[і]]);
s := s + [a[і]]
end;
k := 0;
for i := 0 to 255 do
if i in s then
begin
b[k] := i;
c[k] := c[і];
inc(k)
end;
writeln('Ряд без повторений b:');
for i := 0 to k - 1 do
write(b[і]:4);
writeln(#13#10'Частота повторений c:');
for i := 0 to k - 1 do
write(c[і]:4);
write(#13#10#10'Для завершения работы нажмите Enter...');
readln
end.

спасибо за прогу
это часть проги... числа в массиве должны быть вещественными для других вычислений