50 lines
1.1 KiB
Plaintext
50 lines
1.1 KiB
Plaintext
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.
|