Здравствуйте, Isaev_Max, Вы писали:
I_M>Лично для меня решающим фактором было наличие команд:
I_M>i++;
I_M>i--;
I_M>до близкого знакомства языками высокого уровня программил на Асме под ZX Spectrum forever
I_M>и уж слишком привык к inc'ам и dec'ам, а прирощения типа:
I_M>i=i+1;
I_M>i=i-1;
I_M>воспринимал с трудом
.
I_M>С++ форева
Component Pascal:
INC(i); (* i := i + 1; *)
DEC(i); (* i := i - 1; *)
INC(i, 1000); (* i := i + 1000; *)
DEC(i, 1000); (* i := i - 1000; *)
VAR s: SET; i: INTEGER;
BEGIN
i := 5;
s := {10, 16} (* биты под номерами 10 и 16 равны 1 остальные биты равны 0 *)
INCL(s, 22); (* бит под номером 22 теперь = 1 *)
EXCL(s, 22); (* бит под номером 22 теперь = 0 *)
IF i IN s THEN (* если бит под номером i равен 1 тогда ... *)
i := ORD(s); (* преобразование множества битов в целое число (SUM n: n IN s: 2^n) *)
s := BITS(i);(* преобразование целого числа в множество битов *)
(* гарантируется что нулевой бит множества - это младший разряд целого числа не зависимо от архитектуры процессора - кросплатформенные приложения *)
Set operators:
+ union
- difference (x - y = x * (-y))
* intersection
/ symmetric set difference (x / y = (x-y) + (y-x))