Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.008 c
1-36625
Ega23
2003-12-03 10:53
2003.12.12
Сохранить картинку в файл.


1-36737
Dracula2000
2003-12-02 10:30
2003.12.12
Grid or DBGrid


14-36838
Woodpecker
2003-11-19 14:42
2003.12.12
Живы баги!


1-36592
BaDeVlad
2003-12-03 09:14
2003.12.12
Восстановление удаленного файла


7-36878
Anonimus
2003-10-08 10:42
2003.12.12
Удаление иконки из трея





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский