Program Array98;
Var A: Array Of Integer;
SIZE, i, j, k, p, x : Integer;
Begin
Randomize;
Write('Размер массива -> ');
ReadLn(SIZE);
SetLength(A, SIZE);
{ Заполняем массив случайно }
WriteLn('In array');
For i := 0 To SIZE - 1 Do
Begin
A[i] := Random(89) + 10;
Write(A[i]:3);
End;
WriteLn;
i := 0;
While i < SIZE Do
Begin
k := 1;
For j := i+1 To SIZE - 1 Do
If a[j] = a[i] Then k := k + 1;
If k > 3 Then
Begin {2}
j := i;
x := A[i];
While j < SIZE Do
If A[j] = x Then
Begin {1}
For p := j To SIZE - 2 Do
A[p] := A[p + 1];
SIZE := SIZE - 1;
End {1}
Else
j := j + 1;
End {2}
Else
i := i + 1;
End;
If SIZE = 0 Then
Write('Все элементы удалены:(') { Выводим, что все элементы удалены }
Else
Begin
WriteLn('Оставшиеся элементы -> ',SIZE);
WriteLn('Массив после сжатия');
For i := 0 To SIZE - 1 Do
Write(a[i]:3);
End;
WriteLn;
ReadLn;
End.