var
Names, UniqueNames: array of Strng;
UniqueNamesCount, I, J: Integer;
Duplicate: Boolean;
begin
SetLength(UniqueNames, Length(Names));
UniqueNamesCount := 0;
for I := 0 to Length(Names) - 1 do
begin
Duplicate := False;
for J := 0 to Length(Names) - 1 do
if (I <> J) and (Names = Names[J]) then
begin
Duplicate := True;
Break;
end;
if not Duplicate then
begin
UniqueNames[UniqueNamesCount] := Names;
Inc(UniqueNamesCount);
end;
end;
SetLength(UniqueNames, UniqueNamesCount);
end.
Как удалить повторяющиеся фамилии
Помогите советом как можно на языке Pascal удалить повторяющиеся фамилии?
Например дано:
Семенов
Антонов
Антошин
Семенов
Антошин
Должно получиться:
Семенов Антонов Антошин
Самый простой и незамороченный способ - перебирать массив.
var
Names, UniqueNames: array[0..4] of String;
k, I, J: Integer;
Duplicate: Boolean;
begin
for i:=0 to 4 do
readln(Names);
k := 0;
for I := 0 to Length(Names) - 1 do
begin
Duplicate := False;
for J := 0 to Length(Names[j]) - 1 do
if (I <> J) and (Names = Names[J]) then
begin
Duplicate := True;
Break;
end;
if not Duplicate then
begin
UniqueNames[k] := Names;
k:=k+1;
end;
end;
for I:=0 to k do
writeln(UniqueNames);
end.