inc(x); {x:=x+1;} inc(x,N); {x:=x+N;} x:=x shr 1; {x:=x div 2;} x:=x shl 1; {x:=x * 2;}
Примечание: Только для целых чисел!
(x >= 'A') and (x <= 'Z')
используйте
x in ['A'..'Z']
(Также можно делать и с числами (точнее байтами), но только от 0 до 255)
IF ch IN ['0'..'9','A'..'Z','a'..'z','_'] THEN ...
лучше заменить на
CASE ch OF '0'..'9','A'..'Z','a'..'z','_':...; END;
Include(S, X) и Exclude(S, X)
работают быстрее, чем
S := S + [X] и S := S - [X]
соответственно (где S - множество какого-то типа, а X - элемент множества)
c := (a + b) * d; e := g - (a + b);
В этих выражениях 2 раза вычисляется a+b, поэтому стоит завести временную переменную,
temp := a + b; c := temp * d; e := g - temp;
x:=(a+b)/2;
а надо
x:=(a+b)*0.5;
round(x/y)
чаще всего заменяется на более быстрый:
x div y
Но помните, «Premature optimization is the root of all evil» (Donald Knuth)