Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-ΠΈΠ³ΡΡ Β«Π¨Π°ΡΠΊΠΈΒ»
ΠΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°. ΠΠ»Π°ΡΡ-ΠΏΠΎΡΠΎΠΌΠΎΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°-ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ Π»ΠΈΠ±ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»Π°ΡΡ-ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ), Π»ΠΈΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ — ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΎΡ Π΄Π²ΡΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-ΠΈΠ³ΡΡ Β«Π¨Π°ΡΠΊΠΈΒ» (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ΅Π΅ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ³ΡΡ «Π¨Π°ΡΠΊΠΈ».
ΠΠ³ΡΠ° ΠΈΠ΄Π΅Ρ Π½Π° ΠΏΠΎΠ»Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ 8 X 8 ΠΊΠ»Π΅ΡΠΎΠΊ, ΡΠ°ΡΠΊΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠΈ ΡΡΠ΄Π° Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π±ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΡΠ΅ΠΊ Π² Π»ΡΠ±ΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ , ΠΏΡΠΎΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΠΈΡΡ Π½Π°Π·Π°Π΄, Π΄Π°ΠΌΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Ρ ΠΎΠ΄ΠΈΡΡ Π½Π° Π»ΡΠ±ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΠ»Π΅ΠΉ, ΡΠ΅Π»Ρ ΠΈΠ³ΡΡ ΡΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ Π·Π°ΠΏΠ΅ΡΠ΅ΡΡ Π²ΡΠ΅ ΡΠ°ΡΠΊΠΈ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊΠ°. ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΡΡΠΎΡΠΎΠ½ Π² Π½Π°ΡΠ°Π»Π΅ ΠΈΠ³ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎ 12 ΡΠ°ΡΠ΅ΠΊ. Π¨Π°ΡΠΊΠΈ ΡΠ°ΡΡΡΠ°Π²Π»ΡΡΡΡΡ Π² ΡΡΠ΅Ρ Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ ΠΊ ΠΈΠ³ΡΠΎΠΊΠ°ΠΌ, Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΡ . ΠΠ²Π° ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΄Π° ΠΏΠΎΠ»Π΅ΠΉ ΠΎΡΡΠ°ΡΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΌΠΈ. ΠΠ΄Π΅ΡΡ Π½Π° ΡΡΠΈΡ ΠΏΠΎΠ»ΡΡ , ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠΎΠΏΡΠΈΠΊΠΎΡΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΡΠΎΡΡΠΈΡ ΡΠΈΠ». ΠΡΠΎΡΠΈΠ²Π½ΠΈΠΊΠΈ Ρ ΠΎΠ΄ΡΡ ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Ρ ΡΠ°ΡΠΊΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ²Π΅ΡΠ° ΠΏΠΎ ΠΈΠ³ΡΠΎΠ²ΡΠΌ ΠΏΠΎΠ»ΡΠΌ. ΠΠ΅ΡΠ²ΡΠΌΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ Π±Π΅Π»ΡΠ΅. ΠΡΠΈΠ³ΡΡΠ²Π°Π΅Ρ ΡΠ° ΡΡΠΎΡΠΎΠ½Π°, ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ½ΠΈΡΡΠΎΠΆΠΈΡΡ ΠΈΠ»ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΠ°ΡΠ΅ΠΊ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊΠ°.
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ³ΡΠ° ΡΠ°ΡΠΊΠΈ ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ, ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ. ΠΠΎΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΡΡΠΎΠΌ ΡΠΎΡΡΠΎΠΈΡ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΠΠ ΠΎΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π³Π΄Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ (ΡΡΠ½ΠΊΡΠΈΠΈ) Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² — ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π°, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠ΅Π³ΠΎ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ ΡΠ΅ΡΠ΅Π· ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ.
Π¦Π΅Π»Ρ ΡΠ°Π±ΠΎΡΡ: Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π½Π°Π½ΠΈΠΉ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΏΡΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ ΠΊΡΡΡΠ° «ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅», ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ³ΡΡ «Π¨Π°ΡΠΊΠΈΠΈ».
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡ:
— ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ;
— ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΡΡΡΡΡ Π΄Π°Π½Π½ΡΡ (Π΄Π°Π½Π½ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ) Π΄Π»Ρ Π²ΡΠ±ΡΠ°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²;
— ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΈΡ Π·Π°ΠΊΡΡΡΡΡ Π΄Π°Π½Π½ΡΡ ;
— ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ;
— ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°;
— ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ΅ΡΠΈΡΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡ;
— ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅;
— ΠΎΡΠΈΡΡΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΠΎ Π΅ΡΡΡ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡ ΡΡ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ;
— ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΡΠ»Π°Π΄ΠΊΠ°, ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ «ΠΊΠ»Π°ΡΡ» ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΠΈ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ .
ΠΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ ΠΊΠ°ΠΊ Π±Ρ ΡΠΊΡΡΠ²Π°Π΅Ρ ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ², ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°Π΄ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
1. ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅, ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ΅, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΠΠ) — ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ². Π ΡΠ»ΡΡΠ°Π΅ ΡΠ·ΡΠΊΠΎΠ² Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ-ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ.
1.1 ΠΡΡΠΎΡΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ
ΠΠΠ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π³Π΄Π΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΡΡΠ½ΠΊΡΠΈΠΈ) ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Ρ. ΠΠ»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ½ΡΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΡ (ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅) ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΠΠ).
Π€ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠΠ ΠΎΡ ΠΠΠ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ, ΠΊΠ°ΠΊ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄ΡΠ»ΠΈ — Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΡΠ°ΡΡΠΈ ΠΊΠΎΠ΄Π° Π΄ΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ — Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΡΠ°ΡΡΠΈ ΠΊΠΎΠ΄Π° Π΄ΠΎ ΡΡΠΎΠ²Π½Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΠΠ, ΠΏΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡ, Π±ΡΠ΄Π΅Ρ Π°Π³Π΅Π½ΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π³Π΄Π΅ Π°Π³Π΅Π½ΡΡ — Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΡΠ°ΡΡΠΈ ΠΊΠΎΠ΄Π° Π½Π° ΡΡΠΎΠ²Π½Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π°Π³Π΅Π½ΡΠΎΠ² ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ΅Π΄Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ.
Π―Π·ΡΠΊΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ²Π½ΠΎ Π½Π΅ ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ, Π½ΠΎ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠΌ Π΄Π»Ρ ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ (ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ) ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΡΡΡΡ ΠΎΡ Π½ΠΈΡ Π² Π°ΡΠΏΠ΅ΠΊΡΡ (Π² Π°ΡΠΏΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ). Π‘ΡΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠΎΠΆΠ΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°Π΄ΠΈΠ΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΠΠ ΠΈ Π°Π³Π΅Π½ΡΠ½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΠ°ΡΡΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ, Π±ΡΠ»Π° Π‘ΠΈΠΌΡΠ»Π°. Π ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ (Π² 1967 Π³ΠΎΠ΄Ρ), ΡΡΠΎΡ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» ΠΏΠΎΠΈΡΡΠΈΠ½Π΅ ΡΠ΅Π²ΠΎΠ»ΡΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΈΠ΄Π΅ΠΈ: ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠ»Π°ΡΡΡ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ Π΄Ρ., ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π²ΡΡ Π½Π΅ Π±ΡΠ»ΠΎ Π²ΠΎΡΠΏΡΠΈΠ½ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΊΠ°ΠΊ Π½Π΅ΡΡΠΎ Π³ΡΠ°Π½Π΄ΠΈΠΎΠ·Π½ΠΎΠ΅. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ Π±ΡΠ»ΠΈ ΡΠ°Π·Π²ΠΈΡΡ ΠΠ»Π°Π½ΠΎΠΌ ΠΡΠΉΠ΅ΠΌ ΠΈ ΠΡΠ½ΠΎΠΌ ΠΠ½Π³Π°Π»Π»ΡΠΎΠΌ Π² ΡΠ·ΡΠΊΠ΅ Smalltalk. ΠΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ ΡΡΠ°Π» ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΡΠΏΠΈΡΠΎΠΊ ΡΠ·ΡΠΊΠΎΠ²), ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ°ΠΌ. Π ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ·ΡΠΊ C. Π₯ΠΎΡΡ ΠΏΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π·Π°ΠΌΠ΅ΡΠ½ΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΡΡΠ°Π»ΠΈ ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ·ΡΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
1.2 ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΠΠ ΠΈ Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ Π² ΠΠΠ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅ΡΠ½ΠΎ Π²ΡΡΠ΅ΠΊΠ°Π΅Ρ ΠΈΠ· ΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΎ ΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ. ΠΠ»Π°ΡΡ Π² ΠΠΠ — ΡΡΠΎ Π² ΡΠΈΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ. Π‘ ΡΡΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ²Π»ΡΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Π·Π°Π΄Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ Π½Π°Π±ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π΄ ΡΡΠΈΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ. ΠΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² (Π° Π·Π½Π°ΡΠΈΡ, Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ) Π²ΡΡΠ΅ΠΊΠ°Π΅Ρ ΠΈΠ· ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° — Π΅ΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΠΌΠ΅ΡΡ ΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π½Π΅Ρ ΡΠΌΡΡΠ»Π° Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅, Π»ΡΡΡΠ΅ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΎΠ±ΡΡΡ ΡΠ°ΡΡΡ Π² ΠΎΠ±ΡΠΈΠΉ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ, Π° Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠ°ΠΌΠΈΡ ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΠΈΠ΅ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ°Π·Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠΏΠΎΡΠΎΠ±Π½ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° — Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°. Π ΡΠ°ΠΊΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΎΡΠΏΡΠ°Π²Π»ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π·Π½Π°ΡΡ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ Π°Π΄ΡΠ΅ΡΠ°Ρ, ΠΈ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ°Π·Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², Π²ΡΠ·ΠΎΠ²ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅Π°ΠΊΡΠΈΡ.
ΠΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠΎΠΌ ΠΆΠ΅ Smalltalk) Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ»ΠΎΡΡ ΠΊΠ°ΠΊ «Π½Π°ΡΡΠΎΡΡΠΈΠΉ» ΠΎΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΡΠΎ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄ΡΡΠ³ΠΎΠΌΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π’Π°ΠΊΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΠΎΠ±ΡΠ΅ΠΉ. ΠΠ½Π° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ ΠΏΡΠΎΡΠΈΠΌΠΈ. Π’Π°ΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅, Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠ΅ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΡ. ΠΠΎΡΡΠ»ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ΅ΡΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π½ΡΠΌΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ — Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π½ΡΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±ΡΠ½ΠΎΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΈ Π΄ΡΡΠ³ΡΡ ΡΡΠΎΡΠΎΠ½Ρ — «ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½Π°Ρ» ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ², ΡΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ. ΠΠΎΡΡΠΎΠΌΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π½ΡΠ½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ «ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π°» — ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΈΠ·Π²Π½Π΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ C++, Object Pascal. Π Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΌ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ .
ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠ°Ρ ΡΡΠΈΠΌΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ, ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΊΠ°ΠΊ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½ΡΠΆΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΠΎ Π΅ΡΡΡ, ΠΏΠΎ ΡΡΡΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠ°ΡΡΠΈΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
1.3 ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΠΠ°ΠΊ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ Π²ΡΡΠ΅, Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠΌΡΡ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ. ΠΠ»Π°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , ΠΈΠΌΠ΅ΡΡΠΈΠΉ Π² ΡΠΎΡΡΠ°Π²Π΅:
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ Π²ΡΠ΅, Π° ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅), Π·Π°Π΄Π°ΡΡΠΈΠ΅ Π΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ). ΠΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠ»Ρ Π΄Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΈΠ·-Π·Π° ΡΠ΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΏΡΡΠ°Π½ΠΈΡΠ°. Π€ΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ), ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ.
ΠΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ. ΠΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π°Π΄ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ.
ΠΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°. ΠΠ»Π°ΡΡ-ΠΏΠΎΡΠΎΠΌΠΎΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°-ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ Π»ΠΈΠ±ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»Π°ΡΡ-ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ), Π»ΠΈΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ — ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΎΡ Π΄Π²ΡΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ»Π°ΡΡΠΎΠ²-ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ. ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅Π»ΡΠΉ ΡΡΠ΄ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠ°ΠΊ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ , ΡΠ°ΠΊ ΠΈ ΡΠΈΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΡΡ , ΠΏΠΎΡΡΠΎΠΌΡ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΎΠ±ΡΡΠΌΠ΅ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π°. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π² 1990;Π΅ Π³ΠΎΠ΄Ρ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ ΠΈ ΡΡΠ°Π»ΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ — ΡΡΠΎ ΠΊΠ»Π°ΡΡ Π±Π΅Π· ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π±Π΅Π· ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΡΠ»ΠΈ Π½Π΅ΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ (ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ) ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² Π½Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄Π΅ΡΡΠ²ΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΊΠ°ΠΊ ΡΠΈΡΡΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΌΠΈ Π»ΠΎΠ³ΠΈΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠ°ΠΊ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΊΡΡΡΠΎΡΡΡ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΠΈΠ·Π²Π½Π΅ Π²ΡΠΎΡΡΡ . ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² ΡΠ·ΡΠΊΠΈ Π²Π²ΠΎΠ΄ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΡΠ²Π½ΠΎ Π·Π°Π΄Π°ΡΡΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅Π½Π° ΠΊΠ»Π°ΡΡΠ°. Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ public, protected ΠΈ private, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠ΅, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΎΡΠΊΡΡΡΡΠ΅ ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ°, ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ°, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΊΠ»Π°ΡΡΠΎΠ²-ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ² ΠΈ ΡΠΊΡΡΡΡΠ΅, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΠ° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΈ ΠΈΡ ΡΠΎΡΠ½ΡΠΉ ΡΠΌΡΡΠ» ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ Π² ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ .
ΠΠΎΠ»Ρ ΠΊΠ»Π°ΡΡΠ°, Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈΠ·Π²Π½Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°ΠΊΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π±Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠ΅Π½ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ»Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΡΠΊΡΡΡΡΠΌΠΈ (Π»ΠΈΠ±ΠΎ ΡΠ·ΡΠΊ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΏΠΎΠ»ΡΠΌ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ·Π²Π½Π΅), Π° Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΌΡΡ Π² ΠΏΠΎΠ»ΡΡ Π΄Π°Π½Π½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ°. Π’Π°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π»ΠΈΠ±ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ, Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ Π·Π°ΠΏΠΈΡΡ Π² ΡΡΠΎ ΠΏΠΎΠ»Π΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΡΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΠΎΡΡΠ°Π»ΠΈΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ (Π²Π½ΡΡΡΠ΅Π½Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ). ΠΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΡΡΡΠΏΠ° Π½Π°Π·ΡΠ²Π°ΡΡ Π΅ΡΡ Π°ΠΊΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ (ΠΎΡ Π°Π½Π³Π». access — Π΄ΠΎΡΡΡΠΏ), Π° ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ — Π³Π΅ΡΡΠ΅ΡΠ°ΠΌΠΈ (Π°Π½Π³Π». get — ΡΡΠ΅Π½ΠΈΠ΅) ΠΈ ΡΠ΅ΡΡΠ΅ΡΠ°ΠΌΠΈ.
ΠΡΠ΅Π²Π΄ΠΎΠΏΠΎΠ»Ρ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ / ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠΈ. Π‘Π²ΠΎΠΉΡΡΠ²Π° Π²Π½Π΅ΡΠ½Π΅ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠΌ (Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ), ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ Π½ΠΈΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ «ΡΠΌΠ½ΡΠ΅» ΠΏΠΎΠ»Ρ Π΄Π°Π½Π½ΡΡ , ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ°ΠΊΠΈΠΌΠΈ-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΡΡΡ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ Π½Π° Π½ΠΎΠ²ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅). Π‘Π²ΠΎΠΉΡΡΠ²Π°, ΠΏΠΎ ΡΡΡΠΈ — Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Ρ Π°Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π½ΠΎΠ²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ, Π° Π»ΠΈΡΡ ΡΠΊΡΡΠ²Π°ΡΡ Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ°. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ ΡΠ·ΡΠΊΠΎΠ²Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π½ΠΎΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² C#ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ΄ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, ΡΠΎ Π΅ΡΡΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ°, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π΄Π»Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. Π Delphi ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈΡΡ ΠΈΠΌΠ΅Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΠΏΠΎΠ»Ρ. Π‘Π°ΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΊ ΡΠΈΠ³Π½Π°ΡΡΡΠ΅.
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΏΡΡΡΠΌ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ Π² ΡΠ·ΡΠΊ ΠΏΡΠ°Π²ΠΈΠ», ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΈΠΏΠ° «ΠΊΠ»Π°ΡΡ» ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ ΠΎΠ±ΡΠ΅ΠΊΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°-ΠΏΠΎΡΠΎΠΌΠΊΠ° Π΅Ρ ΠΊΠ»Π°ΡΡΠ°.
1.4 ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ
ΠΠ±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ — ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π½Π°Π±ΠΎΡ Π·Π½Π°ΡΠΈΠΌΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΈΡΠΊΠ»ΡΡΠ°Ρ ΠΈΠ· ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ Π½Π΅Π·Π½Π°ΡΠΈΠΌΡΠ΅. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ — ΡΡΠΎ Π½Π°Π±ΠΎΡ Π²ΡΠ΅Ρ ΡΠ°ΠΊΠΈΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ.
ΠΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ — ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Ρ Π½ΠΈΠΌΠΈ, Π² ΠΊΠ»Π°ΡΡΠ΅ ΠΈ ΡΠΊΡΡΡΡ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ — ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Ρ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°ΠΈΠΌΡΡΠ²ΡΡΡΠ΅ΠΉΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ. ΠΠ»Π°ΡΡ, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌ, ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΈΠ»ΠΈ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠΎΠΌ. ΠΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ — ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ, Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ.
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ — ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Π±Π΅Π· ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΈΠΏΠ΅ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΠΎΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ (ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΡΠ½) ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠΎΠ΄Π΅Π»ΡΡ Π΅ΡΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ (ΠΎΠ±ΡΠ΅ΠΊΡΠ°). Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ½ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠ²Π»ΡΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° ΡΠ΅ΡΡΠ΅ΠΆΠΎΠΌ. ΠΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ — ΡΡΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΈ ΡΡΠΎΠΌ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΊΠ»Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ . ΠΠ±ΡΡΠ½ΠΎ ΠΊΠ»Π°ΡΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ.
ΠΠ±ΡΠ΅ΠΊΡ Π‘ΡΡΠ½ΠΎΡΡΡ Π² Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΠΎΡΠ²Π»ΡΡΡΠ°ΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅).
ΠΡΠΎΡΠΎΡΠΈΠΏ — ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ-ΠΎΠ±ΡΠ°Π·Π΅Ρ, ΠΏΠΎ ΠΎΠ±ΡΠ°Π·Ρ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠ±ΡΠ΅ΠΊΡΡ-ΠΊΠΎΠΏΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΠ²ΡΠ·Ρ Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΡΠ»Π΅Π΄ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ΅; ΡΡΠ° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°.
2. ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ³ΡΠ° «Π¨Π°ΡΠΊΠΈ»
2.1 ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠ°Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΡΠ±ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ³ΡΡ. ΠΠ³ΡΠ° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΈΠ³ΡΡ Π΄Π²ΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ.
2.2 ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° Π² ΡΡΠ΅Π΄Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Borland Delphi 7.0.
Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: Pascal
ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
— Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 500 ΠΊΠ± ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π½Π° ΠΆΡΡΡΠΊΠΎΠΌ Π΄ΠΈΡΠΊΠ΅;
— Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 4 ΠΠ± ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ;
— ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° — Windows XP/2000/Vista;
— ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°;
— ΠΌΡΡΡ.
ΠΠΎΡΡΠ΄ΠΎΠΊ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅:
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ (ΡΠ΄Π΅Π»Π°ΡΡ Π½Π° Π½ΡΠΌ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΠ΅Π»ΡΠΎΠΊ Π»Π΅Π²ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠ΅ΠΉ ΠΌΡΡΠΈ) ΡΠ°ΠΉΠ» DCheckers.exe.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π² ΡΠΈΡΡΠ΅ΠΌΡ Π½Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ, ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π°Π»Π΅Π½Π° Ρ ΠΆΡΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
2.3 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ΅ΡΡΡΠ΅Ρ unit (Main, Draughts, About, VChessBoard) ΠΈ Π΄Π²ΡΡ ΡΠΎΡΠΌ (fmCheckers, fmAbout).
unit VChessBoard — Π΄Π°Π½Π½ΡΠΉ ΡΠ°Π·Π΄Π΅Π» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΎΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ»Ρ (ΠΏΡΠΎΡΠΈΡΠΎΠ²ΠΊΠ° ΠΊΠ»Π΅ΡΠΎΠΊ ΠΈ ΡΠ°ΡΠ΅ΠΊ).
unit About — Π΄Π°Π½Π½ΡΠΉ ΡΠ°Π·Π΄Π΅Π» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈΠ³ΡΡ;
unit Draughts — Π΄Π°Π½Π½ΡΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΠΎΠ²Π΅ΡΡΠ°Π΅ΠΌΡΠ΅ Ρ ΡΠ°ΡΠΊΠ°ΠΌΠΈ (ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Ρ ΠΎΠ΄Ρ, Π·Π°ΠΏΠΈΡΡ Ρ ΠΎΠ΄ΠΎΠ², ΡΡΠ±ΠΊΠ°, Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΡΡΡΠ±Π»Π΅Π½Π½ΡΡ ΡΠ°ΡΠ΅ΠΊ)
unit Main — Π΄Π°Π½Π½ΡΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΈΠ³ΡΡ. ΠΡΠ»ΠΈ ΡΠ°ΡΠΊΠ° Π²ΡΠ±ΡΠ°Π½Π°, ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ Ρ ΠΎΠ΄ΠΎΠ², Π΅ΡΠ»ΠΈ ΡΡΠ±ΠΊΠΈ Π½Π΅Ρ ΠΈ ΠΊΠ»Π΅ΡΠΊΠ° ΠΏΡΡΡΠ°Ρ, ΡΠΎ Ρ ΠΎΠ΄ ΡΠ΄Π΅Π»Π°Π½ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΈΠ³ΡΠΎΠΊΠ°, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠ±ΠΊΠΈ, ΡΠΎ ΡΡΠ±ΠΈΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΡ. ΠΡΡΠΈΡΠΎΠ²ΠΊΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Ρ ΠΎΠ΄ΠΎΠ² Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ±ΠΊΠΈ. ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π»ΠΈ ΡΡΠ±ΠΊΠ° Π² Π΄Π°Π½Π½ΡΡ ΠΊΠ»Π΅ΡΠΊΡ, ΡΡΠ±ΠΊΠ° Π²Π΅ΡΠ½Π°, Π΄Π°Π»Π΅Π΅ ΡΡΠ±ΠΈΠΌ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΡΠ±Π»Π΅Π½Π½ΡΡ ΡΠ°ΡΠΊΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΊΠ°ΠΊΠΈΠ²Π°Π΅ΠΌ. ΠΠ°Π»Π΅Π΅ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π»ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ±ΠΊΠΈ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ΅ΠΆΠΈΠΌ ΡΡΠ±ΠΊΠΈ, Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΠΌ ΡΡΠ±ΠΊΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΈΠ³ΡΠΎΠΊΠ°. ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΠΏΠΎΠ±Π΅Π΄Ρ ΠΏΠΎ ΡΡΡΠ±Π°ΠΌ ΠΈ ΠΏΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌ. ΠΠ°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΠΌ ΠΈΠ³ΡΡ, ΠΈ Π²ΡΠΏΠ»ΡΠ²Π°Π΅Ρ ΠΎΠΊΠ½ΠΎ: ΠΏΠΎΠ±Π΅Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±Π΅Π»ΡΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ½ΡΡ . Π’Π°ΠΊ ΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΠ΅ΠΉ Ρ ΠΎΠ΄ ΠΈ Π²ΡΠ΅ΠΌΡ ΠΈΠ³ΡΡ.
2.4 Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ Π²ΠΈΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΎΠΊΠ½ΠΎ (ΡΠΈΡ. 1):
Π ΠΈΡΡΠ½ΠΎΠΊ 1 — ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠΎΡΠΌΠ° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠΎΡΠΌΠ° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π² ΠΌΠ΅Π½Ρ ΠΈΠ³ΡΠ° ΠΈ Π½Π°ΡΠ°ΡΡ ΠΈΠ³ΡΡ (ΡΠΈΡ. 2).
Π ΠΈΡΡΠ½ΠΎΠΊ 2 — Π Π°Π·Π΄Π΅Π» ΠΌΠ΅Π½Ρ, Π½Π°ΡΠ°ΡΡ ΠΈΠ³ΡΡ.
ΠΠ°ΠΆΠ°Π² Π½Π° Π½Π°ΡΠ°Π² ΠΈΠ³ΡΡ, Π½Π° ΠΈΠ³ΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΏΠΎΡΠ²ΡΡΡΡ ΡΠ°ΡΠΊΠΈ. ΠΠ΅Π»ΡΠ΅ ΠΈ ΡΠ΅ΡΠ½ΡΠ΅. Π₯ΠΎΠ΄ Π½Π°ΡΠΈΠ½Π°ΡΡ Π±Π΅Π»ΡΠ΅. Π‘ Π·Π°ΠΏΡΡΠΊΠΎΠΌ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΎΡΡΡΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ³ΡΡ (ΡΠΈΡ. 3)
Π ΠΈΡΡΠ½ΠΎΠΊ 3 — ΠΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠ΅ΠΊ. ΠΡΠ΅ΠΌΡ ΠΈΠ³ΡΡ.
ΠΠΎΠ³Π΄Π° ΠΌΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ°ΡΠΊΡ, ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Ρ ΠΎΠ΄Ρ (ΡΠΈΡ. 4) ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠ±ΠΊΠΈ (ΡΠΈΡ. 5).
ΠΡΠΎΡΡΡΠ΅ ΡΠ°ΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ Π½Π° ΠΎΠ΄Π½Ρ ΠΊΠ»Π΅ΡΠΊΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π½Π΅ Π·Π°Π½ΡΡΠ°. ΠΡΠ»ΠΈ ΠΊΠ»Π΅ΡΠΊΠ° Π·Π°Π½ΡΡΠ° ΡΠ°ΡΠΊΠΎΠΉ ΡΠΎΠΏΠ΅ΡΠ½ΠΈΠΊΠ° ΠΈ Π·Π° ΡΡΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΎΠΉ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅, ΡΠΎΠ³Π΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ Π±ΠΎΠΉ — ΡΠ°ΡΠΊΠ° Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ «ΠΏΠ΅ΡΠ΅ΡΠΊΠ°ΠΊΠΈΠ²Π°Π΅Ρ» ΡΠ΅ΡΠ΅Π· ΡΠ°ΡΠΊΡ ΡΠΎΠΏΠ΅ΡΠ½ΠΈΠΊΠ° ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Ρ Π΄ΠΎΡΠΊΠΈ. ΠΠ° ΠΎΠ΄ΠΈΠ½ Π±ΠΎΠΉ ΠΏΡΠΎΡΡΠ°Ρ ΡΠ°ΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ±ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠ΅ΠΊ ΡΠΎΠΏΠ΅ΡΠ½ΠΈΠΊΠ°.
Π ΠΈΡΡΠ½ΠΎΠΊ 4 — ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Ρ ΠΎΠ΄Ρ Π ΠΈΡΡΠ½ΠΎΠΊ 5 — ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠ±ΠΊΠΈ
ΠΡΠΈ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ ΡΠ°ΡΠΊΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΄Π°ΠΌΠΊΠΎΠΉ (ΡΠΈΡ. 6).
Π ΠΈΡΡΠ½ΠΎΠΊ 6 — ΠΠ°ΠΌΠΊΠ° ΠΠ°ΠΌΠΊΠΈ ΠΌΠΎΠ³ΡΡ Ρ ΠΎΠ΄ΠΈΡΡ (ΡΠΈΡ. 7) ΠΈΠ»ΠΈ ΡΠΎΠ²Π΅ΡΡΠ°ΡΡ Π±ΠΎΠΉ ΠΏΠΎ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ Π² Π»ΡΠ±ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ (ΡΠΈΡ. 8)
Π ΠΈΡΡΠ½ΠΎΠΊ 7 — ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Ρ ΠΎΠ΄Ρ Π΄Π°ΠΌΠΊΠΈ Π ΠΈΡΡΠ½ΠΎΠΊ 8 — ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠ±ΠΊΠΈ Π΄Π°ΠΌΠΊΠΎΠΉ ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΊΠ°ΠΊΠΎΠΉ Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΈΠ³ΡΠΎΠΊΠΎΠ² Π²ΡΠΈΠ³ΡΡΠ²Π°Π΅Ρ Π²ΡΠΏΠ»ΡΠ²Π°Π΅Ρ ΠΎΠΊΠ½ΠΎ: ΠΠ³ΡΠ° Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π° (ΡΠΈΡ. 9) ΠΈ ΠΊΠ°ΠΊΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ±Π΅Π΄ΠΈΠ»Π° (ΡΠΈΡ. 10)
Π ΠΈΡΡΠ½ΠΎΠΊ 9 — ΠΠΊΠ½ΠΎ: ΠΠ³ΡΠ° Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π° Π ΠΈΡΡΠ½ΠΎΠΊ 10 — ΠΠΊΠ½ΠΎ, ΠΊΠ°ΠΊΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ±Π΅Π΄ΠΈΠ»Π° ΠΠ°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡ «Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅», ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ²ΠΈΠ΄ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈΠ³ΡΡ (ΡΠΈΡ. 11).
Π ΠΈΡΡΠ½ΠΎΠΊ 11 — Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π§ΡΠΎΠ±Ρ Π²ΡΠΉΡΠΈ ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΌΠ΅Π½Ρ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°ΠΉΠ» ΠΈ Π½Π°ΠΆΠ°ΡΡ Π½Π° Π²ΡΡ ΠΎΠ΄ (ΡΠΈΡ. 7).
Π ΠΈΡΡΠ½ΠΎΠΊ 7 — ΠΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
2.6 ΠΠ½ΡΡΡΡΠΊΡΠΈΡ
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ ΠΈΠ³ΡΠ° ΠΈ Π½Π°ΡΠ°ΡΡ ΠΈΠ³ΡΡ. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΠΠ°ΠΌΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π½Π΅Ρ ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Ρ ΡΠ°ΡΠΊΠ°ΠΌΠΈ. ΠΠ»ΠΈΠΊΠ½ΡΠ² ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΠΏΠΎ ΡΠ°ΡΠΊΠ΅, ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Ρ ΠΎΠ΄Ρ, ΠΊΠ»ΠΈΠΊΠ½ΠΈΡΠ΅ Π½Π° ΡΡ ΠΊΠ»Π΅ΡΠΊΡ, ΠΊΡΠ΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ½ΡΡΡ ΡΠ°ΡΠΊΡ. ΠΡ ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ½Π΅ΡΠ΅ ΡΠ°ΡΠΊΡ Π½Π° Π΄Π°Π½Π½ΡΡ ΠΊΠ»Π΅ΡΠΊΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ Ρ ΠΎΠ΄ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅Ρ ΠΊ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊΡ. ΠΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ° ΡΠ½ΠΈΡΡΠΎΠΆΠΈΡΡ ΠΈΠ»ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΠ°ΡΠ΅ΠΊ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊΠ°.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΠ°ΠΌΠΊΠ°Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ»ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π΅ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ³ΡΡ «Π¨Π°ΡΠΊΠΈ». Π Ρ ΠΎΠ΄Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ»Π° ΠΎΡΠ²ΠΎΠ΅Π½Π° ΠΈ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΠ²Π»Π°Π΄Π΅ΡΡ ΠΈΡΠΊΡΡΡΡΠ²ΠΎΠΌ ΠΈΠ³ΡΡ Π² «Π¨Π°ΡΠΊΠΈ», Π° ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ°Π·Π²ΠΈΡΡ ΡΠ²ΠΎΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΌΡΡΠ»Π΅Π½ΠΈΠ΅.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ Π² ΡΡΠ΅Π΄Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Borland Delphi 7.0.
1) ΠΠ°Π»ΠΈΡΠ΅Π΅Π² Π. Π. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΡΠ΅Π΄Π΅ Delphi 2005. Π‘Π°ΠΌΠΎΡΡΠΈΡΠ΅Π»Ρ. ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ «ΠΠΈΠ°Π»Π΅ΠΊΡΠΈΠΊΠ°», 2006.
2) ΠΠΎΠ±ΡΠΎΠ²ΡΠΊΠΈΠΉ Π‘. Π. Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Delphi. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Π±ΠΈΠ·Π½Π΅ΡΠ°. Π£ΡΠ΅Π±Π½ΡΠΉ ΠΊΡΡΡ. ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ «ΠΠΈΡΠ΅Ρ», 2006.
3) ΠΠΎΡΠΎΠ² Π. Π. Π§ΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎΠ΅ ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, 2000
4) Π€Π°ΡΠΎΠ½ΠΎΠ² Π. Π. Delphi. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. Π£ΡΠ΅Π±Π½ΠΈΠΊ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ². ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ «ΠΠΈΡΠ΅Ρ», 2006.
5) Π¦Π²Π΅ΡΠΊΠΎΠ²Π° Π. Π. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ° ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ «ΠΠΊΡΠΌΠΎ», 2008.
6) Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ NIIT. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ C#. Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅.: ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ Ρ Π°Π½Π³Π». — Π.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π΄ΠΎΠΌ «ΠΠΈΠ»ΡΡΠΌΡ», 2002. — 528 Ρ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, Menus,
Draughts, VChessBoard;
type
TfmCheckers = class (TForm)
Timer1: TTimer;
pnRight: TPanel;
MainMenu1: TMainMenu;
miFile: TMenuItem;
miGame: TMenuItem;
miHelp: TMenuItem;
miAbout: TMenuItem;
miExit: TMenuItem;
miStartLocalGame: TMenuItem;
pnChessBoard: TPanel;
lbedBlackName: TLabeledEdit;
lbedWhiteName: TLabeledEdit;
Label1: TLabel;
Label2: TLabel;
stCurrentPlayer: TStaticText;
Label3: TLabel;
stTimer: TStaticText;
miCancelGame: TMenuItem;
procedure miExitClick (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure FormResize (Sender: TObject);
procedure miStartLocalGameClick (Sender: TObject);
procedure Timer1Timer (Sender: TObject);
procedure miCancelGameClick (Sender: TObject);
procedure miAboutClick (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
vcbChess:TVisualChessBoard;
PlayerSide, CurrentPlayer: Integer;
IsDraughtChosen: Boolean;
DraughtPosition:TCellPosition;
StrikeMode: Boolean;
PlayTime: Integer;
StartTime:TDateTime;
LocalGame: Boolean;
procedure vcbChessMouseMove (Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure vcbChessMouseDown (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure vcbChessMouseUp (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Procedure TrySelectNewDraught (x, y: Integer);
Procedure TryMakeStrike (x, y: Integer);
Procedure SwitchCurrentPlayer;
Function CheckForWin: Integer;
end;
var
fmCheckers: TfmCheckers;
implementation
uses About;
{$R *.dfm}
procedure TfmCheckers. miExitClick (Sender: TObject);
begin
Close;
end;
procedure TfmCheckers. FormCreate (Sender: TObject);
begin
vcbChess:=TVisualChessBoard. Create (pnChessBoard);
vcbChess. Parent:=pnChessBoard;
vcbChess. Left:=8;
vcbChess. Top:=8;
vcbChess. Width:=1200;
vcbChess. Height:=1200;
vcbChess. OnMouseMove:=vcbChessMouseMove;
vcbChess. OnMouseDown:=vcbChessMouseDown;
vcbChess. OnMouseUp:=vcbChessMouseUp;
vcbChess. Refresh;
end;
procedure TfmCheckers. FormResize (Sender: TObject);
Var
CellSize: Integer;
begin
If pnChessBoard. Width
CellSize:=(pnChessBoard. Width-16) div 8
Else
CellSize:=(pnChessBoard. Height-16) div 8;
vcbChess. Left:=8;
vcbChess. Top:=8;
vcbChess. Width:=CellSize*8;
vcbChess. Height:=CellSize*8;
vcbChess. Refresh;
If IsDraughtChosen Then
TrySelectNewDraught (DraughtPosition.X, DraughtPosition. Y);
end;
procedure TfmCheckers. vcbChessMouseMove (Sender: TObject; Shift: TShiftState;
X, Y: Integer);
Var
xP, yP: Integer;
begin
vcbChess. Cursor:=crDefault;
vcbChess. GetCellNumberByCoord (X, Y, xP, yP);
If vcbChess. Board. GetDraught (xP, yP)<>nil Then
Begin
If vcbChess. Board. GetDraught (xP, yP).Side=PlayerSide Then
vcbChess. Cursor:=crHandPoint
End;
end;
procedure TfmCheckers. vcbChessMouseDown (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Var
xP, yP: Integer;
begin
If StrikeMode Then Exit;
vcbChess. GetCellNumberByCoord (X, Y, xP, yP);
If Not (IsDraughtChosen) Then // ΠΡΠ»ΠΈ Π΅ΡΠ΅ Π½Π΅Ρ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΠ°ΡΠΊΠΈ
Begin
TrySelectNewDraught (xP, yP);
End
Else Begin // ΠΡΠ»ΠΈ ΡΠΆΠ΅ Π΅ΡΡΡ Π²ΡΠ±ΡΠ°Π½Π½Π°Ρ ΡΠ°ΡΠΊΠ°
If vcbChess. Board. GetDraught (xP, yP)=nil Then
Begin // ΠΡΠ»ΠΈ ΠΊΠ»Π΅ΡΠΊΠ° ΠΏΡΡΡΠ°Ρ, ΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΠΊΠ°ΠΊ ΠΎΡΠΏΡΡΠΊΠ°Π½ΠΈΠ΅ ΠΌΡΡΠΈ
vcbChessMouseUp (Sender, Button, Shift, X, Y);
End
Else Begin // ΠΡΠ»ΠΈ ΡΠ°ΠΌ ΡΡΠΎΠΈΡ Π½Π°ΡΠ° ΡΠ°ΡΠΊΠ°, ΡΠΎ ΡΠ±ΡΠΎΡΠΈΠΌ Π²ΡΠ±ΠΎΡ ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΡΡΠ΅ΠΌ
If vcbChess. Board. GetDraught (xP, yP).Side=PlayerSide Then
Begin
vcbChess. Refresh;
IsDraughtChosen:=False;
vcbChessMouseDown (Sender, Button, Shift, X, Y);
End;
End;
End;
end;
procedure TfmCheckers. vcbChessMouseUp (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Var
xP, yP: Integer;
Moves, Strikes, Strickens: TList;
begin
vcbChess. GetCellNumberByCoord (X, Y, xP, yP);
If IsDraughtChosen Then // ΠΡΠ»ΠΈ Π΅ΡΡΡ Π²ΡΠ±ΡΠ°Π½Π½Π°Ρ ΡΠ°ΡΠΊΠ°
Begin
// ΠΡΠΎΠ²Π΅ΡΠΈΠΌ: ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΡΠ°Π³Π½ΡΡΡ ΡΡΠ΄Π°
If vcbChess. Board. GetDraught (xP, yP)<>nil Then Exit;
// ΠΠ»Π΅ΡΠΊΠ° ΠΏΡΡΡΠ°Ρ
// ΠΡΠΎΠ²Π΅ΡΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ Ρ ΠΎΠ΄Π° Π² ΡΡΡ ΠΊΠ»Π΅ΡΠΊΡ
vcbChess. Board. FindMoves (DraughtPosition.X, DraughtPosition. Y, Moves, Strikes, Strickens);
If Strikes. Count=0 Then // ΠΠ΅Ρ ΡΡΠ±ΠΊΠΈ — ΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΠ΄ΠΈΡΡ
Begin
If CheckPosition (xP, yP, Moves)>=0 Then // Π₯ΠΎΠ΄ Π²Π΅ΡΠ΅Π½!
Begin
vcbChess. Board. MoveDraught (DraughtPosition.X, DraughtPosition. Y, xP, yP);
IsDraughtChosen:=False;
vcbChess. Refresh;
vcbChessMouseMove (Sender, Shift, X, Y);
SwitchCurrentPlayer; // Π₯ΠΎΠ΄ ΡΠ΄Π΅Π»Π°Π½ — ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅ΠΌ ΠΈΠ³ΡΠΎΠΊΠ°
CheckForWin;
End;
End
Else Begin // ΠΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠ±ΠΊΠΈ — ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ!
TryMakeStrike (xP, yP);
End;
ClearMoves (Moves);
ClearMoves (Strikes);
ClearMoves (Strickens);
End
Else Begin // Π¨Π°ΡΠΊΠ° Π½Π΅ Π΅ΡΠ΅ Π²ΡΠ±ΡΠ°Π½Π°
End;
end;
Procedure TfmCheckers. TrySelectNewDraught (x, y: Integer);
Var
Moves, Strikes, Strickens: TList;
StrikingDraughts:TList;
Begin
If vcbChess. Board. GetDraught (x, y)=nil Then Exit;
If vcbChess. Board. GetDraught (x, y).Side<>PlayerSide Then Exit;
// ΠΡΠΎΠ²Π΅ΡΠΈΠΌ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ±ΠΊΠΈ
StrikingDraughts:=vcbChess. Board. FindStrikingDraughts (PlayerSide);
If StrikingDraughts. Count>0 Then
Begin
If CheckPosition (x, y, StrikingDraughts)<0 Then
Begin
ClearMoves (StrikingDraughts);
Exit;
End;
End;
ClearMoves (StrikingDraughts);
DraughtPosition.X:=x;
DraughtPosition.Y:=y;
IsDraughtChosen:=True;
// ΠΡΡΠΈΡΡΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Ρ ΠΎΠ΄Ρ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΎΠ±ΡΠ·Π°Π»ΠΎΠ²ΠΊΠΈ ΡΡΠ±ΠΊΠΈ
vcbChess. Board. FindMoves (x, y, Moves, Strikes, Strickens);
If Strikes. Count=0 Then
vcbChess. DrawMoves (Moves, nil)
Else
vcbChess. DrawMoves (nil, Strikes);
ClearMoves (Moves);
ClearMoves (Strikes);
ClearMoves (Strickens);
End;
Procedure TfmCheckers. TryMakeStrike (x, y: Integer);
Var
Moves, Strikes, Strickens: TList;
CP:PCellPosition;
Begin
If Not (IsDraughtChosen) Then Exit;
vcbChess. Board. FindMoves (DraughtPosition.X, DraughtPosition. Y, Moves, Strikes, Strickens);
// ΠΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π»ΠΈ ΡΡΠ±ΠΊΠ° Π² Π΄Π°Π½Π½ΡΡ ΠΊΠ»Π΅ΡΠΊΡ
If CheckPosition (x, y, Strikes)>=0 Then // Π ΡΠ±ΠΊΠ° Π²Π΅ΡΠ½Π°!
Begin // ΡΡΠ±ΠΈΠΌ
// ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΡΡΡΠ±Π»Π΅Π½Π½ΡΡ ΡΠ°ΡΠΊΡ
CP:=Strickens. Items [CheckPosition (x, y, Strikes)];
vcbChess. Board. DeleteDraught (CP^.X, CP^.Y);
// ΠΠ΅ΡΠ΅ΡΠΊΠ°ΠΊΠΈΠ²Π°Π΅ΠΌ
vcbChess. Board. MoveDraught (DraughtPosition.X, DraughtPosition. Y, x, y);
DraughtPosition.X:=x; DraughtPosition. Y:=y;
ClearMoves (Moves);
ClearMoves (Strikes);
ClearMoves (Strickens);
// ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ: Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ±ΠΊΠΈ
vcbChess. Board. FindMoves (DraughtPosition.X, DraughtPosition. Y, Moves, Strikes, Strickens);
If Strikes. Count>0 Then
Begin
StrikeMode:=True; // Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΡΠ΅ΠΆΠΈΠΌ ΡΡΠ±ΠΊΠΈ
End
Else Begin
StrikeMode:=False;
SwitchCurrentPlayer; // ΠΠ°ΠΊΠΎΠ½ΡΠ΅Π½Π° ΡΡΠ±ΠΊΠ° — ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΠΌ ΠΈΠ³ΡΠΎΠΊΠ°
End;
ClearMoves (Moves);
ClearMoves (Strikes);
ClearMoves (Strickens);
vcbChess. Refresh;
End;
If StrikeMode Then
Begin
IsDraughtChosen:=False;
TrySelectNewDraught (DraughtPosition.X, DraughtPosition. Y);
End;
CheckForWin;
End;
Procedure TfmCheckers. SwitchCurrentPlayer;
Begin
If CurrentPlayer=sdWhite Then CurrentPlayer:=sdBlack Else CurrentPlayer:=sdWhite;
If LocalGame Then PlayerSide:=CurrentPlayer;
If CurrentPlayer=sdWhite Then stCurrentPlayer. Caption:='ΠΠ΅Π»ΡΠ΅' Else stCurrentPlayer. Caption:='Π§Π΅ΡΠ½ΡΠ΅';
If PlayerSide=CurrentPlayer Then
Begin
pnChessBoard. Enabled:=True;
End
Else Begin
pnChessBoard. Enabled:=False;
End;
End;
Function TfmCheckers. CheckForWin: Integer;
Begin
Result:=-1;
// ΠΡΠΎΠ²Π΅ΡΠΈΠΌ ΠΏΠΎΠ±Π΅Π΄Ρ ΠΏΠΎ ΡΡΡΠ±Π°ΠΌ
If vcbChess. Board. CountDraughts (sdWhite)=0 Then
Begin
Result:=sdBlack;
End;
If vcbChess. Board. CountDraughts (sdBlack)=0 Then
Begin
Result:=sdWhite;
End;
// ΠΡΠΎΠ²Π΅ΡΠΈΠΌ ΠΏΠΎΠ±Π΅Π΄Ρ ΠΏΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌ
If Not (vcbChess. Board. AbleToMove (CurrentPlayer)) Then
If CurrentPlayer=sdWhite Then Result:=sdBlack Else Result:=sdWhite;
If Result<0 Then Exit;
//Game Over!
miCancelGameClick (Self);
Case Result Of
sdWhite: Application. MessageBox ('ΠΠΎΠ±Π΅Π΄ΠΈΠ»Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° «ΠΠ΅Π»ΡΡ » ', 'ΠΠΎΠ±Π΅Π΄ΠΈΠ»ΠΈ ΠΠ΅Π»ΡΠ΅!', MB_OK+MB_ICONINFORMATION);
sdBlack: Application. MessageBox ('ΠΠΎΠ±Π΅Π΄ΠΈΠ»Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° «Π§Π΅ΡΠ½ΡΡ » ', 'ΠΠΎΠ±Π΅Π΄ΠΈΠ»ΠΈ Π§Π΅ΡΠ½ΡΠ΅!', MB_OK+MB_ICONINFORMATION);
End;
End;
procedure TfmCheckers. Timer1Timer (Sender: TObject);
begin
// Inc (PlayTime);
// stTimer. Caption:=Format (' % d:%.2d:%.2d', [PlayTime div 3600, (PlayTime mod 3600) div 60, (PlayTime mod 3600) mod 60]);
stTimer. Caption:=TimeToStr (Now-StartTime);
end;
procedure TfmCheckers. miStartLocalGameClick (Sender: TObject);
begin
LocalGame:=True;
lbedWhiteName. ReadOnly:=True;
lbedBlackName. ReadOnly:=True;
// PlayTime:=0;
StartTime:=Now;
PlayerSide:=sdWhite;
CurrentPlayer:=sdBlack;
IsDraughtChosen:=False;
StrikeMode:=False;
vcbChess. Board. Respawn;
vcbChess. Refresh;
pnChessBoard. Enabled:=True;
Timer1. Enabled:=True;
SwitchCurrentPlayer;
end;
procedure TfmCheckers. miCancelGameClick (Sender: TObject);
begin
Timer1. Enabled:=False;
pnChessBoard. Enabled:=False;
lbedWhiteName. ReadOnly:=False;
lbedBlackName. ReadOnly:=False;
Application. MessageBox ('ΠΠ³ΡΠ° Π·ΠΊΠΎΠ½ΡΠ΅Π½Π°', 'ΠΠ³ΡΠ° Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π°', MB_OK+MB_ICONINFORMATION);
end;
procedure TfmCheckers. miAboutClick (Sender: TObject);
begin
fmAbout. ShowModal;
end;
end.
Unit Draughts;
interface
Uses
Classes;
Type
TMove=Record
dX, dY: Integer;
End;
Const
ctWhite=0;
ctBlack=1;
ctNone=255;
sdWhite=0;
sdBlack=1;
kdSimple=0;
kdKing=1;
MoveNW=1; {}
MoveNE=2; {}
MoveSW=3; {}
MoveSE=4; {}
DraughtMoves: Array [1.4] Of TMove=((dX: — 1; dY:1), (dX:1; dY:1), (dX: — 1; dY: — 1), (dX:1; dY: — 1));
Type
TPossibleMoves=Set Of MoveNW. MoveSE;
PCellPosition=^TCellPosition;
TCellPosition=Record
X, Y: Integer;
End;
TDraught=Class (TObject)
Private
_Side: Integer; {Π‘ΡΠΎΡΠΎΠ½Π°: ΠΠ΅Π»Π°Ρ / Π§Π΅ΡΠ½Π°Ρ}
_Kind: Integer; {Π’ΠΈΠΏ: ΠΡΠΎΡΡΠ°Ρ / ΠΠ°ΠΌΠΊΠ°}
PossibleMoves:TPossibleMoves; {ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Ρ ΠΎΠ΄Ρ}
Procedure SetSide (Value: Integer);
Procedure SetKind (Value: Integer);
Public
Constructor Create (sd: Integer);
Destructor Destroy; Override;
Property Side: Integer read _Side write SetSide;
Property Kind: Integer read _Kind write SetKind;
End;
TBoardCell=Record
CellType: Integer;
Draught:TDraught;
End;
TChessBoard=Class (TObject)
Private
Cells: Array [0.9, 0.9] Of TBoardCell;
Public
Constructor Create;
Destructor Destroy; Override;
Function AddDraught (x, y: Integer; Side: Integer; Kind: Integer=kdSimple):TDraught;
Procedure DeleteDraught (x, y: Integer);
Function GetDraught (x, y: Integer):TDraught;
Function SetDraught (x, y: Integer; Const Draught: TDraught):Boolean;
Procedure Clear;
Procedure Respawn;
Function MoveDraught (FromX, FromY, ToX, ToY: Integer):Boolean;
Procedure FindMoves (x, y: Integer; Var Moves, Strikes, Strickens: TList);
Function FindStrikingDraughts (Side: Integer):TList;
Function CountDraughts (Side: Integer):Integer;
Function AbleToMove (Side: Integer):Boolean;
End;
Procedure ClearMoves (Var Moves: TList);
Function CheckPosition (x, y: Integer; Const Positions: TList):Integer;
implementation
Procedure ClearMoves (Var Moves: TList);
Var
i: Integer;
CP:PCellPosition;
Begin
If Moves=nil Then Exit;
For i:=0 To Moves. Count-1 Do
Begin
CP:=Moves. Items[i];
Dispose (CP);
End;
Moves. Free;
Moves:=nil;
End;
Function CheckPosition (x, y: Integer; Const Positions: TList):Integer;
Var
i: Integer;
CP:PCellPosition;
Begin
Result:=-1;
If Positions=nil Then Exit;
For i:=0 To Positions. Count-1 Do
Begin
CP:=Positions. Items[i];
If ((CP^.X=x) And (CP^.Y=y)) Then
Begin
Result:=i;
Exit;
End;
End;
End;
Constructor TDraught. Create (sd: Integer);
Begin
Inherited Create;
Side:=sd;
Kind:=kdSimple;
End;
Destructor TDraught. Destroy;
Begin
Inherited Destroy;
End;
Procedure TDraught. SetSide (Value: Integer);
Begin
If Value=sdWhite Then
Begin
_Side:=sdWhite;
PossibleMoves:=[MoveNW, MoveNE]
End
Else Begin
_Side:=sdBlack;
PossibleMoves:=[MoveSW, MoveSE];
End;
If Kind=kdKing Then PossibleMoves:=[MoveNW, MoveNE, MoveSW, MoveSE];
End;
Procedure TDraught. SetKind (Value: Integer);
Begin
If Value=kdSimple Then
_Kind:=kdSimple
Else
_Kind:=kdKing;
SetSide (_Side);
End;
Constructor TChessBoard. Create;
Var
x, y: Integer;
Begin
Inherited Create;
For y:=0 To 9 Do
Begin
For x:=0 To 9 Do
Begin
If ((x=0) Or (y=0) Or (x=9) Or (y=9)) Then
Cells [y, x]. CellType:=ctNone
Else
If ((Odd (x) And Odd (y)) Or (Not (Odd (x)) And Not (Odd (y)))) Then
Cells [y, x]. CellType:=ctBlack
Else
Cells [y, x]. CellType:=ctWhite;
Cells [y, x]. Draught:=nil;
End;
End;
End;
Destructor TChessBoard. Destroy;
Begin
Clear;
Inherited Destroy;
End;
Function TChessBoard. AddDraught (x, y: Integer; Side: Integer; Kind: Integer=kdSimple):TDraught;
Begin
Result:=nil;
If ((Cells [y, x]. CellType=ctNone) Or (Cells [y, x]. Draught<>nil)) Then Exit;
Result:=TDraught. Create (Side);
Result. Kind:=Kind;
Cells [y, x]. Draught:=Result;
End;
Procedure TChessBoard. DeleteDraught (x, y: Integer);
Begin
If Cells [y, x]. Draught<>nil Then Cells [y, x]. Draught. Free;
Cells [y, x]. Draught:=nil;
End;
Function TChessBoard. GetDraught (x, y: Integer):TDraught;
Begin
Result:=Cells [y, x]. Draught;
End;
Function TChessBoard. SetDraught (x, y: Integer; Const Draught: TDraught):Boolean;
Begin
Result:=True;
Cells [y, x]. Draught:=Draught;
If Draught=nil Then Exit;
If (((Draught. Side=sdWhite) And (y=8)) Or ((Draught. Side=sdBlack) And (y=1))) Then
Draught. Kind:=kdKing;
End;
Procedure TChessBoard. Clear;
Var
x, y: Integer;
Begin
For y:=0 To 9 Do
For x:=0 To 9 Do
DeleteDraught (x, y);
End;
Procedure TChessBoard. Respawn;
Var
x: Integer;
Begin
Clear;
// ΠΠ΅Π»ΡΠ΅
For x:=1 To 8 Do
Begin
If Odd (x) Then
AddDraught (x, 2, sdWhite)
Else Begin
AddDraught (x, 1, sdWhite);
AddDraught (x, 3, sdWhite);
End
End;
// Π§Π΅ΡΠ½ΡΠ΅
For x:=1 To 8 Do
Begin
If Not (Odd (x)) Then
AddDraught (x, 7, sdBlack)
Else Begin
AddDraught (x, 8, sdBlack);
AddDraught (x, 6, sdBlack);
End
End;
End;
Function TChessBoard. MoveDraught (FromX, FromY, ToX, ToY: Integer):Boolean;
Begin
Result:=False;
If ((Cells [FromY, FromX]. CellType=ctNone) Or (Cells [ToY, ToX]. CellType=ctNone)) Then Exit;
If ((GetDraught (FromX, FromY)=nil) Or (GetDraught (ToX, ToY)<>nil)) Then Exit;
SetDraught (ToX, ToY, GetDraught (FromX, FromY));
SetDraught (FromX, FromY, nil);
Result:=True;
End;
Procedure TChessBoard. FindMoves (x, y: Integer; Var Moves, Strikes, Strickens: TList);
Var
i: Integer;
dX, dY, dL: Integer;
P:PCellPosition;
MoveOver: Boolean;
Begin
Moves:=nil;
Strikes:=nil;
Strickens:=nil;
If Cells [y, x]. Draught=nil Then Exit;
Moves:=TList. Create;
Strikes:=TList. Create;
Strickens:=TList. Create;
For i:=1 To 4 Do
Begin
MoveOver:=False;
dX:=DraughtMoves[i]. dX;
dY:=DraughtMoves[i].dY;
dL:=0;
Repeat
Inc (dL);
If Cells [y+dY*dL, x+dX*dL]. CellType<>ctNone Then // ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π²ΡΡΠ°Π²Π°ΡΡ Π½Π° ΡΡΡ ΠΊΠ»Π΅ΡΠΊΡ
Begin
If Cells [y+dY*dL, x+dX*dL]. Draught=nil Then // ΠΡΠ»ΠΈ ΠΊΠ»Π΅ΡΠΊΠ° ΠΏΡΡΡΠ°Ρ, ΡΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΌ Ρ ΠΎΠ΄…
Begin
// …Π·Π°ΠΏΠΈΡΠ΅ΠΌ Ρ ΠΎΠ΄ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΠ°ΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Ρ ΠΎΠ΄ΠΈΡΡ Π² ΡΡΡ ΡΡΠΎΡΠΎΠ½Ρ
If (i In Cells [y, x]. Draught. PossibleMoves) Then
Begin
New (P);
P^.X:=x+dX*dL; P^.Y:=y+dY*dL;
Moves. Add (P);
If Cells [y, x]. Draught. Kind=kdSimple Then MoveOver:=True; // ΠΡΠ»ΠΈ ΡΡΠΎ ΠΏΡΠΎΡΡΠ°Ρ ΡΠ°ΡΠΊΠ°, ΡΠΎ Π·Π°ΠΊΠΎΠ½ΡΠΈΠΌ Ρ ΠΎΠ΄
End
Else // Π¨Π°ΡΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Ρ ΠΎΠ΄ΠΈΡΡ Π² ΡΡΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ — Π·Π°ΠΊΠΎΠ½ΡΠΈΠΌ Ρ ΠΎΠ΄
MoveOver:=True;
End
Else Begin // ΠΡΠ»ΠΈ Π² ΠΊΠ»Π΅ΡΠΊΠ΅ ΡΡΠΎΠΈΡ ΡΠ°ΡΠΊΠ°, ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ Π΅Π΅
If Cells [y+dY*dL, x+dX*dL]. Draught. Side<>Cells [y, x]. Draught. Side Then
Begin // ΠΡΠ»ΠΈ ΡΡΠΎ ΡΡΠΆΠ°Ρ ΡΠ°ΡΠΊΠ°, ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ Π½Π° ΡΡΡΠ±
Inc (dL); // ΠΠ΅ΡΠ΅ΡΠ°Π³Π½Π΅ΠΌ ΡΠ΅ΡΠ΅Π· ΡΠ°ΡΠΊΡ
If ((Cells [y+dY*dL, x+dX*dL]. CellType<>ctNone) And (Cells [y+dY*dL, x+dX*dL]. Draught=nil)) Then // ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π²ΡΡΠ°Π²Π°ΡΡ Π½Π° ΡΡΡ ΠΊΠ»Π΅ΡΠΊΡ
Begin // Π ΡΠ±ΠΊΠ° ΡΠ΄Π°Π»Π°ΡΡ
// ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ ΡΡΡΠ±Π»Π΅Π½Π½ΡΡ ΡΠ°ΡΠΊΡ
New (P);
P^.X:=x+dX*(dL-1); P^.Y:=y+dY*(dL-1);
Strickens. Add (P);
// ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ±ΠΊΡ
New (P);
P^.X:=x+dX*dL; P^.Y:=y+dY*dL;
Strikes. Add (P);
End;
End;
MoveOver:=True;
End;
End
Else // ΠΠΎΡΡΠΈΠ³Π½ΡΡ Π±ΠΎΡΠ΄ΡΡ — Π·Π°Π²Π΅ΡΡΠΈΠΌ Ρ ΠΎΠ΄
MoveOver:=True;
Until MoveOver;
End;
End;
Function TChessBoard. FindStrikingDraughts (Side: Integer):TList;
Var
x, y: Integer;
Moves, Strikes, Strickens: TList;
CP:PCellPosition;
Begin
Result:=TList. Create;
For y:=1 To 8 Do
For x:=1 To 8 Do
If GetDraught (x, y)<>nil Then
If GetDraught (x, y).Side=Side Then
Begin
FindMoves (x, y, Moves, Strikes, Strickens);
If Strikes. Count>0 Then
Begin
New (CP);
CP^.X:=x; CP^.Y:=y;
Result. Add (CP);
End;
ClearMoves (Moves);
ClearMoves (Strikes);
ClearMoves (Strickens);
End;
End;
Function TChessBoard. CountDraughts (Side: Integer):Integer;
Var
x, y: Integer;
Begin
Result:=0;
For y:=1 To 8 Do
For x:=1 To 8 Do
If GetDraught (x, y)<>nil Then
If GetDraught (x, y).Side=Side Then Inc (Result);
End;
Function TChessBoard. AbleToMove (Side: Integer):Boolean;
Var
x, y: Integer;
Moves, Strikes, Strickens: TList;
Begin
Result:=False;
For y:=1 To 8 Do
For x:=1 To 8 Do
If GetDraught (x, y)<>nil Then
If GetDraught (x, y).Side=Side Then
Begin
FindMoves (x, y, Moves, Strikes, Strickens);
If ((Moves. Count>0) Or (Strikes. Count>0)) Then Result:=True;
ClearMoves (Moves);
ClearMoves (Strikes);
ClearMoves (Strickens);
If Result Then Exit;
End;
End;
end.
unit VChessBoard;
interface
Uses
Types, Classes, ExtCtrls,
Draughts;
Type
TVisualChessBoard=Class (TImage)
Private
Procedure DrawDraught (x, y: Integer; Side: Integer; Kind: Integer);
Procedure DrawMove (x, y: Integer);
Procedure DrawStrike (x, y: Integer);
Public
Board:TChessBoard;
Constructor Create (AOwner:TComponent); Override;
Destructor Destroy; Override;
Procedure Repaint; Override;
Function GetCellRectByNumber (x, y: Integer):TRect;
Procedure GetCellNumberByCoord (xCoord, yCoord: Integer; Var x, y: Integer);
Procedure DrawMoves (Const Moves, Strikes: TList);
Procedure DrawMovesByNumber (x, y: Integer);
End;
implementation
Uses
Graphics;
Constructor TVisualChessBoard. Create (AOwner:TComponent);
Begin
Inherited Create (AOwner);
Board:=TChessBoard. Create;
// Repaint;
End;
Destructor TVisualChessBoard. Destroy;
Begin
Board. Free;
Inherited Destroy;
End;
Procedure TVisualChessBoard. Repaint;
Var
x, y: Integer;
Begin
Inherited Repaint;
{ΠΠ°ΡΠΈΡΡΠ΅ΠΌ ΠΊΠ»Π΅ΡΠΊΠΈ}
Canvas. Brush. Style:=bsSolid;
For y:=1 To 8 Do
Begin
For x:=1 To 8 Do
Begin
If ((Odd (x) And Odd (y)) Or (Not (Odd (x)) And Not (Odd (y)))) Then
Canvas. Brush. Color:=clBlack
Else
Canvas. Brush. Color:=clWhite;
Canvas. FillRect (GetCellRectByNumber (x, y));
End;
End;
Canvas. Pen. Color:=clBlack;
Canvas. Pen. Style:=psSolid;
Canvas. Pen. Width:=1;
Canvas. Brush. Style:=bsClear;
// Canvas. Rectangle (0, (Height mod 8), Width — (Width mod 8), Height);
Canvas. Rectangle (0, 0, Width, Height);
{ΠΠ°ΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΡΠΊΠΈ}
If Board=nil Then Exit;
For y:=1 To 8 Do
Begin
For x:=1 To 8 Do
Begin
If Board. GetDraught (x, y)<>nil Then
DrawDraught (x, y, Board. GetDraught (x, y).Side, Board. GetDraught (x, y).Kind);
End;
End;
End;
Function TVisualChessBoard. GetCellRectByNumber (x, y: Integer):TRect;
Begin
Result. Left:=Trunc ((x-1)*(Width/8));
Result. Right:=Trunc (x*(Width/8));
Result. Top:=Height-Trunc (y*(Height/8));
Result. Bottom:=Height-Trunc ((y-1)*(Height/8));
End;
Procedure TVisualChessBoard. GetCellNumberByCoord (xCoord, yCoord: Integer; Var x, y: Integer);
Begin
x:=1+Trunc (xCoord/(Width/8));
y:=8-Trunc (yCoord/(Height/8));
End;
Procedure TVisualChessBoard. DrawDraught (x, y: Integer; Side: Integer; Kind: Integer);
Const
dR=5;
Var
R, tR: TRect;
Begin
Canvas. Pen. Color:=clSilver;
Canvas. Pen. Style:=psSolid;
Canvas. Pen. Width:=3;
Canvas. Brush. Style:=bsSolid;
If Side=sdWhite Then Canvas. Brush. Color:=clWhite Else Canvas. Brush. Color:=clBlack;
R:=GetCellRectByNumber (x, y);
Canvas. Ellipse (R. Left+dR, R. Top+dR, R. Right-dR, R. Bottom-dR);
If Kind=kdKing Then Begin
tR:=R;
R. Left:=tR. Left+((tR. Right-tR. Left) div 4);
R. Right:=tR. Right — ((tR. Right-tR. Left) div 4);
R. Top:=tR. Top+((tR. Bottom-tR. Top) div 4);
R. Bottom:=tR. Bottom — ((tR. Bottom-tR. Top) div 4);
Canvas. Ellipse®;
End;
End;
Procedure TVisualChessBoard. DrawMove (x, y: Integer);
Const
dR=5;
Var
R:TRect;
Begin
Canvas. Pen. Color:=clLime;
Canvas. Pen. Style:=psSolid;
Canvas. Pen. Width:=1;
Canvas. Brush. Color:=clLime;
Canvas. Brush. Style:=bsDiagCross;
R:=GetCellRectByNumber (x, y);
Canvas. Ellipse (R. Left+dR, R. Top+dR, R. Right-dR, R. Bottom-dR);
End;
Procedure TVisualChessBoard. DrawStrike (x, y: Integer);
Const
dR=5;
Var
R:TRect;
Begin
Canvas. Pen. Color:=clRed;
Canvas. Pen. Style:=psSolid;
Canvas. Pen. Width:=1;
Canvas. Brush. Color:=clRed;
Canvas. Brush. Style:=bsDiagCross;
R:=GetCellRectByNumber (x, y);
Canvas. Ellipse (R. Left+dR, R. Top+dR, R. Right-dR, R. Bottom-dR);
End;
Procedure TVisualChessBoard. DrawMoves (Const Moves, Strikes: TList);
Var
CP:PCellPosition;
i: Integer;
Begin
If Moves<>nil Then
For i:=0 To Moves. Count-1 Do
Begin
CP:=Moves. Items[i];
DrawMove (CP^.X, CP^.Y);
End;
If Strikes<>nil Then
For i:=0 To Strikes. Count-1 Do
Begin
CP:=Strikes. Items[i];
DrawStrike (CP^.X, CP^.Y);
End;
End;
Procedure TVisualChessBoard. DrawMovesByNumber (x, y: Integer);
Var
Moves, Strikes, Strickens: TList;
Begin
Board. FindMoves (x, y, Moves, Strikes, Strickens);
DrawMoves (Moves, Strikes);
ClearMoves (Moves);
ClearMoves (Strikes);
ClearMoves (Strickens);
End;
end.
unit About;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls, ShellApi;
type
TfmAbout = class (TForm)
bbOk: TBitBtn;
lbTitle: TLabel;
memAbout: TMemo;
Label1: TLabel;
procedure bbOkClick (Sender: TObject);
procedure FormCreate (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
fmAbout: TfmAbout;
implementation
{$R *.DFM}
procedure TfmAbout. bbOkClick (Sender: TObject);
begin
Close;
end;
procedure TfmAbout. FormCreate (Sender: TObject);
begin
MemAbout. Text:=' ΠΠ ΠΠΠΠΠ ΠΠΠ Π«. ';
MemAbout. Text:=memAbout. Text+' ';
MemAbout. Text:=memAbout. Text+'ΠΠ³ΡΠ° ΠΈΠ΄Π΅Ρ Π½Π° ΠΏΠΎΠ»Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ 8 X 8 ΠΊΠ»Π΅ΡΠΎΠΊ, ΡΠ°ΡΠΊΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠΈ ΡΡΠ΄Π° Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ. ';
MemAbout. Text:=memAbout. Text+'ΠΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΡΠ΅ΠΊ Π² Π»ΡΠ±ΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ , ΠΏΡΠΎΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΠΈΡΡ Π½Π°Π·Π°Π΄, Π΄Π°ΠΌΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Ρ ΠΎΠ΄ΠΈΡΡ Π½Π° Π»ΡΠ±ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΠ»Π΅ΠΉ, ΡΠ΅Π»Ρ ΠΈΠ³ΡΡ ΡΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ Π·Π°ΠΏΠ΅ΡΠ΅ΡΡ Π²ΡΠ΅ ΡΠ°ΡΠΊΠΈ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊΠ°.';
MemAbout. Text:=memAbout. Text+'ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΡΡΠΎΡΠΎΠ½ Π² Π½Π°ΡΠ°Π»Π΅ ΠΈΠ³ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎ 12 ΡΠ°ΡΠ΅ΠΊ. Π¨Π°ΡΠΊΠΈ ΡΠ°ΡΡΡΠ°Π²Π»ΡΡΡΡΡ Π² ΡΡΠ΅Ρ Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ ΠΊ ΠΈΠ³ΡΠΎΠΊΠ°ΠΌ, Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΡ . ';
MemAbout. Text:=memAbout. Text+'ΠΠ²Π° ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΄Π° ΠΏΠΎΠ»Π΅ΠΉ ΠΎΡΡΠ°ΡΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΌΠΈ. ΠΠ΄Π΅ΡΡ Π½Π° ΡΡΠΈΡ ΠΏΠΎΠ»ΡΡ , ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠΎΠΏΡΠΈΠΊΠΎΡΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΡΠΎΡΡΠΈΡ ΡΠΈΠ».;
MemAbout. Text:=memAbout. Text+' ΠΡΠΎΡΠΈΠ²Π½ΠΈΠΊΠΈ Ρ ΠΎΠ΄ΡΡ ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Ρ ΡΠ°ΡΠΊΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ²Π΅ΡΠ° ΠΏΠΎ ΠΈΠ³ΡΠΎΠ²ΡΠΌ ΠΏΠΎΠ»ΡΠΌ. ΠΠ΅ΡΠ²ΡΠΌΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ Π±Π΅Π»ΡΠ΅.;
MemAbout. Text:=memAbout. Text+'ΠΡΠΈΠ³ΡΡΠ²Π°Π΅Ρ ΡΠ° ΡΡΠΎΡΠΎΠ½Π°, ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ½ΠΈΡΡΠΎΠΆΠΈΡΡ ΠΈΠ»ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΠ°ΡΠ΅ΠΊ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊΠ°. ';
end;
end.