Member
Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
Народ, а что в Chart нельзя замутить трехмерный график? Мне нужно построить кривую по точкам с координатами x,y,z а в Chart я такого не нашел Может всетаки можно как-нибудь? И если нет, то есть ли подходящий компонент.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Member
Статус: Не в сети Регистрация: 11.11.2004 Откуда: Челябинск
Lord_of_Darkness писал(а):
Народ, а что в Chart нельзя замутить трехмерный график? Мне нужно построить кривую по точкам с координатами x,y,z а в Chart я такого не нашел Может всетаки можно как-нибудь? И если нет, то есть ли подходящий компонент.
в teechart 6 есть что-то такое:
#77
_________________ пишу я программу... и вдруг на клавиатуру выползает bug, буквально
Member
Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
Rius Для построения поверхностей компоненты я уже нашел, только вот обыкновенные линии они отрисовывать не хотят А этот TeeChart может? Просто чтоб зря 17метров не качать...
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
2 All Может ли быть такое что на профильном проце время по GetTickCount при поиске в случайном списке из 100000 элементов равнялось нулю ? Поиск линейный (про бинарный молчу).
Код:
for i:=1 to 100000 do add_elem(random(1000)); time_begin:=gettickcount; find_elem_lin(random(1000),find,compares); time_end:=gettickcount; kill_list;
Процедура поиска рабочая 100% После работы разница между тайм бигином и эндом ноль Если вставить че нибудь типа sleep(1000) то все честно разница 1000.
ЗЫ : Сколько должен примерно составляться список из 100000 элементов уж больно долго выходит.
ЗЫЫ: Пробовал такой вариант
Код:
for i:=1 to 100000 do add_elem(i); time_begin:=gettickcount; find_elem_lin(99999,find,compares); time_end:=gettickcount; kill_list;
Все отрабатывает, находит число сравнений правильное, время 0 Что делать ?
Lord_of_Darkness А какая разница то TimeStamp тоже только до 0,001 считает и ессно выдает 0.
ЗЫ Какой там бенчмарк. В универе задание сравнить бинарный и линейный поиски в списке по числу сравнений и по времени исполнения.
Добавлено спустя 36 минут, 33 секунды Lord_of_Darkness Уфф короче заюзал QueryPerformanceCounter все стало нормально (действительно единственный нормальный таймер в винде)
но резалты че то меня не устраивают получается бинарный поиск даже медленней чем линейный (для списка) потому что у меня в бинарном поиске если элемент больше ключа то указатель бежит с головы (как ты мне и посоветовал) получается он там бегает чертово колво раз (для больших n) как нить мона это поправить ?
Вот резалты для key100=50 key1000=500 key10000=50000 То есть для бинарного поиска тут идеальный случай !!! и то хило смотрится
Линейный поиск случайный массив
Массив из 100 элементов время поиска = 0.00000196 sec количество сравнений 100
Массив из 1000 элементов время поиска = 0.00000754 sec количество сравнений 1000
Массив из 10000 элементов время поиска = 0.00007124 sec количество сравнений 9506
Линейный поиск упорядоченный массив возрастание
Массив из 100 элементов время поиска = 0.00000168 sec количество сравнений 50
Массив из 1000 элементов время поиска = 0.00000447 sec количество сравнений 500
Массив из 10000 элементов время поиска = 0.00003939 sec количество сравнений 5000
Линейный поиск упорядоченный массив убывание
Массив из 100 элементов время поиска = 0.00000168 sec количество сравнений 51
Массив из 1000 элементов время поиска = 0.00000447 sec количество сравнений 501
Массив из 10000 элементов время поиска = 0.00004973 sec количество сравнений 5001
Бинарный поиск упорядоченный массив возрастание
Массив из 100 элементов время поиска = 0.00000196 sec количество сравнений 3
Массив из 1000 элементов время поиска = 0.00000363 sec количество сравнений 3
Массив из 10000 элементов время поиска = 0.00003352 sec количество сравнений 3 Добавлено спустя 1 час, 2 минуты, 17 секунд Короче сделав эту лабу я понял что PerformanceCounter рулит и что бинарный поиск в списке это извращение Завтра пойду доказывать это преподу.
Member
Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
Demileech
Цитата:
потому что у меня в бинарном поиске если элемент больше ключа то указатель бежит с головы (как ты мне и посоветовал) получается он там бегает чертово колво раз (для больших n) как нить мона это поправить ?
Можно к примеру смотреть по счетчику - если следующий элемент по номеру больше предыдущего, то проматывать от предыдущего на разницу, иначе мотать с начала. Еще выход - сделать двусвязный список, в котором каждый элемент содержит указатель на следующий и предыдущий, тогда всегда будещь проматывать только на разницу.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Можно к примеру смотреть по счетчику - если следующий элемент по номеру больше предыдущего, то проматывать от предыдущего на разницу, иначе мотать с начала.
Именно так и сделанно, я имел ввиду случай если элмент меньше, но подумав понял что никак тока с головы.
Цитата:
Еще выход - сделать двусвязный список, в котором каждый элемент содержит указатель на следующий и предыдущий, тогда всегда будещь проматывать только на разницу.
В задании именно односвязный. Двусвязный это следующий вариант
у тебя создается тип REG_SZ а мне нужен REG_DWORD и как быть если пути лежат не только в
HKEY_CURRENT_USER, все что мне нужно это:
Код:
HKEY_CURRENT_USER
Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced "DisableThumbnailCache" тип REG_DWORD с параметром 1 и Software\Microsoft\Windows\CurrentVersion\Policies\Explorer "NoRecentDocsMenu" тип REG_DWORD с параметром 1
у тебя создается тип REG_SZ а мне нужен REG_DWORD и как быть если пути лежат не только в HKEY_CURRENT_USER, все что мне нужно это:
Извини, дал общий пример, даже не думал, что все так запущено.
Вот твоя процедура, для каждого параметра (значения) устанавливаешь True или False, соответственно в реестр пишется единица или ноль.
Я использовал Boolean потому, что использование DWORD в данном случае избыточно.
Но если таки хочешь явно DWORD, то замени Boolean на DWORD, а WriteBool на WriteInteger.
Код:
procedure WritingData(const DisableThumbnailCache, NoRecentDocsMenu: Boolean); begin with TRegistry.Create do begin RootKey:= HKEY_CURRENT_USER; try OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced', True); WriteBool('DisableThumbnailCache', DisableThumbnailCache); CloseKey; OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\Explorer', True); WriteBool('NoRecentDocsMenu', NoRecentDocsMenu); finally Free; end; end; end;
Кстати, а какие значения там стоят по-умолчанию?
А то блин прописал себе единицы, даже не глянув.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения