MODULE RemoveDuplicates; FROM STextIO IMPORT WriteLn; FROM SWholeIO IMPORT WriteInt; TYPE TArrayRange = [1 .. 7]; TArray = ARRAY TArrayRange OF INTEGER; VAR DataArray, ResultArray: TArray; ResultIndex, LastResultIndex, Position: CARDINAL; IsNewNumber: BOOLEAN; BEGIN (* Set the data. *); DataArray[1] := 1; DataArray[2] := 2; DataArray[3] := 2; DataArray[4] := 3; DataArray[5] := 4; DataArray[6] := 5; DataArray[7] := 5; ResultArray[1] := DataArray[1]; LastResultIndex := 1; Position := 1; WHILE Position < HIGH(DataArray) DO INC(Position); IsNewNumber := TRUE; ResultIndex := 1; WHILE (ResultIndex <= LastResultIndex) AND IsNewNumber DO IF DataArray[Position] = ResultArray[ResultIndex] THEN IsNewNumber := FALSE; END; INC(ResultIndex); END; IF IsNewNumber THEN INC(LastResultIndex); ResultArray[LastResultIndex] := DataArray[Position]; END END; FOR ResultIndex := 1 TO LastResultIndex DO WriteInt(ResultArray[ResultIndex], 1); WriteLn; END; END RemoveDuplicates.