Такого рода задачи решаются просто добавлением еще одного массива. Общий алгоритм такой - в цикле крутим исходный массив. Совпадают элементы ? - если да, считаем количество совпадений. Если нет - увеличиваем счетчик для другого массива и по этому счетчику копируем не совпадающий элемент. Вот пример. Немного подлатал вашу программу - ввел проверку ввода значения размера массива. Комментарии чтобы не возникало лишних вопросов.
Код:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
n, i, j, k : integer;
a,b : array[0..10] of integer;
begin
j := 0; // счетчик повторений
k := 0; // счетчик массива b
Randomize;
write('Enter n = ');
readln(n);
// Проверка условия введенного n
// n больше 10 или меньше 1?
if ((n < 1) or (n > 10)) then
begin
// да, предупреждаем, выходим
writeln('Error, array range must be > 0 and <= 10');
writeln('Press any key...');
readln;
Exit;
end;
writeln('ishodnui massiv:');
for i := 0 to n do
begin
a[i] := random(10);
write(a[i], ' ');
end;
writeln;
// Проверка совпадений
for i := 0 to n do
begin
{
Текущий элемент массива равен
следующему?
}
if (a[i] = a[i + 1]) then
begin
// считаем количество совпадений
k := k + 1;
// начинаем цикл заново
continue;
end
// нет совпадений?
else
// копируем a[i] в b[j]
b[j] := a[i];
// увеличиваем итератор
j := j + 1;
end;
// Результат:
writeln('Result:');
{
выводим массив от 0
до введенного n минус
количество совпадений
}
for i := 0 to n-k do
write(b[i],' ');
writeln;
write('Press any key...');
readln;
end.
