Форум: "Прочее";
Текущий архив: 2010.01.31;
Скачать: [xml.tar.bz2];
ВнизО битовой математике Найти похожие ветки
← →
Джо © (2009-11-23 10:36) [80]Мало того, к Калькуляторе даже кнопочки для извлечения корня нет. Объяснить почему? :D
← →
brother © (2009-11-23 11:06) [81]> Объяснить почему? :D
ага ;)
← →
kyn66 © (2009-11-23 11:14) [82]
> Джо © (23.11.09 10:36) [80]
> Мало того, к Калькуляторе даже кнопочки для извлечения корня
> нет. Объяснить почему? :D
Ну давай объясни(умник). Тока сразу не забудь учесть, что в инженерном режиме нету, а в простом есть, однако . http://yurec66.narod.ru/Hlam/calc.jpg И уж за одно если не затруднит объясни, почему в справке извлечение корня и возведение в степень 2 закодировано под одной эквивалентной клавишей? И как понимать такую справку, изучая самостоятельно и не сбиться с пути истинного? ПУсть нам ответит начальник транспортного цеха.... >:(
← →
Джо © (2009-11-23 11:29) [83]Ну, очевиджно же, что инженер может разобраться в этом, а не-инженеру тяжело придется :D
← →
Leonid Troyanovsky © (2009-11-23 11:30) [84]
> kyn66 © (23.11.09 11:14) [82]
> Ну давай объясни(умник). Тока сразу не забудь учесть, что
> в инженерном режиме нету, а в простом есть, однако .
Однажды Петрушевский сломал свои часы и послал за Пушкиным. Пушкин пришел, осмотрел часы Петрушевского и положил их обратно на стул. "Что скажешь, брат Пушкин?" - спросил Петрушевский. "Стоп машина", - сказал Пушкин.
--
Regards, LVT.
← →
kyn66 © (2009-11-23 11:39) [85]
> Leonid Troyanovsky © (23.11.09 11:30) [84]
А еще мы в школе изучали творчество Александра Сергеевича Грибоедова. В частности его произведение "Горе от ума"....
← →
Leonid Troyanovsky © (2009-11-23 11:46) [86]
> kyn66 © (23.11.09 11:39) [85]
Лермонтов любил собак. Еще он любил Наталью Николаевну Пушкину.
Только больше всего он любил самого Пушкина. Читал его стихи и всегда
плакал. Поплачет, а потом вытащит саблю и давай рубить подушки. Тут и
любимая собачка не попадайся под руку - штук десять так-то зарубил. А
Пушкин ни от каких не плакал. Ни за что.
--
Regards, LVT.
← →
kyn66 © (2009-11-23 11:51) [87]Модератеру - а что, мастера уже не могут входить в число спамеров и офтопщиков? Или это участь молодых? Я думаю порядок должен быть для всех одиноков.
← →
Leonid Troyanovsky © (2009-11-23 11:53) [88]
> kyn66 © (23.11.09 11:51) [87]
Пушкин любил кидаться камнями. Как
увидит камни, так и начнет ими кидаться.
Иногда так разойдется, что стоит весь крас-
ный, руками машет, камнями кидается, просто
ужас!
--
Regards, LVT.
← →
Германн © (2009-11-24 02:14) [89]
> kyn66 © (23.11.09 11:51) [87]
>
> Модератеру - а что, мастера уже не могут входить в число
> спамеров и офтопщиков?
См. [71]
← →
Дмитрий Белькевич (2009-11-24 03:20) [90]>А вот тыкнуть правым мышом на SHL, чтобы получить справку быструю по SHR - как то не догадался. Не каждый зрячий да увидит.
Вообще, интерфейс у калькулятора - говно. "Невидимость" контекстных меню - большой минус. Нужно дублировать. Смотрю, в d2010 продублировали всё контекстное с компонентами. Верный подход. Только благодаря дублированию увидел одну интересную фичу - hide/show non-visual. Другую же фичу (компиляцию пакетов) искал два дня... Еще на 2009-й. И таки эту менюху всё еще не продублировали. А некоторые до сих пор не знаю, что в 2009/2010 можно dpr смотреть и редактировать... Всё по тому же - засунуто в контекстное меню.
← →
Наиль © (2009-11-24 13:19) [91]> [48] kyn66 © (18.11.09 12:35)
> Спасибо за подсказку, но я думаю это будет лишним, т.к.
> тема уже раскрыта.
А вот и не раскрыта.
Можно вспомнить про множестваvar
WeekDaysMask: set of byte;
WeekDaysInt: Integer absolute WeekDaysMask;
begin
WeekDaysMask:=[0,2,4,6];
Writeln(WeekDaysInt);
for i := 0 to 6 do
CheckBox[i].Checked := i in WeekDaysMask;
end;
А можно про класс для работы с битами TBits
← →
kyn66 © (2009-11-24 13:50) [92]Да, конечно, можно и множества. Это как дополнительный вариант, тоже интересный. Я его использую в самом начале старта программы, чтобы определить глобальную булеву переменную, задействовать ли механизм контроля в зависимости от текущего дня недели и указан ли он в параметрах программы.
DaysSet := [];
for i := 0 to 6 do
if (WeekDaysMask and (1 shl i)) <> 0 then
Include(DaysSet, i);
d := IIF(DayOfWeek(Date) = 1, DayOfWeek(Date) + 5, DayOfWeek(Date) - 2);
Proverka := d in DaysSet;
Ваще механизм битового хранения мне очень понравился. В одной переменной типа Integer(4 байта) можно хранить до 32 значений. Одно только плохо, что этот метод позволяет хранить параметры настроек по "флагам". Вот я и думаю, что целесообразнее... хранить таким способом или в качестве отдельного параметра в реестре(к примеру). Хотя для битового варианта нужно тоже заводить переменную конкретно для этой проверки.
Если вытащив из реестра булево значение я могу проверить просто
if BulParam1 then
begin
....
end;
то для проверки на включенность бита я должен использовать строку проверки намного длиннее
Const
Provbit = $1
....
if WeekDaysMask and (1 shl Provbit) = Provbit then
begin
end;
....
← →
абизяна (2009-11-24 14:43) [93]
> kyn66 ©
"Мартышка и очки".
← →
Дмитрий Белькевич (2009-11-24 18:34) [94]
> то для проверки на включенность бита я должен использовать
> строку проверки намного длиннееConst Provbit = $1.... if
> WeekDaysMask and (1 shl Provbit) = Provbit then begin end;
>
Для этого люди давно придумали функции и классы. Делай класс, который будет читать/писать и проверять побитно поля - и будет тебе счастье.
function TestForBit(BitMask: DWord; BitPos: Integer):Boolean;
begin
Result := BitMask and (BitPos shl Provbit) = BitPos;
end;
или, еще проще:
function TStoreClass.TestForBit(BitPos: Integer):Boolean;
begin
Result := FBitMask and (BitPos shl Provbit) = BitPos;
end;
procedure TStoreClass.ReadBitMaskFromRegistry(const RegKey: string);
begin
FBitMask := ReadFromRegistry(RegKey);
end;
Ну а потом:
TStoreMyCoolBitClass = class (TStoreClass);
public
function TestForMyFirstCoolBit: Boolean;
function TestForMySecondCoolBit: Boolean;
function TestForMyThirdCoolBit: Boolean;
constructor Create(const RegKey: string);
end;
Ну и так далее... Можно еще и для инишки то же сделать, три строчки поменяв, и для xml"а и для базы - в общем-то носитель данных существенной роли не играет. Но... Обычно, как обычно, лень :)
← →
kyn66 © (2009-11-24 20:02) [95]
> Дмитрий Белькевич (24.11.09 18:34) [94]
Дмитрий, это все понятно. Все здесь представленные варианты позволяют оперировать с данными, полученными из хранилища. Написание функции и т.п. труда не составляет. Однако смысл вопроса [0] был как хранить несколько параметров одним числом(точнее это продолжение ранее обсуждаемойй темы). И тема для меня была раскрыта и понята. Именно побитовое установка флагов. А уж как работать с извлеченными из хранилища данными - вариантов много. Спасибо.
> абизяна (24.11.09 14:43) [93]
Обычно когда пишешь пост, то дополнительно представляться не нужно. Для этого есть ник, по которому и так все видно. :)))
← →
kyn66 © (2009-11-24 20:11) [96]
>Дмитрий Белькевич (24.11.09 18:34) [94]
>
> function TestForBit(BitMask: DWord; BitPos: Integer):Boolean;
> begin Result := BitMask and (BitPos shl Provbit) = BitPos;
> end;
Только здесь мне кажется не совсем верно. Должно быть так:
function TestForBit(BitMask: DWord; BitPos: Integer):Boolean;
begin
Result := BitMask and (1 shl BitPos) = BitPos;
end;
...
CheckBox1.Checked := TestForBit(WeekDaysMask, Provbit);
← →
Дмитрий Белькевич (2009-11-24 23:24) [97]>Должно быть так:
Да. Еще inline добавить до полного счастья...
← →
kyn66 © (2009-11-24 23:45) [98]
> Дмитрий Белькевич (24.11.09 23:24) [97]
>Да. Еще inline добавить до полного счастья.
А не жирно будет для такой мелочевки? :)
К тому же {$INLINE} Delphi7 не поддерживает.
← →
Дмитрий Белькевич (2009-11-25 00:10) [99]>А не жирно будет для такой мелочевки? :)
Как раз для такой мелочевки - в сам раз, что бы производительность не терять на обвязке входом/выходом в функцию, состоящую из одной строки (и, скорее всего, 2-3 команд процессора).
>К тому же {$INLINE} Delphi7 не поддерживает.
Только не {$INLINE}, а
function TestForBit(BitMask: DWord; BitPos: Integer):Boolean; inline;
По поводу семёрки - смотри в сторону 2009/2010, если есть возможность и желание.
← →
kyn66 © (2009-11-25 09:13) [100]
> Дмитрий Белькевич (25.11.09 00:10) [99]
>Только не {$INLINE},а function TestForBit(BitMask: DWord; BitPos: Integer):
> Boolean; inline;
Да, конечно же, не хотел уже пост переписывать. Хотел просто акцентировать внимание на директиве.
>поводу семёрки - смотри в сторону 2009/2010, если есть возможность и >желание.
Да как то боязно. В том плане, что за годы накопился ряд приложений, использующих те или иные внешние компоненты(RX, Tms и др. Ну по поводу Rx, то слыхал вроде в 2010 она уже встроена). Где есть вероятность, что найду версию для 2009/2010 или их совместимость? В чем особое превосходство новой версии, чтобы кардинально переходить на нее?
← →
Дмитрий Белькевич (2009-11-25 15:00) [101]>Да как то боязно.
Волков не стоит боятся ;) Основные компоненты или уже перенесены или могут быть перенесены достаточно быстро (если уж совсем какая-то экзотика). Rx"ы точно под 2009-ю видел, а то, что под 2009-й работает переносится почти безболезненно под 2010-ю, да уже наверно и под 2010-ю пересобрали. Я уже давно от Rx"ов отказался - она вошла в Jedi и там обновляется под новые версии среды, поэтому точное состояние дел с Rx"ами не знаю. Tms"ы не пользую.
>Где есть вероятность, что найду версию для 2009/2010 или их совместимость?
Можно параллельно поставить - они семёрке не мешают. И постепенно переносить компоненты и проекты.
>В чем особое превосходство новой версии, чтобы кардинально переходить на нее?
Осособое? 1. Юникод. 2. Более удобная среда. Вначале не понравился фулл-скрин, потом посмотрел, что в работе удобнее - почти все нужные окна уже под руками. 3. Рефакторинг. Помогает сырцы причёсывать. 4. Ну и так, всяких мелочей куча - типа того же inlin"а, более удобного редактора кода и прочих мелких и не очень доработок коих сотни.
← →
kyn66 © (2009-11-25 15:29) [102]
> Можно параллельно поставить - они семёрке не мешают. И постепенно
> переносить компоненты и проекты.
Так будет безопаснее. Заодно и посмотреть что за вестч такая.... Я читал что якобы существенный минус - значительное увеличения ехе-шника. Не вопрос, посмотреть конечно интересно было бы. Тока я шота не видел пока ни у кого его на руках из своего круга. Может просто не интерисовался.... Нужно в ларьках "дисковых" глянуть. Кстати про inline тоже читанул. Он якобы не такой уж и безобидный. Есть свои прибабахи при его использовании. Ряд разных ограничений и т.д. http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1091#06-7
← →
Anatoly Podgoretsky © (2009-11-25 16:08) [103]> kyn66 (25.11.2009 15:29:42) [102]
Размер ехе волнует только озабоченых.
← →
Дмитрий Белькевич (2009-11-26 01:12) [104]>Он якобы не такой уж и безобидный.
Все подряд функции инлайнить, конечно, не стоит да и не получится. Но для всякой мелочи на 3-10 ассемблерных комманд, когда "разгон" при вызове функции длиннее самой функции - то самое то. Будет и быстре и скорее всего компактнее.
>Я читал что якобы существенный минус - значительное увеличения ехе-шника.
В наше время глупо размером экзешников заморачиваться. Ну не сто же метров он, пустой, будет. Ну будет он на один мегабайт длиннее - то и фиг с ним. Вон - дотнетщики не грузятся 300 мб дотнета к инсталлерам пристёгивать.
Размер экзешника, кстати, можно частично редуцировать - в файле проекта прописать
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])}
отключив новые RTTIшные фичи. У себя я поотключал везде - всё равно не пользую эти фичи и скорее всего не буду.
← →
korneley © (2009-11-26 01:27) [105]
> Дмитрий Белькевич (25.11.09 15:00) [101]
> >Да как то боязно.Волков не стоит боятся ;) Основные компоненты
> или уже перенесены или могут быть перенесены достаточно
> быстро
Ага... Был случай с переходом на Инди :) После ФастНета. Прям "Брильянтовую руку" вспомнил: "То же, но с перламутровыми пуговицами" :)) И всё только из-за того, что была установка: либо то, что в дистрибутиве Дельфи, либо открытые исходники.
← →
Дмитрий Белькевич (2009-11-26 03:59) [106]Пользовать закрытые и заброшенные компоненты - это проблема архитектуры программы а не среды.
← →
korneley © (2009-11-26 04:53) [107]
> Дмитрий Белькевич (26.11.09 03:59) [106]
> Пользовать закрытые и заброшенные компоненты - это проблема
> архитектуры программы а не среды.
В четвертой (ИМХО не лучшей) версии были фастнет. Компоненты. :) В пятой тоже. Бац! Индейцы наступают. Да нет, там немного было, больше с 9-й на 10-е Инди переход нервов (и времени) занял. Но, опять же, что фастнет, что инди, это не "сторонние" компоненты, а очень даже родные. Ага, чую засаду: "А чего самому всё не забульбенить?" Дык, для чего тогда вся идея? Это я про повторное испольование?
← →
Дмитрий Белькевич (2009-11-26 14:22) [108]Фастнет не обязательно было использовать. Indy (восьмые) были уже для 4-й делфи.
Не знаю твою ситуацию, а у себя 9-ю инди мы как юзали в семёрке так и юзаем сейчас в 2010. Немного допилив под юникод.
> Но, опять же, что фастнет, что инди, это не "сторонние"
> компоненты, а очень даже родные.
А я про сторонние ничего и не говорил. Я говорил про закрытые. И то, что какие-то компоненты входят в Делфи вовсе не означает, что именно их и нужно использовать.
Посмотрел у себя на первой форме приложения - 519 компонент. Из них стандартных - несколько TTimer"ов, TOpenDialog, Action"ы собранные в ActionList, парочка IBQuery и одно TMemo (вчера буквально добавил, надеюсь в будущем тоже заменить). Всё остальное - стороннее и, само собой, с сырцами.
← →
Inovet © (2009-11-26 15:43) [109]> [47] Anatoly Podgoretsky © (18.11.09 11:58)
> > kyn66 (18.11.2009 11:43:46) [46]
>
> Вот нас уже двое, кстати в твоем распоряжение ресурс еще
> на 53 сообщения.
А ресурс тем временем по доброте душевной был увеличен.:)
← →
Anatoly Podgoretsky © (2009-11-26 16:16) [110]> Inovet (26.11.2009 15:43:49) [109]
Сначала был выполнен долг, ресурс достигнут, а теперь уже сверх обязаностей.
← →
Leonid Troyanovsky © (2009-11-26 22:57) [111]
> kyn66 © (25.11.09 15:29) [102]
Лето 1829 года Пушкин провел в деревне. Он вставал рано утром, выпивал жбан парного молока и бежал к реке купаться. Выкупавшись в реке, Пушкин ложился на траву и спал до обеда. После обеда Пушкин спал в гамаке. При встрече с вонючими мужиками Пушкин кивал им головой и зажимал пальцами свой нос. А вонючие мужики ломали свои шапки и говорили: «Это ничаво».
--
Regards, LVT.
← →
Игорь Шевченко © (2009-11-26 23:50) [112]Leonid Troyanovsky © (26.11.09 22:57) [111]
"Захотел Леннон с Джимом Моррисоном рознакомиться. Звонит ему в
Америку и говорит: "Приезжай ко мне в Еврору". А Моррисон ему
отвечает: "Чего это я к тебе поеду? Лучше ты приезжай ко мне в
Америку". Обиделся Леннон, трубку бросил. Потом думает: "Чего
это я на него обиделся? Сьезжу-ка к нему в Америку". И уехал в
Америку. А Моррисон думает: "Нехорошо я как-то Леннона обидел.
Надо сьездить к нему в Еврору". И уехал в Еврору. Так они и не
встретились."
← →
Anatoly Podgoretsky © (2009-11-27 09:27) [113]> Игорь Шевченко (26.11.2009 23:50:52) [112]
Два бита
← →
kyn66 © (2009-11-27 09:35) [114]Удалено модератором
Примечание: А полечим тебя, заодно и узнаем, кто из вас Идиот.
← →
Leonid Troyanovsky © (2009-11-27 09:43) [115]
> kyn66 © (27.11.09 09:35) [114]
У Пушкина было четыре сына и все идиоты. Один не умел даже сидеть на
стуле и все время падал. Пушкин-то и сам довольно плохо сидел на стуле.
Бывало, сплошная умора: сидят они за столом; на одном конце Пушкин все
время со стула падает, а на другом конце - его сын.
Просто хоть святых вон выноси!
--
Regards, LVT.
← →
Leonid Troyanovsky © (2009-11-27 09:53) [116]
> Игорь Шевченко © (26.11.09 23:50) [112]
:)
Мне вот это понравилось:
Леннон всегда недолюбливал Стара, так как подозревал, что тот - еврей. Сидели они как-то на репетиции... Вдруг Леннон схватил бубен и как даст Стару по голове!
- За что-о-о-о-о-о? - заорал Стар.
- Бытовой антисемитизм, - объяснил Леннон.
--
Regards, LVT.
← →
Andy BitOff © (2009-11-27 10:03) [117]
> Leonid Troyanovsky © (27.11.09 09:53) [116]
=)))
Бытовой =)))
← →
Inovet © (2009-11-27 10:24) [118]> [116] Leonid Troyanovsky © (27.11.09 09:53)
> Бытовой антисемитизм, - объяснил Леннон.
Битловой или битовый.:)
← →
Inovet © (2009-11-27 10:40) [119]> [112] Игорь Шевченко © (26.11.09 23:50)
> Так они и не встретились
Они ведь и действительно не встречались?
← →
Юрий Зотов © (2009-11-27 18:09) [120]Как-то, читая "Потрепаловку", Пушкин подумал: "Им что, делать нечего?".
Страницы: 1 2 3 4 вся ветка
Форум: "Прочее";
Текущий архив: 2010.01.31;
Скачать: [xml.tar.bz2];
Память: 0.7 MB
Время: 0.011 c