Текущий архив: 2003.02.06;
Скачать: CL | DM;
ВнизКакая комбинация быстрее Найти похожие ветки
← →
Anton (2003-01-27 15:25) [0]if UpperCase(Name)="OD" then a:=1;
if UpperCase(Name)="RC" then a:=2;
if UpperCase(Name)="OA" then a:=3;
или
if (Name="OD") or (Name="od") or (Name="Od") or (Name="oD") then a:=1;
if (Name="RC") or (Name="rc") or (Name="Rc") or (Name="rC") then a:=2;
if (Name="OA") or (Name="oa") or (Name="Oa") or (Name="oA") then a:=3;
← →
MBo (2003-01-27 15:29) [1]прогони 100000 раз в цикле, и узнаешь
← →
Anatoly Podgoretsky (2003-01-27 15:30) [2]Секундомер у тебя есть?
← →
Anton (2003-01-27 15:30) [3]Я серьезно
← →
bis (2003-01-27 15:31) [4]еще быстрее посимвольно разветвлять и даже через case
← →
gek (2003-01-27 15:33) [5]В принципе
это зависит от второго выражения
т.е. максимум проверок там 4, а минимум 1 в одной строке.
В первом случае два действия: Upper и проверка на равенство
← →
Anatoly Podgoretsky (2003-01-27 15:36) [6]А еще серьезнее
← →
Юрий Зотов (2003-01-27 15:44) [7]Заодно проверьте и такой вариант.
const
Pattern = "ODRCOA";
var
P: integer;
begin
if Length(Name) = 2 then
begin
P := Pos(UpperCase(Name), Pattern);
if P in [1, 3, 5] then A := (P + 1) shr 2
end
end;
← →
Anton (2003-01-27 15:47) [8]публикую результаты измерений
начало 1 блока0,655696608796296
конец 1 блока0,655697152777778
начало 2 блока0,655697152777778
конец 2 блока0,655697870370371
отсюда вывод 1 вариант быстрее в 1.3 раза
← →
Anatoly Podgoretsky (2003-01-27 15:57) [9]Что это за измерение, цикл надо увеличить хотя бы в 100 раз
Name должен быть хотя бы "OA", а лучше "хх"
Код совсем не оптимальный, надо использовать else if
← →
Anatoly Podgoretsky (2003-01-27 16:00) [10]Приведи код теста, явно не хорошо сделан.
← →
Anton (2003-01-27 16:09) [11]да я немножко ошибся
← →
han_malign (2003-01-27 16:34) [12]((Length(Name)=2) and (Name[1]in["O","o"])and(Name[2]in["D","d"]))
а можно и так:
var _name: shortstring;
begin
_name:=Uppercase(Name)+#0;
case dword(_name[0]) of
$00444F03{OD}: a=1;
$00524303{RC}: a=2;
$00414F03{OA}: a=3;
end;{case}
:)))))))
Страницы: 1 вся ветка
Текущий архив: 2003.02.06;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.009 c