Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массивы, Вопрос новичка 
:(
    Опции темы
Алекс С.
  Дата 4.9.2002, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 30.8.2002

Репутация: нет
Всего: нет



Как по значению члена массива узнать его индекс?
PM MAIL   Вверх
Mikel
Дата 4.9.2002, 02:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



Просто просмотреть все элементы от минимального к максимальному и сравнить с твоим числом. Если есть более короткие пути, тогда скажите мне тоже.


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Fantasist
Дата 4.9.2002, 05:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


Профиль
Группа: Участник Клуба
Сообщений: 1517
Регистрация: 24.3.2002

Репутация: нет
Всего: 41



Держать элементы упорядоченными, и находить последовательным приближением. Для этого отдельный класс неплохо бы сделать.


--------------------
Волны гасят ветер...
PM MAIL   Вверх
Dapo
Дата 4.9.2002, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 18.4.2002

Репутация: нет
Всего: 1



В массиве может быть несколько одинаковых элементов.
"...держать элементы упорядоченными..." - в програмировании очень мало моментов, когда массив можно (целесообразно) упорядочивать, как правило => неоднозначное соответствие с другими объектами.
PM MAIL   Вверх
Dapo
Дата 4.9.2002, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 18.4.2002

Репутация: нет
Всего: 1



И потом, если интересует именно индекс, то положение элементов вообще трогать нельзя.
PM MAIL   Вверх
Fantasist
Дата 5.9.2002, 02:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


Профиль
Группа: Участник Клуба
Сообщений: 1517
Регистрация: 24.3.2002

Репутация: нет
Всего: 41



Цитата
В массиве может быть несколько одинаковых элементов.

 Mожет быть, а может и не быть. Если задается такой вопрос, то наверное они там в единственном числе. Иначе надо находить все.
Цитата
"...держать элементы упорядоченными..." - в програмировании очень мало моментов, когда массив можно (целесообразно) упорядочивать, как правило => неоднозначное соответствие с другими объектами.


Универсальных решений нет, но это одно из них и в некоторых ситуациях весьма оправданно.

Цитата
И потом, если интересует именно индекс, то положение элементов вообще трогать нельзя.

А все равно придется при удалении/вставке. Иначе у тебя будет постоянно растущий  массив. Но это тоже все частности - зависит от ситуации.


--------------------
Волны гасят ветер...
PM MAIL   Вверх
adminlion
Дата 5.9.2002, 03:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 14.7.2002

Репутация: нет
Всего: нет



Используйте TList или что-то в этом роде
PM MAIL   Вверх
MэG
Дата 12.6.2004, 12:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











sad.gif Как из массива удалить повторяющиеся элементы

  Вверх
Shishkin
Дата 12.6.2004, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 11.6.2004

Репутация: нет
Всего: нет



Это делается в двух строках, вот код:

i:=0;
for i:=1 to number_of_elements do if (a=massiv[i]) then index:=i;

тогда переменная index и будет соответствующий индекс или будет равна 0, если нужного элемента в массиве нет.
PM   Вверх
youri
Дата 12.6.2004, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



Если элементы массива не повторяются, то можно воспользоваться следующим кодом
Код
index:=-1;
for i:=low_index_of_array to high_index_of_array do
if (searched_value=massiv[i]) then
begin
 index:=i;
 break;
end;
// index=-1, если искомый элемент массива не найден,
// в противном случае index содержит индекс искомого элемента массива


Если же элементы массива повторяются, и надо найти все элементы массива с заданным значением
Код
search_from := low_index_of_array
repeat
index:=-1
for i:=search_from to high_index_of_array do
 if (searched_value=massiv[i]) then
 begin
  index:=i;
  break;
 end;
search_from := i+1;
// здесь можно воспользоваться найденным элементом массива (если index<>-1)
until index=-1

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0937 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.