Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2011, 18:18   #1
A-IX-2
Форумчанин
 
Аватар для A-IX-2
 
Регистрация: 08.10.2010
Сообщений: 101
По умолчанию Сортировка массива с исключением одинаковых чисел.

Собственно как возможно такое реализовать? Я пытался следующим образом, ничего не вышло:
Код:
  For j:=1 to StringGrid1.RowCount-1 do
  For i:=1 to StringGrid1.RowCount-j do
  if (p[i]<p[i+1]) and (p[i]<>p[i+1]) then
  begin
    buf:=p[i];
    p[i]:=p[i+1];
    p[i+1]:=buf;
  end;
"Думаешь, будет трудно? Конечно, будет! Но, только закаляя дух, людьми становятся люди!"
A-IX-2 вне форума Ответить с цитированием
Старый 16.03.2011, 18:32   #2
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

еще один цикл надо вложить перед тем как сохранять, что б проверять есть ли ето число
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 16.03.2011, 19:36   #3
A-IX-2
Форумчанин
 
Аватар для A-IX-2
 
Регистрация: 08.10.2010
Сообщений: 101
По умолчанию

Нашел тут на форуме сообщение
Цитата:
для такого дела нада юзать динамические массивы.. и тогда алгоритм такой..
1) находим элемент который повторяется (его номер n);
2) смещаем все элементы массива начиная с n+1 до конца на 1 позицыю в лево (c[n]:=c[n+1]);
3) уменьшаем размер массива ( SetLength(c, Length(c)-1) );
но что-то не получается второй пункт сделать

Код:
  For i:=1 to StringGrid1.RowCount-1 do
  if p[i]=p[i+1] then
  begin
    for i:=i+1 to StringGrid1.RowCount-1 do
    p[i]:=p[i+1];
    SetLength(p,Length(p)-1);
  end;
"Думаешь, будет трудно? Конечно, будет! Но, только закаляя дух, людьми становятся люди!"
A-IX-2 вне форума Ответить с цитированием
Старый 17.03.2011, 00:22   #4
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

что то в етом роде
Код:
for i := 0 to Count - 2 do
  for j := 1 to Count - 1 do
    for k := 0 to i do
      if mas[k] = mas[j] then mas[j].delete
      else begin
        buf:=p[i];
        p[i]:=p[i+1];
        p[i+1]:=buf;
     end;
VirusN13
ArtGrek вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считывание из файла чисел, сортировка массива с++ Tresk Помощь студентам 13 07.11.2010 20:01
Деление одинаковых чисел Halifath Помощь студентам 0 03.05.2010 12:12
Поиск одинаковых чисел bvden Microsoft Office Excel 3 05.07.2009 01:29
запрет ввода одинаковых чисел в edit epic6 Общие вопросы Delphi 6 15.06.2009 08:31
Сортировка массива чисел Roberto Помощь студентам 1 02.04.2008 23:19