ΠΠΎΠΈΡΠΊ ΠΊΡΠ°ΡΡΠ°ΠΉΡΠ΅Π³ΠΎ ΠΏΡΡΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ΅
ΠΠ΅ΡΡΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΠ½ΠΈΡΠ° ΠΈ ΡΡΠ°ΡΡΠ° Π²Π½ΡΡΡΠΈ m-ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° (ΡΠ°ΠΊΠΆΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΡΡΠΈ) ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΠΏΠΎΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ m-ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΡΠΈΡΡΠ²Π°ΡΡ ΠΊΡΠ°ΡΡΠ°ΠΉΡΠΈΠΉ ΠΏΡΡΡ Ρ ΡΡΡΡΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ (Π²Π½ΡΡΡΠΈ m-ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°) ΠΈ Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ (Π²Π½Π΅ m-ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°) ΡΠΎΡΠ΅ΠΊ ΠΈ, Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠΈΠΌ, ΠΎΡΠ±ΠΈΡΠ°ΡΡ ΡΠ΅ ΠΈΠ· Π½ΠΈΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΠ΅ Π² ΠΏΡΡΠΈ. Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΎΠΈΡΠΊ ΠΊΡΠ°ΡΡΠ°ΠΉΡΠ΅Π³ΠΎ ΠΏΡΡΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ΅ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠ³Π΅Π½ΡΡΡΠ²ΠΎ ΠΏΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π’ΠΈΡ ΠΎΠΎΠΊΠ΅Π°Π½ΡΠΊΠΈΠΉ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΡΠΈΡΡΡ
ΠΠΎΠΈΡΠΊ ΠΊΡΠ°ΡΡΠ°ΠΉΡΠ΅Π³ΠΎ ΠΏΡΡΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ΅
ΠΡΠΏΠΎΠ»Π½ΠΈΠ»: ΠΠ°ΡΠ²Π΅Π΅Π² Π.Π.
ΠΠ»Π°Π΄ΠΈΠ²ΠΎΡΡΠΎΠΊ 2009
Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠ΅ΡΠ°Π΅ΠΌΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π΄ΠΎΡΠ»ΠΎΠ²Π½ΠΎ ΠΏΠΎ Π·Π°Π΄Π°Π½ΠΈΡ Π·Π²ΡΡΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: «Π Π·Π°Π΄Π°Π½Π½ΠΎΠΌ m-ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ΅ Π½Π°ΠΉΡΠΈ ΠΊΡΠ°ΡΡΠ°ΠΉΡΠΈΠΉ ΠΏΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΡΠΎΠΌ, Π»Π΅ΠΆΠ°ΡΠΈΠΌ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΅Π³ΠΎ Π²Π΅ΡΡΠΈΠ½, ΠΈ ΡΠΈΠ½ΠΈΡΠ΅ΠΌ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΌΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΅Π³ΠΎ ΡΡΠΎΡΠΎΠ½».
ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ ΡΡΠ°ΡΡ ΠΈ ΡΠΈΠ½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ Π²Π½ΡΡΡΠΈ m-ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ»Ρ N Π½Π° N Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π²Π½ΡΡΡΠΈ Π½Π΅Ρ, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, m-ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΡΠ°ΡΡΠ°ΠΉΡΠΈΡ ΠΏΡΡΠ΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΡΠΎΠΌ ΡΠΈΠ½ΠΈΡΠ΅ΠΌ.
ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
— ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎΠ»Ρ;
— ΠΊΠΎΠ»-Π²ΠΎ ΠΎΠΏΠΎΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ, Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ m-ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°
— ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠ½ m-ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° (Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΡΡΠΈ)
— ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΠ½ΠΈΡΠ° ΠΈ ΡΡΠ°ΡΡΠ° Π²Π½ΡΡΡΠΈ m-ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° (ΡΠ°ΠΊΠΆΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΡΡΠΈ) ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΠΏΠΎΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ m-ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΡΠΈΡΡΠ²Π°ΡΡ ΠΊΡΠ°ΡΡΠ°ΠΉΡΠΈΠΉ ΠΏΡΡΡ Ρ ΡΡΡΡΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ (Π²Π½ΡΡΡΠΈ m-ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°) ΠΈ Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ (Π²Π½Π΅ m-ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°) ΡΠΎΡΠ΅ΠΊ ΠΈ, Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠΈΠΌ, ΠΎΡΠ±ΠΈΡΠ°ΡΡ ΡΠ΅ ΠΈΠ· Π½ΠΈΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΠ΅ Π² ΠΏΡΡΠΈ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΏΠΎΠ»Π΅, ΠΎΠ±Π»Π°ΡΡΡ (m-ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ) ΠΈ ΠΏΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΡΠΎΠΌ ΠΈ ΡΠΈΠ½ΠΈΡΠ΅ΠΌ.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎΠ»Ρ ΠΈ ΠΊΠΎΠ»-Π²ΠΎ ΠΎΠΏΠΎΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ.
ΠΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΡΠΈΠ½ΠΈΡΠ° ΠΈ ΡΡΠ°ΡΡΠ° ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΈΡ Π²Π½Π΅ ΠΎΠ±Π»Π°ΡΡΠΈ, Π° ΡΠ°ΠΊ ΠΆΠ΅ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π² Π·Π°ΡΠ°Π½Π΅Π΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Π€ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
ΠΠΎΠ»ΠΎΠΆΠΈΠΌ ΠΏΠΎΠ»Π΅ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ Shape’ΠΎΠ², ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π΄Π°Π½ΠΈΡ Π²Π΅ΡΡΠΈΠ½ m-ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, ΡΡΠ°ΡΡΠ° ΠΈ ΡΠΈΠ½ΠΈΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Π΅ΠΌΡ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ Π±ΡΠ»Π΅Π²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² (Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΈ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ).
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±ΡΠ»Π΅Π²ΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΡΠ°ΡΡΠ° ΠΈ ΡΠΈΠ½ΠΈΡΠ° Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΡΠΎΡΠΊΠΈ ΠΊΡΠ°ΡΡΠ°ΠΉΡΠ΅Π³ΠΎ ΠΏΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°Π»Π΅Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° Shape’ΠΎΠ².
ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ
ΠΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΎΡΠ΅ΠΊ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠ²ΠΎΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°Ρ ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ°Ρ , ΠΈΠΌΠ΅Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΠΌΠ΅Π½Π΅Π΅ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΉ Ρ ΡΡΡΡΠΎΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π° ΠΏΠΎΠ»Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΠΊΠ°ΠΌΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅.
Π‘ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ. ΠΠΎ Π·Π°Π΄Π°Π½Π½ΡΠΌ Π²Π΅ΡΡΠΈΠ½Π°ΠΌ ΡΡΡΠΎΠΈΡΡΡ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½ ΠΈ Π·Π°Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ²Π΅ΡΠΎΠΌ, ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΠΎΡ ΡΠ²Π΅ΡΠ° ΡΠΎΠ½Π°. ΠΠ°Π»Π΅Π΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΈΠ΄ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ²Π΅ΡΠ° ΠΊΠ°Π½Π²Ρ. ΠΡΠ»ΠΈ ΡΠ²Π΅Ρ ΠΊΠ°Π½Π²Ρ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠΊΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ ΡΠΎ ΡΠ²Π΅ΡΠΎΠΌ Π·Π°Π»ΠΈΠ²ΠΊΠΈ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π° ΡΠΎ ΡΠΎΡΠΊΠ° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ.
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π°:
with canvas do begin
setlength (tochka, m);
for i:=0 to m-1 do begin
tochka[i]. X:=integer (vershina[i].x^)+round (h/(4*n));
tochka[i].Y:=integer (vershina[i].y^)+round (h/(4*n));
end;
Pen.Color:=clred;
Polygon (tochka);
brush.color:=clred;
end;
end;
ΠΠ΄Π΅ΡΡ Π·Π΄Π΅ΡΡ vershina[]. Ρ ΠΈ vershina[]. Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° Top ΠΈ Left Shape’ΠΎΠ², tochka[]-ΠΌΠ°ΡΡΠΈΠ² ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠ΅Π½ΡΡΠΎΠ² ΡΡΠΈΡ Left Shape’ΠΎΠ².
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ²Π΅ΡΠ°:
for i:=0 to n-1 do
for j:= 0 to n-1 do
if canvas. Pixels[a[i, j]. Left+round (h/(4*n)), a[i, j].Top+round (h/(4*n))]=clred then
a[i, j]. Brush. Color:=clgreen;
Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π² Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅. ΠΠ³ΠΎ ΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Π½Π°ΡΠ°Π»Π΅ ΡΡΡΠΎΠΈΡΡΡ ΠΊΠΎΠ½ΡΡΡ ΠΎΠ±Π»Π°ΡΡΠΈ, Π° ΠΏΠΎΡΠΎΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΈΠ΄Π΅Ρ ΠΏΠΎΠ΄ΡΡΡΡ ΠΊΠΎΠ»-Π²Π° ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ, ΠΏΡΠΎΠ²Π΅Π΄ΡΠ½Π½ΠΎΠΉ ΡΠ΅ΡΠ΅Π· ΡΡΡ ΡΠΎΡΠΊΡ, Ρ ΠΊΠΎΠ½ΡΡΡΠ°ΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ»Π΅Π²Π° ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ ΡΠΎΡΠΊΠΈ. ΠΡΠ»ΠΈ ΠΊΠΎΠ»-Π²ΠΎ Π½Π΅ΡΡΡΠ½ΠΎ ΡΠΎ ΠΎΠ½Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΎΠ±Π»Π°ΡΡΠΈ, ΠΈΠ½Π°ΡΠ΅ Π½Π΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ.
ΠΡΠΈΠ²Π΅Π΄ΡΠΌ ΡΠ΅ΠΊΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°:
dx:=(bx-ax)/m;
ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΡΠΎΡΠ΅Π΄Π½ΠΈΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ ΡΠ΅Π±ΡΠ°
dy:=(by-ay)/m;//ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ
{ΠΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ}
x:=ax+dx/2;
for i:=1 to m do begin
y:=ay+dy/2;
//WriteLn (fout);
for j:=1 to m do begin
//Write (fout,'(', x:0:1,',', y:0:1,')',' ');
{(x, y)-Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ}
L:=0; {Π§ΠΈΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΡΠ»Π΅Π²Π°}
for k:=1 to n-1 do begin
x1:=xv[k]; y1:=yv[k]; {Π Π΅Π±ΡΠΎ}
x2:=xv[k+1]; y2:=yv[k+1];
if ((y1
((y2
{Π£ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡΡΠΌΠΎΠΉ ΡΠ΅ΡΠ΅Π· 2 ΡΠΎΡΠΊΠΈ}
x3:=(y-y1)/(y2-y1)*(x2-x1)+x1;
if x3
end;
end;
y:=y+dy;
//WriteLn (fout,'L=', L);
if (L mod 2) =0 then b[m-j+1,i]: =0 else b[m-j+1,i]: =1;
end;
x:=x+dx;
end;
for i:=1 to m do begin
WriteLn (fout);
for j:=1 to m do begin
Write (fout, b[i, j]);
end;
end;
ΠΠΎΠΈΡΠΊ ΠΊΡΠ°ΡΡΠ°ΠΉΡΠ΅Π³ΠΎ ΠΏΡΡΠΈ
Π‘ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ ΡΡΠΎ, Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π±ΡΠ»Π΅Π²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΠ΅, ΠΎΡΡΠ°ΠΆΠ°ΡΡΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΡΠΎΡΠ΅ΠΊ, ΡΡΠ°Π²ΠΈΡΡΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ° ΠΌΠ΅ΡΠΎΠΊ. Π Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΊΠΎΠ»-Π²Π° Ρ ΠΎΠ΄ΠΎΠ², Π·Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΠ°ΡΡΡ ΠΈΠ· ΡΠΈΠ½ΠΈΡΠ° Π² Π΄Π°Π½Π½ΡΡ ΡΠΎΡΠΊΡ Π±ΡΠ»Π΅Π²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ. ΠΠΎΠ³Π΄Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΌΠ΅ΡΠΊΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΡΠ°ΡΡΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Ρ ΠΎΠ΄. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΡΠ΅Ρ ΡΠΎΡΠ΅Π΄Π½ΡΡ ΡΡΠ°ΡΡΡ ΡΠΎΡΠΊΡ, ΠΌΠ΅ΡΠΊΠ° ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π° 1 ΠΌΠ΅Π½ΡΡΠ΅ ΠΌΠ΅ΡΠΊΠΈ ΡΡΠ°ΡΡΠ°. ΠΠ°Π»Π΅Π΅ ΠΈΠ· Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ ΡΠ° ΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΈ ΡΠ°ΠΊ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ ΡΠΈΠ½ΠΈΡ.
procedure Tgraph. find (var z: Tmatrix;a, b: Txy;n:Integer);
var i, j, i1,j1:integer;
c:Integer;//Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΠΌΠ΅ΡΠΊΠΈ
yyy:Boolean;//ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠΈΠΊΠ»Π°
LABEL LBL;
begin
ny:=0;//Π΄Π»ΠΈΠ½Π° ΠΏΡΡΠΈ
//Π·ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΡΡ ΠΌΠ΅ΡΠΎΠΊ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΡΠΌΠΈ
for i:=0 to n-1 do
for j:=0 to n-1 do metka1[i, j]: =$ 7fff;
metka1[b.x, b. y]:=0;//ΠΌΠ΅ΡΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΡΠΈΠ½ΠΈΡΡ
//ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΌΠ΅ΡΠΊΡ ΠΊΠΎΠ»-Π²ΠΎ Ρ ΠΎΠ΄ΠΎΠ²,
//Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΡΠΎΠ±Ρ ΠΏΠΎΠΏΠ°ΡΡΡ Π² Π½Π΅Ρ Ρ ΡΠΈΠ½ΠΈΡΠ°
c:=-1;
while 1000>=c do begin
c:=c+1;
for i:=0 to n-1 do begin
for j:=0 to n-1 do begin
if metka1[i, j]=c then begin
for i1:=-1 to 1 do begin
for j1:=-1 to 1 do begin
if (i1=0) and (j1=0) then continue;//ΡΡΠΎ Π±Ρ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ°ΠΌΡ ΡΠΎΡΠΊΡ
if not z[i+i1,j+j1] or (metka1[i+i1,j+j1]<>$ 7fff) then continue;//ΡΠΎΡΠΊΠ° Π½Π΅ Π΄ΠΎΡΡΡΠΏ- //Π½Π° ΠΈΠ»ΠΈ ΠΏΡΡΡ ΠΊ Π½Π΅ΠΉ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ
metka1[i+i1,j+j1]: =c+1;
if (i+i1=a.x) and (j+j1=a.y) then begin//ΠΏΠΎΠΏΠ°Π»ΠΈ Π½Π° ΡΡΠ°ΡΡ
goto LBL;
end;
end;
end;
end;
end;
end;
end;
//Π·Π°ΠΏΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΠΌΠ΅ΡΠΎΠΊ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ»
LBL:
//ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π²ΠΈΠ³Π°ΡΡΡ ΠΎΡ ΡΡΠ°ΡΡΠ° ΠΊ ΡΠΈΠ½ΠΈΡΡ ΠΏΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΠΌΠ΅ΡΠΊΠ°ΠΌ
//Π·Π°Π½ΠΎΡΠΈΡ ΠΏΡΠΎΠΉΠ΄Π΅Π½Π½ΡΠ΅ ΡΠΎΡΠΊΠΈ Π² ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΡΠ΅ΠΊ ΠΏΡΡΠΈ
if metka1[a.x, a. y]=$ 7fff then begin
exit;
end;
c:=metka1[a.x, a. y]; //ΠΊΠΎΠ»-Π²ΠΎ Ρ ΠΎΠ΄ΠΎΠ² ΠΎΡ ΡΡΠ°ΡΡΠ° Π΄ΠΎ ΡΠΈΠ½ΠΈΡΠ°
i:=a.x;
j:=a.y;
yWay[1]: =a;
ny:=1;//ΠΊΠΎΠ»-Π²ΠΎ ΡΠΎΡΠ΅ΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π² ΠΏΡΡΠΈ
while c>0 do begin
c:=c-1;
yyy:=False;
for i1:=-1 to 1 do begin
for j1:=-1 to 1 do begin
if (i1=0) and (j1=0) then continue;//ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ°ΠΌΡ ΡΠΎΡΠΊΡ
if metka1[i+i1,j+j1]<>c then continue;
ny:=ny+1;//ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ ΠΏΡΡΠΈ
yWay[ny]. x:=i+i1;//Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΠΊΠΈ
yWay[ny]. y:=j+j1;// Π² ΠΏΡΡΡ
if (i+i1=b.x) and (j+j1=b.y) then exit;
i:=i+i1;
j:=j+j1;
yyy:=TRUE;//ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° «FOR»
break;
end;
if yyy then break;
end;
end;
end;
Π’Π΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠ½ΠΊΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ ΡΠ΅ΠΊΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π±Π΅Π· ΡΠ΅ΠΊΡΡΠ° ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΡΠ°ΡΡΡΡΠ° ΠΏΡΡΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π³Π»Π°Π²Π½Π°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π²ΡΡΠ΅.
unit MainUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Sgraph;
Const
nMaxShape=25;
type
coordinate=record
x:pointer;
y:pointer
end;
razmetka=array[0.nMaxShape, 0. nMaxShape] of TShape;
TForm1 = class (TForm)
Panel1: TPanel;
btnstroi: TButton;
btnfinish: TButton;
btnstart: TButton;
btnnew: TButton;
Edit1: TEdit;
Edit2: TEdit;
btnGraph: TButton;
Label1: TLabel;
Label2: TLabel;
procedure matriza ();
procedure btnstroiClick (Sender: TObject);
procedure btnnewClick (Sender: TObject);
procedure vershini (Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCreate (Sender: TObject);
procedure btnstartClick (Sender: TObject);
procedure btnfinishClick (Sender: TObject);
procedure FormPaint (Sender: TObject);
procedure FormResize (Sender: TObject);
procedure btnGraphClick (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function min (x, y: integer):integer;
procedure DrawWay;
procedure myShape;
public
k:integer;
a:razmetka;
end;
var
index1,index2:boolean;//ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°ΡΡΡΡΠ°
Form1: TForm1;
n, h, m:integer;
vershina: array of coordinate;
tochka:array of Tpoint;
matr: TMatrix;
nachialo, konez: Txy;
implementation
{$R *.dfm}
//Π²ΡΠ±ΠΎΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ»-Π²Π° Shape’ΠΎΠ²
procedure TForm1. myShape;
var i, j: integer;
begin
for i:=0 to n-1 do
for j:=0 to n-1 do begin
a[i, j]. Shape:=stcircle;
a[i, j].Parent:=self;
a[i, j].Brush.Color:=clwhite;
a[i, j].Height:=round (h/(2*n));
a[i, j].Width:=round (h/(2*n));
a[i, j].Top:=round (i*h/n);
a[i, j].Left:=round (j*h/n);
a[i, j].Show;
end;
end;
//ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ΅ΠΉΠΏΠΎΠ²
procedure TForm1. btnstroiClick (Sender: TObject);
var i, j: integer;
begin
try
m:=strtoint (edit2.Text);//ΠΊΠΎΠ»-Π²ΠΎ ΠΎΠΏΠΎΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ
n:=strtoint (edit1.Text);//ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ
if (n<=nMaxShape)and (m
setlength (vershina, m); myShape ();btnStroi.Enabled:=False
end
else begin
application.MessageBox ('Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠ»-Π²ΠΎ ΡΠΎΡΠ΅ΠΊ<οΏ½ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ <'+'25','ΠΎΡΠΈΠ±ΠΊΠ°');
edit1.Clear;edit2.clear; edit1. SetFocus;
end;
except
application.MessageBox ('Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ','ΠΎΡΠΈΠ±ΠΊΠ°');
edit1.Clear;edit1.Clear;edit1.SetFocus;
end;
end;
procedure TForm1. btnnewClick (Sender: TObject);
var j, i: integer;
begin
wGraph.ny:=0; //ΠΠ΅Ρ ΠΏΡΡΠΈ
k:=0;
for i:=0 to n-1 do
for j:=0 to n-1 do a[i, j]. Hide;
invalidate;
edit1.Clear;
edit1.SetFocus;
edit2.Clear;
index1:=false;index2:=false;
btnStroi.Enabled:=True;
end;
//ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠΎ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΌ Π²Π΅ΡΡΠΈΠ½Π°ΠΌ (ShapeClick)
procedure TForm1. vershini (Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var i, j: integer;
begin
if k
begin //ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΎΡΠ΅ΠΊ Π΄Π»Ρ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π°
vershina[k]. x:=@(sender as TShape).left;
vershina[k]. y:=@(sender as TShape).top;
(sender as TShape).brush.Color:=clgreen;
k:=k+1;
if k=m then
begin formpaint (self);//Π·Π°ΠΊΡΠ°ΡΠΊΠ° ΠΎΠ±Π»Π°ΡΡΠΈ
//ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΡΠΊΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ
for i:=0 to n-1 do
for j:= 0 to n-1 do
if canvas. Pixels[a[i, j]. Left+round (h/(4*n)), a[i, j].Top+round (h/(4*n))]=clred then
a[i, j]. Brush. Color:=clgreen;
btnstart.Enabled:=true;
btnfinish.Enabled:=true;
invalidate
end;
end;
//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π°ΡΠ°Π»Π°
if ((btnstart.Tag=1)and ((sender as tshape).Brush.Color=clyellow))
then index2:=false;
if (btnstart.Tag=1)and ((sender as tshape).Brush.Color=clgreen)
or ((btnstart.Tag=1)and ((sender as tshape).Brush.Color=clyellow))
then begin (sender as tshape).Brush.Color:=clblue;index1:=true;
btnstart.Tag:=0 end;
//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ°
if ((btnfinish.Tag=1)and ((sender as tshape).Brush.Color=clblue))
then index1:=false;
if (btnfinish.Tag=1)and ((sender as tshape).Brush.Color=clgreen)
or ((btnfinish.Tag=1)and ((sender as tshape).Brush.Color=clblue))
then begin btnfinish. Tag:=0;index2:=true;
(sender as tshape).Brush.Color:=clyellow end;
if (index1=true) and (index2=true) then btnGraph. Enabled:=true;
end;
procedure TForm1. FormCreate (Sender: TObject);
var i, j, n:integer;
begin
k:=0;
panel1.Tag:=0;
btnstart.Enabled:=false;
btnfinish.Enabled:=false;
btnGraph.Enabled:=false;
n:=nMaxShape;
//self.WindowState:=wsMaximized;
for i:=0 to n-1 do
for j:=0 to n-1 do begin
a[i, j]: =tshape.Create (self);
a[i, j].Shape:=stcircle;
a[i, j].Parent:=self;
a[i, j].Brush.Color:=clwhite;
a[i, j].Height:=41;
a[i, j].Width:=41;
a[i, j].Top:=round (i*100/n);
a[i, j].Left:=round (j*100/n);
a[i, j].onmousedown:=form1.vershini;
WriteLn (wgraph.fout, i:3,j:3);
a[i, j].Hide;
end;
end;
//ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π°ΡΠ°Π»Π°
procedure TForm1. btnstartClick (Sender: TObject);
var i, j: integer;
begin
index1:=false;
btnstart.Tag:=1;
for i:=0 to n-1 do
for j:= 0 to n-1 do
if a[i, j]. Brush. Color=clblue then
a[i, j]. Brush. Color:=clgreen
end;
//ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΠΎΠ½ΡΠ°
procedure TForm1. btnfinishClick (Sender: TObject);
var i, j: integer;
begin
index2:=false;
btnfinish.Tag:=1;
for i:=0 to n-1 do
for j:= 0 to n-1 do
if a[i, j]. Brush. Color=clyellow then
a[i, j]. Brush. Color:=clgreen
end;
procedure TForm1. FormPaint (Sender: TObject);
var i: integer;
begin
if k=m then begin
with canvas do begin
setlength (tochka, m);
for i:=0 to m-1 do begin
tochka[i]. X:=integer (vershina[i].x^)+round (h/(4*n));
tochka[i].Y:=integer (vershina[i].y^)+round (h/(4*n));
end;
Pen.Color:=clred;
Polygon (tochka);
brush.color:=clred;
end;
end;
DrawWay ();//Π²ΡΠ·ΠΎΠ² ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΡΠ°ΡΡΠ°ΠΉΡΠ΅Π³ΠΎ ΠΏΡΡΠΈ
end;
function TForm1. min (x, y: integer):integer;
begin
if x
end;
procedure TForm1. FormResize (Sender: TObject);
var i, j: integer;
begin
h:=form1.min (Form1.ClientWidth-Panel1.Width, Form1. ClientHeight);
for i:=0 to n-1 do
for j:=0 to n-1 do begin
a[i, j]. Top:=round (i*h/n);
a[i, j].Left:=round (j*h/n);
end;
Invalidate;
end;
//ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΡΡ Π΄Π»Ρ Π³ΡΠ°ΡΠ°
procedure TForm1. matriza ();
var i, j: integer;
begin
for i:=-1 to n do
for j:=-1 to n do matr[i, j]: =False;
for i:=0 to n-1 do
for j:=0 to n-1 do begin
if a[i, j]. Brush. Color=clWhite then matr[i, j]: =false
else matr[i, j]: =true;
if a[i, j]. Brush. Color=clBlue then begin
nachialo.x:=i;
nachialo.y:=j;
end;
if a[i, j]. Brush. Color=clYellow then begin
konez.x:=i;
konez.y:=j;
end;
end;
end;
procedure TForm1. btnGraphClick (Sender: TObject);
var i, j: integer;
begin
matriza ();
wGraph.find (matr, nachialo, konez, n);
for i:=0 to n-1 do
for J:=0 to n-1 do
if a[i, j]. Brush. Color=rgb (0,255,0)
then a[i, j]. Brush. Color:=clGreen;
Invalidate;
end;
//ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΡΠ°ΡΡΠ°ΠΉΡΠ΅Π³ΠΎ ΠΏΡΡΠΈ
procedure TForm1. DrawWay;
var i, ik, jk: integer;
begin
for i:=1 to wGraph. ny do begin
ik:=wGraph.yWay[i]. x;
jk:=wGraph.yWay[i].y;
a[ik, jk].Brush.Color:=RGB (0,255,0);
end;
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ)
ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΡΡ ΠΏΡΠΈΠ½ΡΡΡΠΉ Π² ΡΡΠ΅Π΄Π΅ Delphi ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΡΡΡΡΠΊΡΡΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΊΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅. ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎΠ»Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ ΠΊΠΎΠ»-Π²ΠΎ ΠΎΠΏΠΎΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ.
ΠΠ°Π»Π΅Π΅ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΡΠ°ΡΡ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π΅ Shape’ΠΎΠ² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ. ΠΠ»ΠΈΠΊΠ°ΠΌΠΈ ΠΌΡΡΠΈ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ ΠΎΠΏΠΎΡΠ½ΡΠ΅ Shape Π² ΠΊΠΎΠ»-Π²Π΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π² ΠΏΠΎΠ»Π΅ «ΠΊΠΎΠ»-Π²ΠΎ ΠΎΠΏΠΎΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ».
ΠΠΎΡΠ»Π΅ Π²ΡΠ±ΠΎΡΠ° Π²ΡΠ΅Ρ ΠΎΠΏΠΎΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π½Π° Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡΡ. Π’Π΅ΠΏΠ΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π°ΡΠ°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ ΡΠ½Π°ΡΠ°Π»Π° Π½Π°ΠΆΠ°Π² Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ, Π° Π·Π°ΡΠ΅ΠΌ Π½Π° Π½ΡΠΆΠ½ΡΠΉ Shape. ΠΠΎΠ²ΡΠΎΡΠ½ΡΠΌ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ Π½Π° ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΡΠ°Π»Π° ΠΈ ΠΊΠΎΠ½ΡΠ°.
ΠΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π Π°ΡΡΡΡ» Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ ΠΊΡΠ°ΡΡΠ°ΠΉΡΠΈΠΉ ΠΏΡΡΡ, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π°Π½Π½ΡΠΌ Π½Π°ΡΠ°Π»ΠΎΠΌ ΠΈ ΠΊΠΎΠ½ΡΠΎΠΌ ΠΎΠ½ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. ΠΠ»Ρ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΡΡΡΠ° Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π½Π°ΡΠ°Π»Π° ΠΈ ΠΊΠΎΠ½ΡΠ° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡ Π·Π°Π½ΠΎΠ²ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ «Π Π°ΡΡΡΡ». ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠΈ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ «ΠΠΎΠ²ΡΠΉ» ΠΈ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ ΡΠ½Π°ΡΠ°Π»Π°.
Π’Π΅ΡΡΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠΎΠ»ΠΎΠΆΠΈΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎΠ»Ρ ΡΠ°Π²Π½ΡΠΌ 20 ΠΈ ΠΊΠΎΠ»-Π²ΠΎ ΠΎΠΏΠΎΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ 10. ΠΠΎΡΡΡΠΎΠΈΠΌ Π²ΠΎΠ³Π½ΡΡΡΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ. ΠΡΠ±Π΅ΡΠ΅ΠΌ Π½Π°ΡΠ°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΠΎ ΠΏΡΡΠΌΠΎΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΠΈΠΌΠ΅Π»ΠΈΡΡ ΡΠΎΡΠΊΠΈ, Π½Π΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ.
Π‘ΠΌΠ΅Π½ΠΈΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠΊΠΈ.