ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°βΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΠβΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° ΠΏΠΎ Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ
Π ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠ΅ΠΏΠΎΡΠΊΠ° Π°Π»ΡΠ°Π²ΠΈΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠ°Ρ ΡΠ°Π·Π±ΠΎΡΡ, ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΡΠΈΠΊΠ» Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠ° ΠΏΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌΡΠΌ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° ΡΡΠ΅Π΅ΠΊ. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ Π°Π²ΡΠΎΠΌΠ°Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ (50 000) ΡΠΈΠΊΠ» ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ ΠΈ Π²ΡΠ΄Π°Π΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ΅ ΡΠ΅ΠΏΠΎΡΠΊΠΈ, ΡΠΈΠΊΠ» ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ ΠΏΠΎΠΊΠ° Π²Ρ ΠΎΠ΄Π½ΡΠΌ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°βΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΠβΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° ΠΏΠΎ Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
- Π‘ΠΠΠΠ ΠΠΠΠΠ
ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π Π΅ΡΠ΅ΡΠ°Ρ ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
1 Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΠ΅ΠΌΡ
1.1 Π’Π΅ΠΎΡΠΈΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ²
1.2 ΠΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΎΡΠΈΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ²
2 Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°
2.1 Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°ΠΌ
2.2 ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΠ
2.3 ΠΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ±ΠΎΡΠ° ΡΡΠ΅Π΄ΡΡΠ² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
2.4 Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° (Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ°)
2.5 ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΠ
2.6 ΠΠ΅ΡΠ°ΡΡ ΠΈΡ ΡΠΊΡΠ°Π½Π½ΡΡ ΡΠΎΡΠΌ
2.7 Π‘ΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π΅ΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
3 Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ
3.1 Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌ
ΠΡΠ²ΠΎΠ΄Ρ
Π‘ΠΏΠΈΡΠΎΠΊ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
Π ΠΠ€ΠΠ ΠΠ’
ΠΡΡΡΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅ «ΠΡΠ½ΠΎΠ²Ρ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ» Π½Π° ΡΠ΅ΠΌΡ: «ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΠ — ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° ΠΏΠΎ Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ»
Π ΡΠ°Π±ΠΎΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ Π²ΠΎΠΏΡΠΎΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ²-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠΎΠ² Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ, ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΡ ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΡΠ΅Π±Π½ΡΡ ΡΠ΅Π»ΡΡ , Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ² Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅Π΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Delphi.
Π Π°Π±ΠΎΡΠ° ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ, ΠΊΠ°ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΡ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΡ Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ. ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π·Π½Π°Π½ΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° ΠΏΡΡΠ΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ.
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ. ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠ΅ΠΏΠΎΡΠΊΠΈ. ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ·ΡΡΠΈΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», ΡΠΎ ΡΠ°Π±ΠΎΡΠ° Π½Π΅ Π²ΡΠ·ΠΎΠ²Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΈΡ. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΈΠ·Π»Π°Π³Π°Π΅ΡΡΡ Π½ΠΈΠΆΠ΅ Π² Π·Π°ΠΏΠΈΡΠΊΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΉ ΡΠ»ΡΠΆΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π Π°Π±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΠΌ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΅Π³ΠΎ Π² ΡΠ΅Π»ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ΄Π΅Π½ΡΠΎΠ² ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π²ΡΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ.
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π°:
Π΄ΠΈΡΠΊΡΠ΅ΡΠ½Π°Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ°, ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ, ΡΠΏΡΠ°Π²Π»ΡΡΡΠ°Ρ ΡΠ°Π±Π»ΠΈΡΠ°, Π²Ρ ΠΎΠ΄Π½Π°Ρ ΡΠ΅ΠΏΠΎΡΠΊΠ°, Π²ΡΡ ΠΎΠ΄Π½Π°Ρ ΡΠ΅ΠΏΠΎΡΠΊΠ°.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ Π²ΡΠ΅ ΡΠ°ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΡΠΎΡΠ½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π½ΠΎ ΠΈ Π΄Π»Ρ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠ·Π²Π°Π½Π½ΠΎΠ³ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠΈΠΉ Π½Π°ΡΡΡΠ½ΡΠΉ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Ρ. ΠΠΎΡΡΠΎΠΌΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ ΠΊΠ°ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ Π²ΡΡΠΎΠΊΠΎΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ², ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΡ ΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Ρ. Π΅. Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π½ΠΎΠ²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°ΡΡΠ½ΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ.
Π Π°Π·Π²ΠΈΡΠΈΠ΅ Π½Π°ΡΡΠ½ΠΎ-ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° Π²Π΅Π΄Π΅Ρ ΠΊ ΡΠΎΡΡΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ Π² ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ , ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ ΠΈΠ½ΡΡ ΡΠ°ΡΡΠ΅ΡΠ°Ρ , Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°Ρ . ΠΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΌΠ΅ΡΡΠΎ Π² Π½Π°ΡΡΠ½ΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. Π ΡΠ»Π΅ΠΊΡΡΠΎΡΠ΅Ρ Π½ΠΈΠΊΠ΅ ΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠ΅ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ MathCAD Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ², ΡΠΈΠ³Π½Π°Π»ΠΎΠ².
Π’Π°ΠΊΠΆΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΌΠ΅ΡΠ°Π»Π»ΡΡΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ . Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Π² ΠΠΠΠ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΠΎΡΡΡΠ΅ΠΉ ΠΈ Ρ ΠΎΠ»ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠΊΠ°ΡΠΊΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ PASCAL. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΡΡΠ°Π»Π΅ΡΠ°Π·Π»ΠΈΠ²ΠΎΡΠ½ΡΡ ΠΊΠΎΠ²ΡΠ΅ΠΉ, ΡΠ°ΡΡΠ΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² ΡΠ°Π·Π½ΡΡ ΠΌΠ΅ΡΠ°Π»Π»ΠΎΠ² ΠΈ ΡΠΏΠ»Π°Π²ΠΎΠ² Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ Ρ ΠΎΠ»ΠΎΠ΄Π½ΠΎΠΉ Π΄Π΅ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π°Π½Π°Π»ΠΈΠ· Π²Π»ΠΈΡΠ½ΠΈΡ Π²ΡΡ ΠΎΠ΄Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠ° Ρ ΠΎΠ»ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠΊΠ°ΡΠΊΠΈ Π½Π° Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ½Π΅ΡΠ³ΠΎΡΠΈΠ»ΠΎΠ²ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΠΈΡΠΎΠΊΠΈΠΌ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎ-Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ Π³Π»Π°Π²Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°Π»Π° Π·Π°Π΄Π°ΡΠ° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΠ΅ΠΌΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅, Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π Π½Π°ΡΡΠ½ΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ ΡΡΠΎ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ ΡΠΎΡΡΠ°Π²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΈΡ Π°ΠΌΠΏΠ»ΠΈΡΡΠ΄Ρ, ΡΠ°ΡΡΠΎΡΠ½ΡΡ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΠΌΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ. ΠΠ°ΡΡΠ½ΡΠ΅ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΈ ΡΡΠ΄ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎ-ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌ, Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ².
Π Π΅ΡΠ΅ΡΠ°Ρ
ΠΠΈΡΠΊΡΠ΅ΡΠ½Π°Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ°— ΡΠ°Π·Π΄Π΅Π» ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ, Π·Π°Π½ΠΈΠΌΠ°ΡΡΠΈΠΉΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ°.
ΠΠΈΡΠΊΡΠ΅ΡΠ½Π°Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ°ΠΊΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°, Π°Π»Π³Π΅Π±ΡΠ° Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠΉ, ΡΠ΅ΠΎΡΠΈΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ², ΡΠ΅ΠΎΡΠΈΡ Π³ΡΠ°ΡΠΎΠ².
Π ΡΡΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΡΠ° ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠ°ΡΠΊΡΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ²-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠΎΠ² Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ.
Delphi ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΡ ΡΡΠ΅Π΄ΡΡΠ² Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ (Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ).
ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π½Π½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ — Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°. Π‘ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ΅Π΄ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π° Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π±Π°Π·Π°.
ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΡΠ΅Π΄Π° Delphi 6.
1 Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΠ΅ΠΌΡ
1.1 Π’Π΅ΠΎΡΠΈΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ²
ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ (Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΠ) — Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π° Π²Ρ ΠΎΠ΄Π΅ ΡΠΈΡΠ°Π΅Ρ ΡΠ΅ΠΏΠΎΡΠΊΠΈ (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π°Π»ΡΠ°Π²ΠΈΡΠ°), Π° Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎΠ± ΠΈΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ, Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ ΠΏΠΎΡΡΡΠΎΠ΅Π½.
ΠΠΎ ΡΡΡΠΈ ΠΠ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΡΠΈΠ»ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ «ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅» ΡΠ΅ΠΏΠΎΡΠΊΠΈ. ΠΡΡΠ³Π°Ρ ΡΡΠ°ΠΊΡΠΎΠ²ΠΊΠ° ΠΠ — ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π½ΠΈΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ , Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠΎΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅).
ΠΠ°Π»Π΅ΠΊΠΎ Π½Π΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΠ-ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΠ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΡΡΠΈΡΠ°ΡΡ ΠΈ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ. ΠΠ»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ — ΠΌΠ°Π³Π°Π·ΠΈΠ½, Π² ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΠΈΡ , Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ ΠΈΠ»ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ. Π’Π°ΠΊΠΎΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠΌ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Π΅ΠΌ Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ (ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΠΎ — ΠΠ-ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Π΅ΠΌ).
ΠΠΎ Π² ΡΡΠ΄Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ. Π’Π°ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ, Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡΡΡ Π²ΡΡ ΠΎΠ΄Π½Π°Ρ ΡΠ΅ΠΏΠΎΡΠΊΠ°.
ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ Π·Π°Π΄Π°Π΅ΡΡΡ :
1.ΠΠΎΠ½Π΅ΡΠ½ΡΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π²Ρ ΠΎΠ΄Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΈΠΌΠ²ΠΎΠ» ΠΊΠΎΠ½ΡΠ° ΡΠ΅ΠΏΠΎΡΠΊΠΈ «ΒΆ»).
2.ΠΠΎΠ½Π΅ΡΠ½ΡΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π²ΡΡ ΠΎΠ΄Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
3.ΠΠΎΠ½Π΅ΡΠ½ΡΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (Π²ΠΊΠ»ΡΡΠ°Ρ ΠΌΠ°ΡΠΊΠ΅Ρ Π΄Π½Π° ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° — 'Β€').
4.ΠΠΎΠ½Π΅ΡΠ½ΡΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ.
5.Π£ΠΏpΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ, ΠΊΠΎΡΠΎpΠ°Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΡΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²: Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ», ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» (Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°), ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ — ΡΡΠ°Π²ΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΠ΅ΡΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°: Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠΌ, Π²Ρ ΠΎΠ΄Π½ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΈ Π²ΡΡ ΠΎΠ΄Π½ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ.
5.HΠ°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ (Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠ΄Π΅pΠΆΠΈΠΌΠΎΠ΅ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°).
6.ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ (ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ — ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° ΠΈ Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ» «ΠΊΠΎΠ½Π΅Ρ ΡΠ΅ΠΏΠΎΡΠΊΠΈ»).
ΠΠΎΠΏΡΡΠΊΠ°Π΅ΠΌΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ Π²Ρ ΠΎΠ΄ΠΎΠΌ:
1.ΠΠ΅ΡΠΆΠ°ΡΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» (Π).
2.ΠΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (Π).
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΡ ΠΎΠ΄Π° ΡΠΈΠΌΠ²ΠΎΠ»Π° «ΒΆ» («ΠΊΠΎΠ½Π΅Ρ ΡΠ΅ΠΏΠΎΡΠΊΠΈ»).
ΠΠΎΠΏΡΡΠΊΠ°Π΅ΠΌΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠΌ
1.ΠΡΠΎΠ»ΠΊΠ½ΡΡΡ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ», ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π (ΠΡ.Π).
2.ΠΡΡΠΎΠ»ΠΊΠ½ΡΡΡ ΠΈΠ· ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ», ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π (ΠΡΡ.Π).
3.ΠΡΡΠ°Π²ΠΈΡΡ ΠΌΠ°Π³Π°Π·ΠΈΠ½ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (Π).
Π ΡΠ΄ ΡΡΠ΅Π΅ΠΊ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±Π΅Π· Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π° ΠΏΠΎΠ»Ρ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Π (ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ). ΠΡΠ»ΠΈ ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ ΠΏΠΎΠΏΠ°Π» Π² ΡΠ°ΠΊΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ ΠΈ ΡΠ°ΠΊΠ°Ρ ΡΠ΅ΠΏΠΎΡΠΊΠ° ΠΎΡΠ²Π΅ΡΠ³Π°Π΅ΡΡΡ.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ°Π±ΠΎΡΡ Π΄Π»Ρ ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ «Π΄ΠΎΠΏΡΡΡΠΈΡΡ» ΠΈΠ»ΠΈ «ΠΎΡΠ²Π΅ΡΠ³Π½ΡΡΡ» ΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠ° ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΠ°Ρ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅. ΠΡ ΠΎΠ΄Π½Π°Ρ ΡΠ΅ΠΏΠΎΡΠΊΠ° Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠΎΠΌ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ ΡΡΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π°Π²ΡΠΎΠΌΠ°Ρ, Π½Π°ΡΠ°Π²ΡΠΈΠΉ ΡΠ°Π±ΠΎΡΡ Π² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ (Π² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΈ Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°) ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΊ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»Π° «ΠΊΠΎΠ½Π΅Ρ ΡΠ΅ΠΏΠΎΡΠΊΠΈ», ΠΈΠ½Π°ΡΠ΅ ΡΠ΅ΠΏΠΎΡΠΊΠ° ΠΎΡΠ²Π΅ΡΠ³Π°Π΅ΡΡΡ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ°.
Π ΠΈΡ. 1 — Π²ΠΈΠ΄ ΡΡΠ΅ΠΉΠΊΠΈ ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ°
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π½ΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ — ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ²ΠΎΡΡΠ΅ΡΠΊΠΈΠΉ ΠΈ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΡΠΉ. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΠ. ΠΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΊΠΎ Π²ΡΡΠΊΠΎΠΌΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠΌΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ.
1.2 ΠΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΎΡΠΈΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ²
ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠΎΠ²Π½Π΅ΠΉ ΡΠΈΡΠΎΠΊΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ , ΠΊΠ°ΠΊ Π½Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΌ, ΡΠ°ΠΊ ΠΈ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½ΡΡ : ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ, Π°Π½ΡΠΈΠ²ΠΈΡΡΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Ρ. ΠΏ. Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΡΠ°Π±ΠΎΡΡ Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ² ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ.
2 Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°
2.1 Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°ΠΌ
Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°ΠΌ (Π΄Π°Π»Π΅Π΅ ΠΠ) ΠΏΡΠ΅Π΄ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΄ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ. Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΠ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π΄ΡΡΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π° Π½Π΅ ΡΠ΅ΡΡΡΡΡΡ Π² Π΄ΠΎΠ³Π°Π΄ΠΊΠ°Ρ ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. Π ΠΈΠ΄Π΅Π°Π»Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΠ΅Π½Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ «ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡ ΡΡΠ°ΠΏΠ° Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ Π΄ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΠ°Π·Π²ΠΈΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΏΡΠΈΠ½ΡΡΡΠΉ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π΅ Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
2.2 ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΠ
ΠΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°.
ΠΡΠ±ΡΠ°Π½Π½Π°Ρ ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ (Object Pascal), ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ:
TMyStack — ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅ΠΊΠ°.
TMPrasp — ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ°.
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎΠ·Π΄Π°Π½Ρ (Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ) Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° (IDE Delphi).
ΠΠΎΠ΄ΡΠ»ΠΈ :
DMKurs — Π³Π»Π°Π²Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΡ ΠΠ (ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ, Π·Π°Π³ΡΡΠ·ΠΊΡ, ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π²Π²Π΅Π΄Π΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ )
Mpunit — ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° ΠΈ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
AddUn — Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ°
EditUn — ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ.
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎΠ·Π΄Π°Π½Ρ (Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ) Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° (IDE Delphi). Π‘ΡΡΡΠΊΡΡΡΠ° ΠΠ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π²ΡΠ΄Π°Π½Π½ΠΎΠ³ΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.
Π ΠΈΡ. 2 — Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°
ΠΠΎΡΠ»Π΅ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ°; ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ΅ΠΉΠΊΠΈ; ΡΠ°Π·Π±ΠΎΡ ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° (ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠΉ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Π·Π±ΠΎΡ, ΠΏΡΠΈ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ).
ΠΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π²ΡΠ±ΠΎΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΡΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
2.3 ΠΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ±ΠΎΡΠ° ΡΡΠ΅Π΄ΡΡΠ² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΌΠ½ΠΎΡ Π²ΡΠ±ΡΠ°Π½ΠΎ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Delphi Π²Π΅ΡΡΠΈΠΈ 6.0. ΠΡΠΎ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΠΈ ΡΡΠΊΠΎΡΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡ ΠΏΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΈΠ»ΠΈΡ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π΄ΠΈΠ°Π»Π΅ΠΊΡΠΎΠ² Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ² Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΊΠ»Π°ΡΡΠ° Pascal 6.0−7.0, Π‘ 3.0 ΠΈ Ρ. Π΄.
Π‘ΡΠ΅Π΄ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Visual Basic, Visual C++ ΠΈ Ρ. Π΄.) Delphi Π²ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΡΡΡΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈ ΠΌΠΎΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π₯ΠΎΡΡ Visual Basic Π½Π°ΡΠ΅Π» ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΡΠΎΡ ΠΈ ΠΏΠΎΠΌΠΎΠ³ ΠΎΡΠΊΡΡΡΡ ΠΌΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Π½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ², ΠΎΠ½ Π½Π΅ Π»ΠΈΡΠ΅Π½ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ· Π½ΠΈΡ — Π½ΠΈΠ·ΠΊΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΡΠΈ ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ, Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΡΡΠΎΠ³ΠΎΡΡΡ ΡΠ·ΡΠΊΠ°. Π’.ΠΊ. Delphi Π±ΡΠ»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° ΠΏΠΎΠ·ΠΆΠ΅ Visual Basic, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΡΠ»ΠΈ ΡΡΡΡΠ°Π½Π΅Π½Ρ.
ΠΠΎΡΡΠΎΠΌΡ, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Delphi ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
2.4 Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° (Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ°)
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 3.
Π½Π΅Ρ
Π΄Π°
Π ΠΈΡ. 3 — Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°
2.5 ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΠ
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΠ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ CheckChain, Π½Π°Ρ ΠΎΠ΄ΡΡΠ°ΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Mpunit, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ΄Π°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π·Π±ΠΎΡΠ° ΡΠ΅ΠΏΠΎΡΠΊΠΈ («ΠΠΎΠΏΡΡΠΊ», «ΠΠ΅Ρ Π΄ΠΎΠΏΡΡΠΊΠ°»).
Π¦Π΅ΠΏΠΎΡΠΊΠ° Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π΅ΡΠ»ΠΈ ΠΏΠΎ ΠΏΡΠΈΡ ΠΎΠ΄Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° «ΠΊΠΎΠ½Π΅Ρ ΡΠ΅ΠΏΠΎΡΠΊΠΈ» ΠΏΠ°ΡΠ°
«Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ — ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ»» Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ.
Π ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠ΅ΠΏΠΎΡΠΊΠ° Π°Π»ΡΠ°Π²ΠΈΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠ°Ρ ΡΠ°Π·Π±ΠΎΡΡ, ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΡΠΈΠΊΠ» Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠ° ΠΏΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌΡΠΌ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° ΡΡΠ΅Π΅ΠΊ. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ Π°Π²ΡΠΎΠΌΠ°Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ (50 000) ΡΠΈΠΊΠ» ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ ΠΈ Π²ΡΠ΄Π°Π΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ΅ ΡΠ΅ΠΏΠΎΡΠΊΠΈ, ΡΠΈΠΊΠ» ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ ΠΏΠΎΠΊΠ° Π²Ρ ΠΎΠ΄Π½ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» ΠΊΠΎΠ½ΡΠ° ΡΠ΅ΠΏΠΎΡΠΊΠΈ, Π΅ΡΠ»ΠΈ ΡΠΈΠΊΠ» Π±ΡΠ» Π·Π°Π²Π΅ΡΡΠ΅Π½ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΡΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ» ΡΠ°Π±ΠΎΡΡ Π°Π²ΡΠΎΠΌΠ°Ρ ΡΡΠ΅Π΄ΠΈ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ , ΠΈ Π²ΡΠ΄Π°Π΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° TmyStack, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π²ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡ Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ», Π·Π°ΠΌΠ΅Π½ΡΡΡ Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π½Π° ΡΠ΅ΠΏΠΎΡΠΊΡ, Π²ΡΠ΄Π°Π²Π°ΡΡ Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ».
2.6 ΠΠ΅ΡΠ°ΡΡ ΠΈΡ ΡΠΊΡΠ°Π½Π½ΡΡ ΡΠΎΡΠΌ
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΈΠ· ΠΌΠ΅Π½Ρ ΡΠ°ΠΉΠ» ΠΠΎΠ²ΡΠΉ. ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΠΎΠ±Π°Π²ΠΈΡΡ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π·Π°Π³ΠΎΡΠΎΠ²ΠΊΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠΎΡΠΎΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠ΅ΠΉΠΊΠΈ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π»ΠΊΠ½ΡΡΡ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΠΏΠΎ ΡΡΠ΅ΠΉΠΊΠ΅. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΎΠΊΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅ΠΉΠΊΠΈ.
ΠΠΊΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅ΠΉΠΊΠΈ
ΠΠ°ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ°Π±Π»ΠΈΡΡ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ Π½Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΠΎΠΌΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½ ΠΠΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΅Π»ΠΊΠ½ΡΡΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π ΠΠΠΠΠ Π¦ΠΠΠΠ§ΠΠ ΠΈ Π² ΠΎΠΊΠ½ΠΎ Π ΠΠΠΠΠ Π²Π²Π΅ΡΡΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ. ΠΠ²ΠΎΠ΄ΠΈΠΌΠ°Ρ ΡΠ΅ΠΏΠΎΡΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ°, ΠΈΠ½Π°ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
ΠΡΠ»ΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π°Π½Π½ΡΡ , Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΡΠ΅Π·ΡΠ»ΡΡ:
ΡΠ΅ΠΏΠΎΡΠΊΠ° Π΄ΠΎΠΏΡΡΠ΅Π½Π° ΠΈΠ»ΠΈ Π½Π΅Ρ ΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠ° Π½Π° Π²ΡΡ ΠΎΠ΄.
2.7 Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π΅ΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΠ»Ρ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ Π² ΠΠ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π²ΡΠ±ΠΎΡ Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ . ΠΠ° ΡΠΊΡΠ°Π½ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΡΠΌΠ° ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ Π΅Ρ Π΄Π°Π½Π½ΡΡ , ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π΄Π°Π½Π½ΡΠ΅, ΠΏΠ΅ΡΠ΅Π΄ Π·Π°Π½Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π»ΠΈ Π²Π²ΠΎΠ΄. Π’Π°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π²ΠΎΠ΄ Π½ΠΎΠ²ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (ΠΎΠ½ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠ΅), Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠ° (ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π²Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠ΅). Π ΡΠ»ΡΡΠ°Π΅ ΡΠ°Π·Π±ΠΎΡΠ° ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ, ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π°Π½Π½ΡΡ Π°Π»ΡΠ°Π²ΠΈΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΊΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
3 Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ
3.1 Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌ
ΠΠ»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΌΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ:
CPU Π½Π΅ Π½ΠΈΠΆΠ΅ Pentium-133
8 Mb ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ 32 Mb)
ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 1Mb ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°
1 Mb Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Windows 95/98/2000/NT.
ΠΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΎΡ ΠΌΡΡΡ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ :
Β· Intel Celeron 400, 32 Mb RAM, Windows 98
Β· Intel Pentium || Celeron 266, 64 Mb RAM, Windows 98
Β· AMD K6 || 333, 64 Mb RAM, Windows NT 4.0
Β· Intel Pentium 166, 16 Mb RAM, Windows 95
ΠΡΠ²ΠΎΠ΄
Π Ρ ΠΎΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ Π±Π»ΠΈΠΆΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΡΡ Ρ ΡΠ΅ΠΎΡΠΈΠ΅ΠΉ ΠΠΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠΎΠ², Π½Π°ΡΡΠΈΠ»ΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΠ — ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° ΠΏΠΎ Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΡ ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ, Π·Π°ΠΊΡΠ΅ΠΏΠΈΠ» Π·Π½Π°Π½ΠΈΡ ΠΏΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π Π°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Ρ Π½Π°ΡΡΠΈΠ»ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π·Π½Π°Π½ΠΈΡ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅, ΡΡΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°.
Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΡΠ»ΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡΡΠ»ΡΡΡΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
unit DmKurs;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
MPunit, ComCtrls, ToolWin, Menus, StdCtrls, ExtCtrls, Grids, Addun,
ActnList, ImgList, ExtDlgs, Buttons, ButtonComps, RunText;
type
TMainPr = class (TForm)
StatusBar1: TStatusBar;
MainMenu1: TMainMenu;
pc1: TPageControl;
File1: TMenuItem;
Help1: TMenuItem;
New1: TMenuItem;
Save1: TMenuItem;
Load1: TMenuItem;
N1: TMenuItem;
Exit1: TMenuItem;
tsEdit: TTabSheet;
ActionList1: TActionList;
alCreateNew: TAction;
ImageList1: TImageList;
tsCheck: TTabSheet;
dgMP: TDrawGrid;
alRepaint: TAction;
ToolBar1: TToolBar;
tbNew: TToolButton;
alSave: TAction;
sd1: TSaveDialog;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
alLoad: TAction;
od1: TOpenDialog;
pm: TPopupMenu;
New2: TMenuItem;
Save2: TMenuItem;
Load2: TMenuItem;
N2: TMenuItem;
Exit2: TMenuItem;
spd1: TSavePictureDialog;
tsAdd: TTabSheet;
alExit: TAction;
tlSavePicture: TToolButton;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
alHelp: TAction;
ToolButton3: TToolButton;
N6: TMenuItem;
N7: TMenuItem;
GroupBox2: TGroupBox;
buSymbAdd: TButton;
buDelSymb: TButton;
buClear: TButton;
Panel6: TPanel;
Label15: TLabel;
buNextStep: TButton;
lbStep: TListBox;
rgCheck: TRadioGroup;
buCheck: TButton;
plStData: TPanel;
buStopTrace: TBitBtn;
Panel1: TPanel;
lbResult: TLabel;
plChain: TEdit;
GroupBox1: TGroupBox;
mmNotes: TMemo;
Panel3: TPanel;
Label9: TLabel;
sgStartMag: TStringGrid;
buStartAdd: TButton;
buStartDel: TButton;
Panel4: TPanel;
Label10: TLabel;
cbStartingSt: TComboBox;
Panel5: TPanel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
cbStEd: TComboBox;
cbMagStEd: TComboBox;
cbSymbEd: TComboBox;
buCellEdit: TButton;
Panel2: TPanel;
Panel7: TPanel;
Label1: TLabel;
Label4: TLabel;
Label6: TLabel;
Label8: TLabel;
lbStNum: TLabel;
lbFirstSt: TLabel;
Label7: TLabel;
sgMagList: TStringGrid;
sgSymbList: TStringGrid;
sgMagStart: TStringGrid;
Panel8: TPanel;
sgGood: TStringGrid;
Label5: TLabel;
rgWhatAdd: TRadioGroup;
Panel9: TPanel;
Button1: TButton;
procedure FormClose (Sender: TObject; var Action: TCloseAction);
procedure tsAddShow (Sender: TObject);
procedure tsEditShow (Sender: TObject);
procedure buStartAddClick (Sender: TObject);
procedure buStartDelClick (Sender: TObject);
procedure alCreateNewExecute (Sender: TObject);
procedure cbStartingStChange (Sender: TObject);
procedure buCellEditClick (Sender: TObject);
procedure sgGoodSelectCell (Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure buSymbAddClick (Sender: TObject);
procedure buDelSymbClick (Sender: TObject);
procedure buClearClick (Sender: TObject);
procedure buCheckClick (Sender: TObject);
procedure PaintMP;
procedure ChangeGood (i, j: integer);
procedure dgMPDrawCell (Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure alRepaintExecute (Sender: TObject);
procedure dgMPTopLeftChanged (Sender: TObject);
procedure dgMPSelectCell (Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure alSaveExecute (Sender: TObject);
procedure alLoadExecute (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure buStopTraceClick (Sender: TObject);
procedure FormResize (Sender: TObject);
procedure Step;
procedure SetTrace;
procedure buNextStepClick (Sender: TObject);
procedure alExitExecute (Sender: TObject);
procedure alHelpExecute (Sender: TObject);
procedure N5Click (Sender: TObject);
procedure Button1Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainPr: TMainPr;
MP:TMPRasp;
Color1:Integer=clRed;
Color2:Integer=clWhite;
Color3:Integer=clYellow;
Color4:Integer=clFuchsia;
implementation
uses EditUn, AboutUn;
const CellSize=60;
LineEnd='ΒΆ';
drx=4;
dry=4;
Ready:boolean=false;
StepOver:boolean=false;
Num1=4;
TracePar:array [1.Num1] of String=
('ΠΠΎΠΌΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π² ΡΡΡΠΎΠΊΠ΅: ',
'Π‘ΠΈΠΌΠ²ΠΎΠ»: ',
'Π’Π΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅: ',
'ΠΠ΅ΡΡ Π½ΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°: ');
SaveDir='Save';
PicturesDir='Pictures';
var DrawSt, DrawMg, DrawSmb: boolean;
tmp:TBitmap;
TempParams:TSaveMP;
initialdir:string;
St, tt, ss: word;
TraceResult:boolean;
SymbI:integer;
Chain:string;
{$R *.DFM}
procedure TMainPr. FormClose (Sender: TObject; var Action: TCloseAction);
var MDR: integer;
begin
if Ready then begin
MDR:=MessageDlg ('Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ?', mtConfirmation,[mbYes, mbNo, mbCancel], 0);
if MDR<>MrCancel then begin
if MDR=mrYes then alSaveExecute (Sender);
Mp.Del;
Mp.Free;
TMP.free;
Ready:=false;
end
else Action:=caNone;
end;
end;
procedure TMainPr. tsAddShow (Sender: TObject);
var i, j: byte;
begin
if Ready then begin
with mp. params do begin
sgGood.ColCount:=MagSymbNum+1;
sgGood.RowCount:=StateNum+1;
for j:=1 to StateNum do
sgGood.cells[0,j]: ='S'+inttostr (j);
for i:=1 to MagSymbNum do begin
sgGood.cells[i, 0]: =MagSymbols[i];
for j:=1 to StateNum do begin
if MP. Good[j, i] then
sgGood.Cells[i, j]: ='ΠΠΎΠΏ.'
else
sgGood.Cells[i, j]:='ΠΡΠ².'
end;
end;
end;
lbStNum.caption:=inttostr (Mp.Params.StateNum);
lbFirstSt.caption:=inttostr (Mp.Params.StartingState);
sgMagList.colcount:=mp.Params.MagSymbNum;
sgSymbList.colcount:=mp.Params.SymbNum+1;
sgMagStart.ColCount:=length (mp.params.StartingMagState);
for i:=1 to mp.Params.MagSymbNum do begin
sgMagList.Cells[i-1,0]: =mp.Params.MagSymbols[i];
end;
if Mp.Params.SymbNum=0 then sgSymbList. Cells[0,0]: =LineEnd
else
for i:=1 to mp.Params.SymbNum do begin
sgSymbList.Cells[i, 0]: =mp.Params.Symbols[i];
end;
for i:=1 to Length (mp.Params.StartingMagState) do begin
sgMagStart.Cells[i-1,0]: =mp.Params.StartingMagState[i];
end;
end;
end;
procedure TMainPr. tsEditShow (Sender: TObject);
var i: byte;
begin
if Ready then begin
With MP. Params do begin
sgStartMag.ColCount:=length (StartingMagState);
for i:=1 to Length (StartingMagState) do begin
sgStartMag.Cells[i-1,0]: =StartingMagState[i];
end;
if DrawSt then begin
cbStartingSt.items.clear;
for i:=1 to StateNum do begin
cbStartingst.items.add ('S'+inttostr (i));
end;
cbStEd.items.clear;
cbStartingst.ItemIndex:=StartingState-1;
cbStartingst.text:=cbStartingst.items[cbStartingst.ItemIndex];
for i:=1 to StateNum do begin
cbStEd.items.add ('S'+inttostr (i));
end;
cbStEd.ItemIndex:=StartingState-1;
cbStEd.text:=cbStEd.items[cbStEd.ItemIndex];
end;
if DrawMg then begin
cbMagStEd.items.clear;
for i:=1 to MagSymbNum do begin
cbMagStEd.items.add (MagSymbols[i]);
end;
cbMagStEd.text:=cbMagStEd.items[0];
end;
if DrawSmb then begin
cbSymbEd.items.clear;
for i:=1 to SymbNum do begin
cbSymbEd.items.add (Symbols[i]);
end;
cbSymbEd.text:=cbSymbEd.items[0];
end;
end;
DrawSt:=false;
DrawMg:=false;
DrawSmb:=false;
end;
end;
procedure TMainPr. buStartAddClick (Sender: TObject);
var MR: word;
begin
if ready then begin
WhatAdd:=MgA;
Send:=copy (Mp.Params.MagSymbols, 2, Length (Mp.Params.MagSymbols));
MR:=Adding.ShowModal;
if MR=100 then begin
MP.Params.StartingMagState:=Mp.Params.StartingMagState+res;
end;
tsEdit.Hide;
tsEdit.Show;
end;
end;
procedure TMainPr. buStartDelClick (Sender: TObject);
begin
if ready then begin
if length (Mp.Params.StartingMagState)>1 then begin
Mp.Params.StartingMagState:=
copy (Mp.Params.StartingMagState, 1, Length (Mp.Params.StartingMagState)-1);
end;
tsEdit.Hide;
tsEdit.Show;
end;
end;
procedure TMainPr. alCreateNewExecute (Sender: TObject);
label 1;
var c: word;
begin
if not ready then begin
Ready:=true;
1: MP:=TMPRasp.Create;
lbResult.Caption:='';
mmNotes.Clear;
Mp.Init;
tsAdd.Hide;
tsAdd.show;
DrawSt:=true;
DrawMg:=true;
DrawSmb:=true;
TMP:=TBitmap.create;
mmNotes.text :='';
plChain.Text:='';
dgMP.DefaultColWidth:=CellSize;
dgMP.DefaultRowHeight:=CellSize;
paintMP;
end
else begin
c:=MessageDlg ('Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΠ»?', mtConfirmation,[mbYes, mbNo, mbCancel], 0);
case c of
mrYes: begin
alSaveExecute (Sender);
goto 1;
end;
mrNo: begin
goto 1;
end;
mrCancel: begin
;
end;
end;
end;
end;
procedure TMainPr. cbStartingStChange (Sender: TObject);
begin
if ready then begin
if cbStartingSt. ItemIndex<>-1 then
Mp.Params.StartingState:=cbStartingSt.ItemIndex+1;
end;
end;
procedure TMainPr. buCellEditClick (Sender: TObject);
var MR: integer;
begin
if ready then begin
ii:=cbStEd.ItemIndex+1;
if length (trim (cbMagStEd.text))=1 then
jj:=mp.MagSymbPos (cbMagStEd.text[1]);
if length (trim (cbSymbEd.text))=1 then
kk:=mp.SymbPos (cbSymbEd.text[1]);
if (ii>0) and (jj>0) and (kk>0) then begin
Mr:=Editing.ShowModal;
if mr=111 then begin
PaintMP;
mp.cell[ii, jj, kk]: =temp;
end;
end
else
MessageDlg ('ΠΠ΅Π²Π΅ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠ΅ΠΉΠΊΠ°!'
mtWarning,[mbOk], 0);
end;
end;
procedure TMainPr. sgGoodSelectCell (Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
begin
ChangeGood (ARow, ACol);
sgGood.Hide;
sgGood.Show;
end;
procedure TMainPr. buSymbAddClick (Sender: TObject);
var MR: Integer;
begin
if ready then begin
WhatAdd:=SmbA;
Send:=copy (Mp.Params.Symbols, 1, Length (Mp.Params.Symbols));
MR:=Adding.ShowModal;
if MR=100 then begin
plChain.Text:=plChain.Text+res;
lbResult.Caption:='';
end;
tsCheck.Hide;
tsCheck.Show;
end;
end;
procedure TMainPr. buDelSymbClick (Sender: TObject);
begin
plChain.Text:=copy (plChain.Text, 1, Length (plChain.Text)-1);
lbResult.Caption:='';
end;
procedure TMainPr. buClearClick (Sender: TObject);
begin
plChain.Text:='';
lbResult.Caption:='';
end;
procedure TMainPr. buCheckClick (Sender: TObject);
var s: string;
i:integer;
ok:boolean;
begin
if Ready then begin
s:=plChain.Text;
if Length (s)=0 then begin
MessageDlg ('ΠΠ΅ Π²Π²Π΅Π΄Π΅Π½Π° ΡΠ΅ΠΏΠΎΡΠΊΠ°', mtWarning,[mbOk], 0);
plChain.SetFocus;
end
else begin
ok:=true;
for i:=1 to length (s) do begin
if pos (s[i], MP.Params.Symbols)=0 then ok:=false;
end;
if ok then begin
case rgCheck. ItemIndex of
0: begin
if Mp. CheckChain (s) then
s:='ΠΠΠΠ£Π‘Π '
else
s:='ΠΠΠ’ ΠΠΠΠ£Π‘ΠΠ';
MessageDlg (s+' ΡΠ΅ΠΏΠΎΡΠΊΠΈ', mtinformation,[mbOk], 0);
lbResult.Caption:=S;
end;
1: begin
if plChain. Text<>'' then begin
tsEdit.enabled:=false;
bucheck.Enabled:=false;
buSymbAdd.Enabled:=false;
buDelSymb.Enabled:=false;
buClear.Enabled:=false;
buNextStep.Enabled:=True;
buStopTrace.Enabled:=True;
plChain.enabled:=false;
StepOver:=True;
plStData.Caption:='';
TempParams.Params:=Mp.Params;
TempParams.Good:=Mp.Good;
TempParams.cell:=Mp.Cell;
lbStep.Items.Clear;
With MP do begin
SymbI:=1;
TraceResult:=false;
State:=Params.StartingState;
Chain:=plChain.Text;
Stack.Init (Params.StartingMagState);
Ss:=SymbPos (Chain[SymbI]);
tt:=MagSymbPos (Stack.Top);
St:=State;
end;
SetTrace;
PaintMP;
end;
end;
end;
end
else begin
MessageDlg ('ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΡΡΠΎΠΊΠΈ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ Π°Π»ΡΠ°Π²ΠΈΡΡ', mtWarning,[mbOk], 0);
plChain.SetFocus;
end;
end;
end;
end;
procedure TMainPr. PaintMP;
begin
if Ready then
with MP. Params do begin
dgMP.ColCount:=SymbNum+3;
dgMp.RowCount:=StateNum*MagSymbNum+1;
dgMP.hide;
dgMP.Show;
end;
end;
procedure TMainPr. dgMPDrawCell (Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var a: trect;
x, y, y1,y2:word;
s, D: string;
TC:TMPCell;
begin
if ready then begin
a.Left:=1;
a.Top:=1;
a.Right:=CellSize;
a.Bottom:=CellSize;
tmp.Height:=Cellsize;
tmp.width:=Cellsize;
x:=Acol-1;
y:=ARow;
with mp. params do begin
if y mod MagSymbNum = 0 then
y1:=y div MagSymbNum
else y1:=(y div MagSymbNum)+1;
if y mod MagSymbNum = 0 then
y2:=MagSymbNum
else y2:=y mod MagSymbNum;
with tmp. canvas do begin
if (Acol<2) or (Arow=0) then
Brush.Color:=Color1
else
if (x=Symbnum+1) then
Brush.Color:=Color4
else
Brush.Color:=Color2;
Rectangle (a);
if StepOver and (((y1=st) and (y2=tt) and (x=ss) and (x>0))
or ((y1=st) and (y2=tt) and (ss=0) and (x=Length (Symbols)+1)))
then begin
Brush.Color:=Color3;
Rectangle (a);
end;
if (Arow=0) and (acol>1) then begin
if (x<=SymbNum) then
TextOut ((tmp.Width-TextWidth (Symbols[x])) div 2,
(tmp.Height-TextHeight (Symbols[x])) div 2, Symbols[x])
else TextOut ((tmp.Width-TextWidth (LineEnd)) div 2,
(tmp.Height-TextHeight (LineEnd)) div 2, LineEnd);
end;
if (Acol=0) and (arow>0) then begin
TextOut ((tmp.Width-TextWidth ('S'+inttostr (y1))) div 2,
(tmp.Height-TextHeight ('S')) div 2,'S'+inttostr (y1));
end;
if (Acol=1) and (arow>0) then begin
TextOut ((tmp.Width-TextWidth (MagSymbols[y2])) div 2,
(tmp.Height-TextHeight (MagSymbols[y2])) div 2, MagSymbols[y2]);
end;
if (Acol>1) and (arow>0) then begin
if (x>SymbNum) then begin
if MP. Good[y1,y2] then s:='ΠΠΎΠΏ.'
else s:='ΠΡΠ².';
TextOut ((tmp.Width-TextWidth (s)) div 2,
(tmp.Height-TextHeight (s)) div 2, s);
end
else begin
TC:=MP.Cell[y1,y2,x];
if tc. NextState=Err then begin
s:='ΠΡΠΈΠ±ΠΊΠ°';
TextOut ((tmp.Width-TextWidth (s)) div 2,
(tmp.Height-TextHeight (s)) div 2, s);
end
else begin
MoveTo (0,tmp.height div 3);
Lineto (tmp.width div 2,2*tmp.height div 3);
LineTo (tmp.width, tmp. height div 3);
Moveto (tmp.width div 2,2*tmp.height div 3);
Lineto (tmp.width div 2, tmp. height-14);
Moveto (0,tmp.height-14);
Lineto (tmp.width, tmp. height-14);
if MP. Cell[y1,y2,x]. WithSymb then s:='Π'
else s:='Π';
TextOut (tmp.Width-(TextWidth (s)+drx),
tmp.Height-(TextHeight (s)+dry)-14,s);
s:='S'+inttostr (TC.NextState);
TextOut (drx, tmp. Height-(TextHeight (s)+dry)-12,s);
s:=editing.cbWhatDo.Items[tc.mag];
if length (s)>1 then s:=copy (editing.cbWhatDo.Items[tc.mag], 1,3)+'.';
TextOut ((tmp.Width-(TextWidth (s)))div 2, dry+TextHeight (s), s);
s:=tc.Pushing;
TextOut ((tmp.Width-(TextWidth (s)))div 2, dry, s);
D:=tc.Vihod;
TextOut ((tmp.Width-TextWidth (D)) div 2, tmp. Height-14,D);
end;
end;
end;
end;
end;
dgMp.canvas.CopyRect (Rect, tmp. canvas, a);
end;
end;
procedure TMainPr. alRepaintExecute (Sender: TObject);
begin
if ready then begin
dgMP.Hide;
dgMp.Show;
end;
end;
procedure TMainPr. dgMPTopLeftChanged (Sender: TObject);
begin
PaintMP;
end;
procedure TMainPr. dgMPSelectCell (Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
var x, y, y1,y2:word;
Mr:integer;
begin
if not StepOver and Ready then begin
x:=Acol-1;
y:=ARow;
with mp. params do begin
if y mod MagSymbNum = 0 then
y1:=y div MagSymbNum
else y1:=(y div MagSymbNum)+1;
if y mod MagSymbNum = 0 then
y2:=MagSymbNum
else y2:=y mod MagSymbNum;
if (x>0) and (x<=SymbNum) and (Arow>0) then begin
ii:=y1;
jj:=y2;
kk:=x;
cbStEd.ItemIndex:=y1;
cbMagStEd.ItemIndex:=y2;
cbSymbEd.ItemIndex:=x;
cbStEd.text:=cbStEd.items[y1];
cbMagStEd.text:=cbMagStEd.items[y2];
cbSymbEd.text:=cbSymbEd.items[x];
Mr:=Editing.ShowModal;
if mr=111 then begin
mp.cell[ii, jj, kk]: =Result;
PaintMP;
end;
end
else
if (y>0) and (x=SymbNum+1) then begin
changeGood (y1,y2);
if pc1. ActivePageIndex=0 then begin
tsAdd.Hide;
tsAdd.Show;
end;
end;
end;
end;
end;
procedure TMainPr. ChangeGood (i, j: integer);
begin
if MessageDlg ('ΠΡΠ΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ', mtConfirmation,[mbOk, mbCancel], 0)=mrOk
then mp. SetGood (i, j);
PaintMP;
end;
procedure TMainPr. alSaveExecute (Sender: TObject);
var tmp: Shortstring;
begin
if ready then begin
TMP := mmNotes. text;
sd1.initialdir:=initialdir+SaveDir;
if sd1. execute then begin
mp.savetofile (tmp, sd1. filename);
end;
end;
end;
procedure TMainPr. alLoadExecute (Sender: TObject);
label 1;
var c: integer;
note:string;
begin
od1.initialdir:=initialdir+savedir;
if ready then begin
c:=MessageDlg ('Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ?', mtConfirmation,[mbYes, mbNo, mbCancel], 0);
case c of
mrYes: begin
alSaveExecute (Sender);
end;
mrNo: begin
;
end;
mrCancel: begin
goto 1;
end;
end;
end;
if od1. Execute then begin
pc1.Enabled:=true;
Ready:=true;
MP:=TMPRasp.Create;
MP.LoadFromFile (od1.FileName, note);
mmNotes.text :=note;
plChain.Text:='';
tsAdd.Hide;
tsAdd.show;
tsEdit.Hide;
tsEdit.show;
tsCheck.hide;
tsCheck.show;
DrawSt:=true;
DrawMg:=true;
DrawSmb:=true;
TMP:=TBitmap.create;
dgMP.DefaultColWidth:=CellSize;
dgMP.DefaultRowHeight:=CellSize;
paintMP;
end;
1: end;
procedure TMainPr. FormCreate (Sender: TObject);
var s: string;
i:integer;
begin
Application.Title:='ΠΠΠ. ΠΠ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ';
s:=paramstr (0);
i:=length (s);
while s[i]<>'' do
i:=i-1;
initialdir:=copy (s, 1, i);
end;
procedure TMainPr. buStopTraceClick (Sender: TObject);
begin
if ready then begin
tsEdit.enabled:=true;
bucheck.Enabled:=true;
buSymbAdd.Enabled:=true;
buDelSymb.Enabled:=true;
buClear.Enabled:=true;
buNextStep.Enabled:=False;
buStopTrace.Enabled:=False;
plChain.enabled:=true;
StepOver:=False;
MP.Params:=TempParams.Params;
MP.Good:=TempParams.Good;
MP.cell:=TempParams.Cell;
if TraceResult then lbResult. caption:='ΠΠΠΠ£Π‘Π'
else lbResult. caption:='ΠΠΠ’ ΠΠΠΠ£Π‘ΠΠ';
PaintMP;
end;
end;
procedure TMainPr. FormResize (Sender: TObject);
begin
PaintMp;
end;
procedure TMainPr. SetTrace;
var i: integer;
s:string;
begin
plStData.caption:=MP.Stack.Data;
lbStep.Items.clear;
for i:=1 to Num1 do begin
case i of
1: begin
s:=inttostr (SymbI);
end;
2: begin
if SymbI>Length (Chain) then s:=LineEnd
else s:=Mp.Params.Symbols[ss];
end;
3: begin
s:='S'+inttostr (St);
end;
4: begin
s:=MP.Stack.Top;
end;
end;
lbStep.Items.Add (TracePar[i]+s);
end;
end;
procedure TMainPr. Step;
begin
With mp do begin
if (State<>Err) and (SymbI<=Length (Chain)) then begin
Ss:=SymbPos (Chain[SymbI]);
if Ss>0 then begin
tt:=MagSymbPos (Stack.Top);
St:=State;
With Cell[St, Tt, Ss] do begin
SetMag (Mag, Pushing);
State:=NextState;
if WithSymb then SymbI:=SymbI+1;
end;
Ss:=SymbPos (Chain[SymbI]);
tt:=MagSymbPos (Stack.Top);
St:=State;
end
Else State:=Err;
end;
If (State<>Err) and (SymbI=Length (Chain)+1) then begin
tt:=MagSymbPos (Stack.Top);
TraceResult:=Good[State, tt];
buNextStep.Enabled:=False;
end
else if State=Err then begin
lbResult.caption:='ΠΠΠ’ ΠΠΠΠ£Π‘ΠΠ';
buNextStep.Enabled:=False;
end;
end;
end;
procedure TMainPr. buNextStepClick (Sender: TObject);
var s: string;
begin
Step;
SetTrace;
PaintMp;
if buNextStep. Enabled=False then begin
if TraceResult then
s:='ΠΠΠΠ£Π‘Π '
else
s:='ΠΠΠ’ ΠΠΠΠ£Π‘ΠΠ';
MessageDlg (s+' ΡΠ΅ΠΏΠΎΡΠΊΠΈ', mtinformation,[mbOk], 0);
lbResult.Caption:=S;
end;
end;
procedure TMainPr. alExitExecute (Sender: TObject);
begin
MainPr.Close;
end;
procedure TMainPr. alHelpExecute (Sender: TObject);
begin
Application.HelpCommand (HELP_finder, 0);
end;
procedure TMainPr. N5Click (Sender: TObject);
begin
About.ShowModal;
end;
procedure TMainPr. Button1Click (Sender: TObject);
var MR: word;
begin
if ready then begin
with rgWhatAdd do begin
case ItemIndex of
0: begin WhatAdd:=St; Send:=''; end;
1: begin WhatAdd:=MgS; Send:=Mp.Params.MagSymbols; end;
2: begin WhatAdd:=Smb; Send:=Mp.Params.Symbols; end;
end;
end;
MR:=Adding.ShowModal;
if MR=100 then begin
with rgWhatAdd do begin
case ItemIndex of
0: begin
if not mp. AddState
then MessageDlg ('ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅!'
mtWarning,[mbOk], 0);
DrawSt:=True;
end;
1: begin
if not mp. AddMagState (res)
then MessageDlg ('ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ»!'
mtWarning,[mbOk], 0);
DrawMg:=True;
end;
2: begin
if not mp. AddSymb (res)
then MessageDlg ('ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ»!'
mtWarning,[mbOk], 0);
DrawSmb:=True;
end;
end;
PaintMp;
end;
end;
tsEdit.Hide;
tsEdit.Show;
end;
end;
end.