Главная страница
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.02 c
1-36629
RedArc
2003-11-19 19:57
2003.12.12
хитрозадый TreeView


8-36776
ainaerco
2003-08-15 18:00
2003.12.12
Прозрачность в DelphiX


6-36793
sapsi
2003-10-01 09:13
2003.12.12
Команда Ping под Делфи


1-36637
Soi
2003-12-01 10:36
2003.12.12
Регулярные выражения


11-36586
Slay
2003-03-31 01:40
2003.12.12
object & property