Главная страница
    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
14-36834
RealRascal
2003-11-16 11:38
2003.12.12
---<<< Скорость кода >>>---


1-36613
BaDeVlad
2003-12-01 14:05
2003.12.12
Можно ли задать размер файла на диске ничего не записывая?


3-36505
Элина
2003-11-22 17:46
2003.12.12
Проверка поля на пустоту в SQL


3-36547
Strateg23
2003-11-20 17:54
2003.12.12
Как выбрать тип базы?


1-36747
Urvin
2003-12-01 18:10
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский