Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.12;
Скачать: CL | DM;

Вниз

Оптимизация кода   Найти похожие ветки 

 
konstantinov ©   (2003-12-02 00:44) [0]

Есть некая переменная, тип которой может быть различного поддиапазона
В зависимости от значения некой другой переменной.
Не хочется каждый раз, приприсвоении значения переменной проверять попадает ли она
в нужный диапазон.
( Длительный цикл, лишняя проверка = лишние переходы = лишние тормоза )
Как правильно реализовать подобное?
К примеру если объявить А : byte;
и в цикле использовать Inc(A), то никогда за пределы диапазона 0..255 не выйдем.

попробовал реализоват это следующим образом:
type
type1 = 0..35;
type2 = 25..240;
var Value : variant;
A1 : type1;
A2 : type2;
C : boolean;
begin
...
if C then Value := A1 пытаемся определиться с типом переменной
else Value := A2;
for I := 0 to 100000000 do Inc(Value);

увы, не прокатило ...


 
dmk ©   (2003-12-02 02:39) [1]

Лучше изменить код, чтобы использовать функции с директивой Overload.


 
SkyRanger ©   (2003-12-02 04:12) [2]

Попробуй использовать in, хотя это может работать тока со множествами set of


 
TUser ©   (2003-12-02 11:49) [3]

Лучше объявить все это пропертями. И при присвоении значения проверять. По-моему, тормозить все это будет не очень сильно.
Что касается byte, то он просто ало памяти занимает, поэтому и не будет больше 255. В принцыпе, можно самому зарегистрировать свой тип, занимающий в памяти, допустим, 3 байта, и к нему придумать арифметические операции, но тут дебе нужен не Паскаль, а Си.


 
Юрий Зотов ©   (2003-12-02 14:15) [4]

> TUser © (02.12.03 11:49) [3]
> нужен не Паскаль, а Си.

Разве? А что, процедуры и функции в Паскале уже отменили? Непременно нужна перегрузка и иначе никак?



Страницы: 1 вся ветка

Текущий архив: 2003.12.12;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
7-36866
KIE
2003-10-06 12:19
2003.12.12
Как мне получить изображение с ...


3-36572
NewD
2003-11-20 14:34
2003.12.12
Люди !!! SQL SERVER 2000 - подскажите


1-36725
Eagle Owl
2003-12-01 22:05
2003.12.12
TTimer...


9-36495
Nostradamus
2002-10-08 18:47
2003.12.12
Прорисовка в DelphiX


7-36869
Николашка
2003-10-03 11:44
2003.12.12
Interrupt 21h Function 440Dh Minor Code 4Ah