Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как удалить повторяющиеся фамилии

1.9K
18 июня 2010 года
alexandrv
39 / / 21.01.2010
Здравствуйте!

Помогите советом как можно на языке Pascal удалить повторяющиеся фамилии?
Например дано:
Семенов
Антонов
Антошин
Семенов
Антошин

Должно получиться:
Семенов Антонов Антошин
253
18 июня 2010 года
Proger_XP
1.5K / / 07.08.2004
Самый простой и незамороченный способ - перебирать массив.
Код:
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.
1.9K
18 июня 2010 года
alexandrv
39 / / 21.01.2010
Немного переделал код на Паскаль, но почему то выводит Выход за границу диапазона 0..4
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.
253
18 июня 2010 года
Proger_XP
1.5K / / 07.08.2004
читабельнее.

Цитата: alexandrv
Немного переделал код на Паскаль


А мой код на чём написан был? О_о

Цитата: alexandrv

for I:=0 to[COLOR="Red"] k[/COLOR] do


У тебя в конце k будет на единицу больше, чем отфильтровано имён. Именно поэтому нужно давай значащие имена переменным, как то NameCount ;)

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог