powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как выполнить поиск в структуре???
21 сообщений из 21, страница 1 из 1
как выполнить поиск в структуре???
    #32172053
Господа подскажите как сделать поиск в структуре:
type
TAttrTypes =(AttrStr,AttrInt,AttrIP,AttrTime);

TAttrProp = record
Code: integer;
Name: string;
ValueType: TAttrTypes;
end;

Если передаётся параметр: function GetAttrProp(AttrCode: integer): TAttrProp;
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172098
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно, что значит сделать поиск по структуре ?
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172103
функция должна найти запись по переданному параметру и вернуть результат
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172110
Lana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
найти запись где?
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172181
Фотография Cooper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парниша походу делает лабораторную работу. И имеет ввиду не структуру, а очередь или стек.

Так?
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172425
Тка что с поиском никто не поможет????
Сысл: В памяти существует массив в виде:

TAttrProp = record
Code: integer;
Name: string;
ValueType: TAttrTypes;
end;


и в нем нужно сделать поиск по переданному параметру:

function GetAttrProp(AttrCode: integer): TAttrProp;
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172426
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В памяти существует массив в виде:

TAttrProp = record
Code: integer;
Name: string;
ValueType: TAttrTypes;
end;


Какой такой массив??? В каком виде? Это же просто объявление типа.
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172434
ну массив типа:

mas: array of TAttrProp;
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172448
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если есть массив, то так и пиши:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
function GetAttrProp(AttrCode: integer): TAttrProp;
var
  Counter: integer;
begin
  for Counter := Low(mas) to High(mas) do
    if mas[Counter].Code = AttrCode then
      Result := mas[Counter];
end;
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172450
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
а зачем возвращать TAttrProp? imho, integer достаточно будет.
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172455
Фотография SmaLL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем возвращать TAttrProp? imho, integer достаточно будет.
Видимо условие задачи требует
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172457
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 eNose

а зачем возвращать TAttrProp? imho, integer достаточно будет.

Так как ты предлагаешь, будут действительно правильно. :-) Но автор хотел именно такую функцию.

2 Мухин Алексей

Наблюдаю за твоими двумя топиками, где ты свой класс пытаешься создать, со вчерашнего дня. IMHO, знаний в области OOП маловато у тебя, если ты про Create() и Destroy спрашиваешь, что с ними делать. Тока без обид. Надо бы теорию почитать.
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172476
pkarklin:
А существует ли более оптимальный поиск в массиве кроме перебора от начала до конца????????
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172477
Фотография cyc10ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
существует если массив отсортирован
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172482
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Теоретически - ДА.
Особенно, если массив - упорядоченный.

В общем случае даже простой перебор с переходом не на следующий элемент, а через 1, даст выигрыш в скорости поиска.

А еще лучше распараллелить поиск - в несколько потоков быстрее будет
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172496
Фотография cyc10ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>А еще лучше распараллелить поиск - в несколько потоков быстрее будет
только не на однопроцессорной машине
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172519
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
На однопроцессорной тоже будет выигрыш, так как суммарное количество процессорного времени для 2-х потоков будет больше, чем для одного. Винда ДОЛЖНА так сделать.
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172526
RoVS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не только должна - действительно делает, и действительно будет выигрыш...
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172653
Фотография cyc10ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>На однопроцессорной тоже будет выигрыш, так как суммарное количество >процессорного времени для 2-х потоков будет больше, чем для одного. Винда >ДОЛЖНА так сделать.

ну ... отчасти ... т.к. для двух потоков два кванта времени ... но хз насколько это дает реальный выигрыш, кто-то проверял?
типа эфекта многопоточки получается
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172658
Фотография cyc10ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. два потока отобьют больше процессорного времени на 100% загруженной машине. с этим я не спорю. а на простоях пофигу, либо один поток заберет себе 100% либо они его поделят.
...
Рейтинг: 0 / 0
как выполнить поиск в структуре???
    #32172749
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
2 cyc10ne:
Скорее всего выигрыш все же будет. Винда ведь делит время между потоками. То есть Application+2threads получат примерно в 3 раза больше, чем просто Application. Естественно, если нет циклов без processmessages.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как выполнить поиск в структуре???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]