Форум: "Начинающим";
Текущий архив: 2009.02.01;
Скачать: [xml.tar.bz2];
ВнизОптимизация Найти похожие ветки
← →
1991 (2008-12-16 14:57) [0]Помогите с оптимизацией: Можно ли сократить не выполняя несколько раз проверок?
if ((mInId <> -1) and (mId = mInId))
or ((cInId <> -1) and (cId = cInId))
then
cItem.Expand;
if (mInId <> -1) and (mId = mInId) then
fFocusItem := mItem;
if (cInId <> -1) and (cId = cInId) and not Assigned(fFocusItem)
then
fFocusItem := cItem;
← →
Jeer © (2008-12-16 15:00) [1]А что беспокоит ?
← →
1991 (2008-12-16 15:03) [2]Может что лишнее написал. Например по 2 раза проверяются
if (mInId <> -1) and (mId = mInId)
иif (cInId <> -1) and (cId = cInId)
← →
Jeer © (2008-12-16 15:09) [3]Так устроит ? :))
R1 := ((mInId <> -1) and (mId = mInId));
R2 := ((cInId <> -1) and (cId = cInId));
if (R1 or R2) then
cItem.Expand;
if R1 then
fFocusItem := mItem;
if R2 and not Assigned(fFocusItem) then
fFocusItem := cItem;
Если не учитывать событийность, то можно еще сократить, но..
А вообще-то, компилятору пофиг такие упражнения с исходниками.
← →
1991 (2008-12-16 15:15) [4]
> Так устроит ? :))
Спасибо. Так выглядит действительно лучше..
← →
Ega23 © (2008-12-16 15:38) [5]Project -> Options -> Compiler -> Code Generation -> Optimization галку поставь.
:о)
← →
Правильный$Вася (2008-12-16 15:51) [6]
> Optimization галку поставь.
нельзя ж во всем на железку полагаться
иногда и самому думать надо
а то как батонокидательство будет
← →
Ega23 © (2008-12-16 15:58) [7]
> нельзя ж во всем на железку полагаться
> иногда и самому думать надо
> а то как батонокидательство будет
Экономить не там надо (хотя и в такой ситуации лучше экономить).
А, например, в такой:function ReverseString(const s : string) : string;
var
i : Integerl
begin
Result := "";
for i:= Length(s) downto 1 do Result := Result + s[i];
end;
← →
clickmaker © (2008-12-16 16:48) [8]> А, например, в такой:
>
> function ReverseString
я бы через перестановку символов сделал.
Без использования дополнительной переменной, как в лабах задают -)
← →
Ega23 © (2008-12-16 17:00) [9]
> я бы через перестановку символов сделал.
> Без использования дополнительной переменной, как в лабах
> задают -)
Я вот этого как-то понять не могу. Совсем без дополнительной переменной? Или таки один Char можно завести?
← →
clickmaker © (2008-12-16 17:14) [10]если исходную строку менять нельзя, то без переменной не получится. Ибо Result уже будет )
если var, то можно
либо так
Len := Length(s);
SetLength(Result, Len);
for i:=1 to Len do
Result[i] := s[Len-i+1];
← →
Правильный$Вася (2008-12-16 17:42) [11]
> clickmaker © (16.12.08 17:14) [10]
у тебя вон и Len, и i
целая орда переменных :))
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.02.01;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c