uint64
uint64
BigInteger
single
real
int64
int64
int64
int64
int64
int64
uint64
int64
uint64
BigInteger
single
real
uint64
uint64
uint64
uint64
uint64
uint64
uint64
uint64
uint64
BigInteger
single
real
BigInteger
BigInteger
BigInteger
BigInteger
BigInteger
BigInteger
BigInteger
BigInteger
BigInteger
BigInteger
-
-
single
single
single
single
single
single
single
single
single
-
single
real
real
real
real
real
real
real
real
real
real
-
real
real
Π’ΠΎ Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ - ΡΠ΅Π»ΡΠ΅, ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΌΡΠΉ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠ΅Π»ΡΠΉ ΡΠΈΠΏ, ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ uint64 ΠΈ Π·Π½Π°ΠΊΠΎΠ²ΡΠΌ ΡΠ΅Π»ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΌ ΡΠΈΠΏΠΎΠΌ Π±ΡΠ΄Π΅Ρ uint64, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π½Π΅ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΠ»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ / Π΄Π°Π½Π½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π΅Π»Π΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ³ΠΎ Π½Π° ΡΠ΅Π»ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ real.
ΠΠ»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ div ΠΈ mod Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠΈ ΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°, Π½ΠΎ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»ΡΠΌΠΈ. ΠΡΠ°Π²ΠΈΠ»Π° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ div ΠΈ mod - ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
x div y - ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΡ x Π½Π° y. Π’ΠΎΡΠ½Π΅Π΅, x div y = x / y, ΠΎΠΊΡΡΠ³Π»Π΅Π½Π½ΠΎΠ΅ Π΄ΠΎ Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π³ΠΎ ΡΠ΅Π»ΠΎΠ³ΠΎ ΠΏΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊ 0;
x mod y - ΠΎΡΡΠ°ΡΠΎΠΊ ΠΎΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΡ x Π½Π° y. Π’ΠΎΡΠ½Π΅Π΅, x mod y = x - (x div y) * y.
Π£Π½Π°ΡΠ½Π°Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ + Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠΎΡ ΡΠΈΠΏ. Π£Π½Π°ΡΠ½Π°Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ - Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π»Ρ ΡΠ΅Π»ΡΡ ΡΠΈΠΏΠΎΠ², ΠΌΠ΅Π½ΡΡΠΈΡ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΡΡ integer, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° integer, Π΄Π»Ρ longword ΠΈ int64 - Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° int64, ΠΊ uint64 ΡΠ½Π°ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ - Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ°, Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² single ΠΈ real - ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΈΠΏΡ single ΠΈ real. Π’ΠΎ Π΅ΡΡΡ ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΌΡΠΉ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠΈΠΏ, ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
Π Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ and, or ΠΈ xor, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ½Π°ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ not, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ ΡΠΈΠΏΠ° boolean ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° boolean. ΠΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ΡΠΈΠ½ΡΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ Π»ΠΎΠ³ΠΈΠΊΠΈ: a and b ΠΈΡΡΠΈΠ½Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΡΡΠΈΠ½Π½Ρ a ΠΈ b, a or b ΠΈΡΡΠΈΠ½Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΡΡΠΈΠ½Π½ΠΎ Π»ΠΈΠ±ΠΎ a, Π»ΠΈΠ±ΠΎ b, a xor b ΠΈΡΡΠΈΠ½Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· a ΠΈ b ΠΈΡΡΠΈΠ½Π½ΠΎ, not a ΠΈΡΡΠΈΠ½Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° a Π»ΠΎΠΆΠ½ΠΎ.
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ and ΠΈ or Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΡΡ Π΅ΠΌΠ΅:
Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ x and y Π΅ΡΠ»ΠΈ x Π»ΠΎΠΆΠ½ΠΎ, ΡΠΎ Π²ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠΆΠ½ΠΎ, ΠΈ y Π½Π΅ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ;
Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ x or y Π΅ΡΠ»ΠΈ x ΠΈΡΡΠΈΠ½Π½ΠΎ, ΡΠΎ Π²ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΡΠΈΠ½Π½ΠΎ, ΠΈ y Π½Π΅ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ.
ΠΠΎΠ±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
Π ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ and, or, not, xor, shl, shr. ΠΠ½ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°ΠΌΠΈ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. Π Π΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΉ ΡΠΈΠΏ Π΄Π»Ρ and, or, xor Π±ΡΠ΄Π΅Ρ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΌ ΡΠ΅Π»ΡΠΌ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΌ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΠΎΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ². ΠΠ»Ρ shl, shr ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΉ ΡΠΈΠΏ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΡΠΈΠΏΠΎΠΌ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°, Π΄Π»Ρ not - Ρ ΡΠΈΠΏΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°.
ΠΠΎΠ±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π±ΠΈΡΠΎΠΌ (0 ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π·Π° False, 1 - Π·Π° True) ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
00010101 and 00011001 = 00010001
00010101 or 00011001 = 00011101
00010101 xor 00011001 = 00001100
not 00010101 = 11101010
(ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅).
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈΠΈ shl ΠΈ shr ΠΈΠΌΠ΅ΡΡ Π²ΠΈΠ΄:
a shl n
a shr n
Π³Π΄Π΅ n - ΡΠ΅Π»ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, a - ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ.
a shl n ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅Π»ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ· Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΡΠ»Π° a ΡΠ΄Π²ΠΈΠ³ΠΎΠΌ Π²Π»Π΅Π²ΠΎ Π½Π° n ΠΏΠΎΠ·ΠΈΡΠΈΠΉ. ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΡΠΏΡΠ°Π²Π° ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½ΡΠ»ΡΠΌΠΈ.
a shr n ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅Π»ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ· Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΡΠ»Π° a ΡΠ΄Π²ΠΈΠ³ΠΎΠΌ Π²ΠΏΡΠ°Π²ΠΎ Π½Π° n ΠΏΠΎΠ·ΠΈΡΠΈΠΉ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
3 shl 2 = 12
12 shr 2 = 3
ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ 3=112, ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π²ΠΈΠ³Π° Π²Π»Π΅Π²ΠΎ Π½Π° 2 ΠΏΠΎΠ·ΠΈΡΠΈΠΈ 112 ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² 11002=12, Π° 12=11002 ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π²ΠΈΠ³Π° Π²ΠΏΡΠ°Π²ΠΎ Π½Π° 2 ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² 112=3.
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ <, >, <=, >=, =, <> Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° boolean ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°ΠΌ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈ ΠΊ ΡΡΡΠΎΠΊΠ°ΠΌ.
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ = ΠΈ <> ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠΈΠΏΠ°ΠΌ. ΠΠ»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π΄Π»Ρ ΡΡΡΠ»ΠΎΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² - ΡΡΡΠ»ΠΊΠΈ. ΠΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ = ΠΈ <>. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ², Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
Π‘ΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
Π ΡΡΡΠΎΠΊΠ°ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ <, >, <=, >=, =, <>. Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ Π½Π° Π½Π΅ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π»Π΅ΠΊΡΠΈΠΊΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ: s1 < s2 Π΅ΡΠ»ΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π½Π΅ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ i s1[i]<s2[i] ΠΈΠ»ΠΈ Π²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΡΡΠΎΠΊ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, Π½ΠΎ s1 ΠΊΠΎΡΠΎΡΠ΅ s2.
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, ΠΊ ΡΡΡΠΎΠΊΠ°ΠΌ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ (ΡΠ»ΠΈΡΠ½ΠΈΡ) +, Π΅Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ ΡΠΈΠΏ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, 'a'+'b'='ab'.
Π ΡΡΡΠΎΠΊΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ +=:
s += s1; // s := s + s1;
Π‘ΡΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Ρ ΡΠΈΡΠ»ΠΎΠΌ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΈΡΠ»ΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ ΠΊ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ:
s := 'Π¨ΠΈΡΠΈΠ½Π°: '+15; // s = 'Π¨ΠΈΡΠΈΠ½Π°: 15'
s := 20.5+''; // s = '20.5'
s += 1; // s = '20.51'
ΠΠ°Π΄ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ ΠΈ ΡΠ΅Π»ΡΠΌΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ *: s*n ΠΈ n*s ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ, ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ· ΡΡΡΠΎΠΊΠΈ s, ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½Π½ΠΎΠΉ n ΡΠ°Π·:
s := '*'*10; // s = '**********'
s := 5*'ab' // s = 'ababababab'
s := 'd'; s *= 3; // s = 'ddd'
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ
ΠΠΎ Π²ΡΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ = ΠΈ <>.
Π ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ^: Π΅ΡΠ»ΠΈ p ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° ΡΠΈΠΏ T, ΡΠΎ p^ - ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° T, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ p. Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ pointer ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°ΡΡ Π½Π΅Π»ΡΠ·Ρ.
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ
Π ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌ Ρ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ + (ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅), - (ΡΠ°Π·Π½ΠΎΡΡΡ) ΠΈ * (ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ +=, -= ΠΈ *=:
var s1,s2,s: set of byte;
begin
s1 := [1..4];
s2 := [2..5];
s := s1 + s2; // s = [1..5]
s := s1 - s2; // s = [1]
s := s1 * s2; // s = [2..4]
// s += s1 ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ s := s + s1
// s -= s1 ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ s := s - s1
// s *= s1 ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ s := s * s1
s += [3..6]; // s = [2..6]
s -= [3]; // s = [2,4..6]
s *= [1..5]; // s = [2,4..5]
end.
Π ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌ Ρ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ = (ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ), <> (Π½Π΅ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ), <= (Π½Π΅ΡΡΡΠΎΠ³ΠΎ Π²Π»ΠΎΠΆΠ΅Π½ΠΎ), < (ΡΡΡΠΎΠ³ΠΎ Π²Π»ΠΎΠΆΠ΅Π½ΠΎ), >= (Π½Π΅ΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ) ΠΈ > (ΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ):
[1..3] = [1,2,3]
['a'..'z'] <> ['0'..'9']
[2..4] < [1..5]
[1..5] <= [1..5]
[1..5] > [2..4]
[1..5] >= [1..5]
ΠΠΎ Π½Π΅Π²Π΅ΡΠ½ΠΎ, ΡΡΠΎ [1..5] < [1..5].
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ in ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ: 3 in [2..5] Π²Π΅ΡΠ½Π΅Ρ True, 1 in [2..5] Π²Π΅ΡΠ½Π΅Ρ False.
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ @
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ @ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΅Π΅ Π°Π΄ΡΠ΅Ρ. Π’ΠΈΠΏ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
var
r: real;
pr: ^real := @r;
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ is ΠΈ as
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ is ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ³ΠΎ, ΠΈΠΌΠ΅Π΅Ρ Π»ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ²Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠΏ. ΠΠΏΠ΅ΡΠ°ΡΠΈΡ as ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΊΠ»Π°ΡΡΠΎΠ²ΠΎΠΌΡ ΡΠΈΠΏΡ (Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°).
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ is ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄:
a is ClassType
ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True Π΅ΡΠ»ΠΈ a ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΊ ΠΊΠ»Π°ΡΡΡ ClassType ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ· Π΅Π³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Base ΠΈ Derived - ΠΊΠ»Π°ΡΡΡ, ΠΏΡΠΈΡΠ΅ΠΌ, Derived - ΠΏΠΎΡΠΎΠΌΠΎΠΊ Base, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ b ΠΈ d ΠΈΠΌΠ΅ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΈΠΏΡ Base ΠΈ Derived, ΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ b is Base ΠΈ d is Base Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ True, Π° b is Derived - False.
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ as ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄:
a as ClassType
ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° ClassType Π΅ΡΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ nil.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅
type
Base = class
end;
Derived = class(Base)
procedure p;
begin
end;
end;
var b: Base;
begin
b := new Base;
writeln(b is Derived);
b := new Derived;
writeln(b is Derived);
end.