ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°ΡΡΠ΅ΡΠΎΠ² ΠΏΠΎ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°ΠΌ
ΠΠ΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΡΡΡΠΊΡΡΡ, ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , Π½Π΅ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡΡ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½. ΠΡΠ±ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ — Π½ΠΎΡΠ°ΡΠΈΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΈ Ρ. Π΄. — ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΈΡ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠ΅ΠΉ. ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡ Π΅ΠΌΠ° ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°ΡΡΠ΅ΡΠΎΠ² ΠΏΠΎ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°ΠΌ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠ΅Π»ΠΎΡΡΡΡΠΊΠΈΠΉ Π½Π°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΠΉ ΠΈΠ½ΡΡΠΈΡΡΡ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΠ°ΡΠ΅Π΄ΡΠ° ΠΠΠΠ’ ΠΈ ΠΠ‘ ΠΠ£Π Π‘ΠΠΠΠ ΠΠ ΠΠΠΠ’ ΠΏΠΎ ΠΊΡΡΡΡ «Π‘ΡΡΡΠΊΡΡΡΡ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΠΠΠ «
ΠΠ° ΡΠ΅ΠΌΡ
" ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°ΡΡΠ΅ΡΠΎΠ² ΠΏΠΎ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°ΠΌ «
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ ΡΡ. Π³Ρ.417 313 Π― Π ΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π ΠΎΠΌΠ°Π½ΠΎΠ² Π.Π.
ΠΠΈΠ½ΡΠΊ 2005 Π³.
ΠΠ΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΡΡΡΠΊΡΡΡ, ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , Π½Π΅ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡΡ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½. ΠΡΠ±ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ — Π½ΠΎΡΠ°ΡΠΈΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΈ Ρ. Π΄. — ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΈΡ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠ΅ΠΉ. ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡ Π΅ΠΌΠ° ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ (ΠΈΠ»ΠΈ Π΅Π΅ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ), Π½ΠΎ ΠΈ, ΡΡΠΎ ΡΠ°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ. Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π»Π³ΠΎΡΠΈΡΠΌ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΠ°Π±Π»ΠΈΡΡ, ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠ°ΠΊ Π²Π΅ΠΊΡΠΎΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ. ΠΠ°ΠΊ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π. ΠΠΈΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΠΎΠ»Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ³ΡΠ°ΡΡ Π½Π΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΡΡΡΡ Π³Π»Π°Π²Π½ΡΠΌΠΈ ΡΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ, Π²Π»ΠΈΡΡΡΠΈΠΌΠΈ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠ½Π°ΡΠΈΠΌΠΎΡΡΡ ΡΠΎΠΉ ΡΠΎΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ³ΡΠ°ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ ΠΠΠ, ΠΏΠΎΡΠ»ΡΠΆΠΈΠ»Π° ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ «ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ» Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ°Π±ΠΎΡ, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ . ΠΡΠ»ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² (ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ «ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ »), ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠΈΠ»ΠΎ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ²ΠΎΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ . Π ΡΡΠ΅Π±Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Π²ΡΡΡΠΈΡ ΡΡΠ΅Π±Π½ΡΡ Π·Π°Π²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π° «Π‘ΡΡΡΠΊΡΡΡΡ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΠΠΠ», Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠ·ΡΡΠ°ΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡ Π΅ΠΌΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ, Π½ΠΎ ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°ΠΊΠΈΡ ΡΡΡΡΠΊΡΡΡ (ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΈ Ρ. Π΄.). ΠΠ°ΠΆΠ½ΠΎΡΡΡ ΡΠ°ΠΊΠΎΠΉ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Ρ Π΄Π»Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΡΠ΄Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΡΠ΅Π½ΠΈΡΡ.
Π’Π΅ΠΌΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° — «ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°ΡΡΡΡΠΎΠ² ΠΏΠΎ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°ΠΌ». ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎ Π·Π°Π΄Π°Π½ΠΈΡ ΠΊ ΠΊΡΡΡΠΎΠ²ΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΡΠΈΠΏΠ° Π²Π΅ΠΊΡΠΎΡ ΠΈ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π°Π»ΡΠ½ΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ°Π·ΠΎΠ²ΡΠΌ Π±ΡΠ»Π° Π²Π·ΡΡΠ° ΠΠ‘Π Delphi, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΡΡ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ².
ΠΠΈΠΆΠ΅ Ρ ΠΏΡΠΈΠ²Π΅Π΄Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅Π΄Ρ Delphi Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°.
Delphi — ΡΡΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ:
Β· ΠΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄.
Β· ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ.
Β· ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ΅ (Π°, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΈ ΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠ΅) ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΎΠ².
ΠΡΠΎΠ΅ΠΊΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ°ΡΡΠ΅ΡΠΎΠ² ΠΏΠΎ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°ΠΌ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠΉ Π½Π°ΡΡΠ½ΠΎ-ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ.
1. Π‘ΠΎΡΡΠ°Π² DELPHI-ΠΏΡΠΎΠ΅ΠΊΡΠ°
1.1. Π‘ΠΎΡΡΠ°Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠ°Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΡΠΌΡ Form1. ΠΠ° ΡΠΎΡΠΌΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ (ΡΠΌ. ΡΠΈΡ1):
— ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ MainMenu1 — ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅Π΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ², Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
— ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ BtnDel — ΠΊΠ½ΠΎΠΏΠΊΠ° Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΎΡΠΌΡ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π΄Π°Π½Π½ΡΡ .
— ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ txtSearch — ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΈΡΠΊΠΎΠΌΡΡ Π΄Π°Π½Π½ΡΡ .
— ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ btnSearch — ΠΊΠ½ΠΎΠΏΠΊΠ° Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΠΏΠΎΠΈΡΠΊΠ° Π²Π²Π΅Π΄Π΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π² ΠΏΠΎΠ»Π΅ txtSearch.
— ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ CheckBox1 — ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
— ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ PageControl1 — ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ TabSheet 1?4 Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΡΠ°ΠΆΠ΅Π½Ρ Π΄Π°Π½Π½ΡΠ΅ (ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ «Π₯Π», «ΠΠ’Π», «ΠΠΠΠ» ΠΈ «ΠΠ΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΠ΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°»).
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ TabSheet 1?4 ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π² ΡΠ΅Π±Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ (ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ «XDgrid», «WTKgrid», «BANKgrid» ΠΈ «NDgrid»). ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, TabSheet 4 ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ GroupBox1 c ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ btnSort1 ΠΈ btnSort2 Π΄Π»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΏΠΈΡΠΊΠ° Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ² ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΈ ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ»Π΅Π½ΠΎΠ² ΠΠ’Π.
Π ΠΈΡ. 1 — ΠΠ»Π°Π²Π½Π°Ρ ΡΠΎΡΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
1.2 ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² ΡΠΎΡΡΠ°Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ°
Π‘ΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ:
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ Unit1 — ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π² ΡΠΎΡΡΠ°Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ°:
— procedure LoadFromFiles — ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ.
— procedure InitGrids — ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±Π»ΠΈΡ ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ.
— procedure FillArrays — ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ .
— procedure SaveInFiles — ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² ΡΠ°ΠΉΠ»Ρ.
— procedure FillNDgrid — Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ².
— procedure Sort — ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π°Π»ΡΠ½Π°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ² NDgrid ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ.
— procedure Sort2- ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π°Π»ΡΠ½Π°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ² NDgrid ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ.
— procedure SweepRows (r1,r2:word) — Π·Π°ΠΌΠ΅Π½Π° ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΡΡΠΎΠΊ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ² NDgrid ΠΏΡΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅.
— procedure SaveRow (var sr: SRow;r:word) — ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
2. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΎ 5 ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΈΠΏΠ° String[N], Π³Π΄Π΅ N?255.
XDar: array [1.70] of String[30];
WTKar: array [1.150] of String[30];
BANKar: array [1.50] of String[30];
SRow=array [0.5] of String[30];
s: array [0.5] of String[30];
ΠΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Π° | Π’ΠΈΠΏ | Π Π°Π·ΠΌΠ΅Ρ Π² Π±Π°ΠΉΡΠ°Ρ | |
XDar | String[N] | (30+1)*70=2170 | |
WTKar | String[N] | (30+1)*150=4650 | |
BANKar | String[N] | (30+1)*50=1550 | |
SRow | String[N] | (30+1)*6=186 | |
S | String[N] | (30+1)*6=186 | |
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΄Π»Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½ΡΠΆΠ΄ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅:
nCol, i, j, y, x, n, n1, n2, c ΡΠΈΠΏΠ° integer (ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΠΎ 4 Π±Π°ΠΉΡΠ°);
l, r ΡΠΈΠΏΠ° word (ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΠΎ 2 Π±Π°ΠΉΡΠ°);
st, code, s ΠΈΠΌΠΏΠ° string[30] (ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΠΎ 30+1=31 Π±Π°ΠΉΡ).
3. ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
ΠΠ»Π°Π²Π½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ XDar, WTKar ΠΈ BANKar ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡΡ 70, 150 ΠΈ 50 ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
XDar: array [1.70] of String[30];
WTKar: array [1.150] of String[30];
BANKar: array [1.50] of String[30];
ΠΠ°ΡΡΠΈΠ² (array) — ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ . ΠΠ±ΡΠΈΠΌ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ Π²ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π²ΡΠ΅Ρ ΡΠΈΠΏΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅Π»ΡΠΉ ΡΠΈΠΏ.
ΠΠ»Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π΅ΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΈΡΠ²ΠΎΠΈΡΡ ΠΈΠΌΡ, ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠ°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡΠ° (ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°Ρ Π³ΡΠ°Π½ΠΈΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ²), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΠΏ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡ Π΅ΠΌΠ° ΡΡΡΡΠΊΡΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° XDar:
… | ||||||
… | ||||||
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 1 Π±Π°ΠΉΡ ΠΏΠ°ΠΌΡΡΠΈ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΌΠ°ΡΡΠΈΠ² XDar Π±ΡΠ΄Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ (30+1)*70=2170 Π±Π°ΠΉΡ.
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡ Π΅ΠΌΠ° ΡΡΡΡΠΊΡΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° WTKar:
… | ||||||
… | ||||||
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 1 Π±Π°ΠΉΡ ΠΏΠ°ΠΌΡΡΠΈ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΌΠ°ΡΡΠΈΠ² WTKar Π±ΡΠ΄Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ (30+1)*150=4650 Π±Π°ΠΉΡ.
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡ Π΅ΠΌΠ° ΡΡΡΡΠΊΡΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° BANKar:
… | ||||||
… | ||||||
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 1 Π±Π°ΠΉΡ ΠΏΠ°ΠΌΡΡΠΈ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΌΠ°ΡΡΠΈΠ² BANKar Π±ΡΠ΄Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ (30+1)*50=1550 Π±Π°ΠΉΡ.
4. ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΡΡΠΊΡΡΡ
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΡΡΠΊΡΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π°Π»ΡΠ½Π°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° (ΠΏΠΎ Π·Π°Π΄Π°Π½ΠΈΡ Π½Π° ΠΊΡΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅).
ΠΠ°Π½Π½ΡΠΉ Π²ΠΈΠ΄ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠ°ΠΊ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π°Π»ΡΠ½Π°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ, ΠΈ ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠ΅ΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅.
ΠΠΈΡΠ°ΠΌΠΈΠ΄Π°Π»ΡΠ½Π°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΡΠ΅Π±ΡΠ΅Ρ Nβ’Log2N ΡΠ°Π³ΠΎΠ² Π΄Π°ΠΆΠ΅ Π² Ρ ΡΠ΄ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅. Π’Π°ΠΊΠΈΠ΅ ΠΎΡΠ»ΠΈΠ½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π΄Π»Ρ Ρ ΡΠ΄ΡΠ΅Π³ΠΎ ΡΠ»ΡΡΠ°Ρ — ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ°ΠΌΡΡ Π²ΡΠ³ΠΎΠ΄Π½ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ² ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΠΎ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΡΠΎΡΡΠΈΠΎΠ²ΠΊΠΈ, Π²ΠΈΠ΄ΠΈΠΌΠΎ, Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΡΠ°ΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Ρ. Π΅. Π΄Π»Ρ Π½Π΅Π΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΠΎ Π½Π΅Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ°Π·Π° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΎΠΊ.
ΠΠΈΡΠ°ΠΌΠΈΠ΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ
K[L], …, K[R], ΡΠ°ΠΊΠ°Ρ, ΡΡΠΎ
K[i]? K[2i] & K[i]? K[2i + 1], (1)
Π΄Π»Ρ Π²ΡΡΠΊΠΎΠ³ΠΎ i = L, …, R/2. ΠΡΠ»ΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² Π[1], Π[2], …, Π[R], ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΡΡΡ ΠΎΡ 1, ΡΠΎ ΡΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°. ΠΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΈ R=10 ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.
Π ΠΈΡ. 2 — ΠΠ°ΡΡΠΈΠ² ΠΊΠ»ΡΡΠ΅ΠΉ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°
ΠΠ΅ΡΠ΅Π²ΠΎ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½ΠΎΠ΅ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ i = 1, 2, …, R/2 Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ (1). ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ i = R/2+1, R/2+2, …, R (Π»ΠΈΡΡΡΠ΅Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°), ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄ΠΎΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»Ρ ΡΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² Π² ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π΅ Π½Π΅Ρ ΡΡΠ½ΠΎΠ²Π΅ΠΉ.
Π‘ΠΏΠΎΡΠΎΠ± ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ «Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΠΌΠ΅ΡΡΠ΅» Π±ΡΠ» ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π . Π€Π»ΠΎΠΉΠ΄ΠΎΠΌ. Π Π½Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠΎΡΠ΅ΠΈΠ²Π°Π½ΠΈΡ (sift), ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Ρ-ΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π΄Π°Π½Π° ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π° Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π[3], Π[4], …, Π[10] Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π[2] Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΠΈ-ΡΠ΅Π½Π½ΡΡ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ Π[2], Π[3], Π[4], …, Π[10]. ΠΠΎΠ·ΡΠΌΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ Π[3], …, Π[10], ΠΏΠΎΠΊΠ°ΡΠ°Π½Π½ΡΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 3, ΠΈ ΡΠ°ΡΡΠΈΡΠΈΠΌ ΡΡΡ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ «Π²Π»Π΅Π²ΠΎ», Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π[2] =44.
Π ΠΈΡ. 3 — ΠΠΈΡΠ°ΠΌΠΈΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡ Π[2]=44
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΊΠ»ΡΡ Π[2] ΠΏΡΠΎΡΠ΅ΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ: Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΡΠ·Π»ΠΎΠ²-ΡΡΠ½ΠΎΠ²Π΅ΠΉ, Ρ. Π΅. ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ 15 ΠΈ 28. ΠΡΠ»ΠΈ Π±Ρ ΠΎΠ±Π° ΡΠ»ΡΡΠ°-ΡΡΠ½Π° Π±ΡΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠ»ΡΡ, ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΎΡΡΠ°Π»ΡΡ Π±Ρ Π½Π° ΠΌΠ΅ΡΡΠ΅, ΠΈ ΠΏΡΠΎΡΠ΅ΠΈΠ²Π°Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π±Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΎ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±Π° ΠΊΠ»ΡΡΠ°-ΡΡΠ½Π° ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ 44, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΊΠ»ΡΡ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Ρ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ Π² ΡΡΠΎΠΉ ΠΏΠ°ΡΠ΅, Ρ. Π΅. Ρ ΠΊΠ»ΡΡΠΎΠΌ 15. ΠΠ»ΡΡ 44 Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π[4], Π° ΠΊΠ»ΡΡ 15 — Π² ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π[2]. ΠΡΠΎΡΠ΅ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ»ΡΡΠΈ-ΡΡΠ½ΠΎΠ²ΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π[4] ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ Π΅Π³ΠΎ — ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΠ±ΠΌΠ΅Π½ ΠΊΠ»ΡΡΠ΅ΠΉ 44 ΠΈ 18. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π»ΠΎΡΡ ΡΠ°ΠΊ, ΡΡΠΎ ΠΎΠ±Π° ΠΊΠ»ΡΡΠ°-ΡΡΠ½Π° ΠΏΡΠΎΡΠ΅ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΎΠΊΠ°Π·ΡΠ²Π°Π»ΠΈΡΡ ΠΌΠ΅Π½ΡΡΠ΅ Π΅Π³ΠΎ. ΠΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ: Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΠΎΠ±ΠΌΠ΅Π½Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΠΌΠ΅Π½ΡΡΠ΅ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ ΡΡΠ½ΠΎΠ²Π΅ΠΉ
ΠΊΠ»ΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ±ΠΌΠ΅Π½.
ΠΡΠΎΡΠ΅ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· Π΄Π²ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ: Π»ΠΈΠ±ΠΎ Ρ Π½Π΅Π³ΠΎ Π½Π΅ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ² Π² ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π΅, Π»ΠΈΠ±ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΊΠ»ΡΡΠ° Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΎΠ±ΠΎΠΈΡ ΡΡΠ½ΠΎΠ²Π΅ΠΉ.
Π ΠΈΡ. 4 — ΠΡΠΎΡΠ΅ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° 44 Π² ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΠΎΡΠ΅ΠΈΠ²Π°Π½ΠΈΡ Π² ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΊΡ:
ΠΏΡΠΎΡΠ΅ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ temp,
ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ — Π²ΡΡ ΠΎΠ΄,
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° q ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ±ΠΌΠ΅Π½,
ΠΎΠ±ΠΌΠ΅Π½ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ temp ΠΈ q,
temp:= q,
ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΏ. 1.
ΠΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π² ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Ρ, Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Sift, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΠΈΠ²Π°Π½ΠΈΡ Π² ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ R:
Procedure Sift (temp, R: Integer);
Var q: integer;
x: TElement;
Begin
q:==2*t;
If q > R Then Exit;
If q < R Then
If a[q-l]. Key > a[q]. Key Then q:= q + 1;
If a[temp-1]. Key <= a[q-l]. Key Then Exit;
x:= a[temp-1];
a [temp-1] := a[q-l];
a[q-l]:= x;
temp:= q;
Shift (temp, R);
End;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Shift ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ Π²Π΅ΠΊΡΠΎΡΠ°, Π° ΠΎΡ Π½ΡΠ»Ρ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° Π°[0], Π°[1], a[Highlndex]. ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΡΡΡΡ ΠΎΡ 0, Π° ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π° ΠΎΡ 1. Π―ΡΠ½ΠΎ, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ a[N/2], a[N/2+1], …, a[Highlndex] ΡΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΡΡΡ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² i (i= N/2+1, N/2+2, …) ΠΈ j, ΡΠ°ΠΊΠΈΡ , ΡΡΠΎ, j=2i (ΠΈΠ»ΠΈ j=2i+l). ΠΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π»ΠΈΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π° ΡΠ°ΡΡΠΈΡΡΠ΅ΡΡΡ Π²Π»Π΅Π²ΠΎ: Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΡΠΎΡΠ΅ΠΈΠ²Π°Π½ΠΈΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΌΠ΅ΡΡΠΎ. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ.
ΠΡΠΎΡΠ΅ΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ
44 55 12 42 94 18 06 67
44 55 12 42 94 18 06 67
44 55 06 42 94 18 12 67
44 42 06 55 94 18 12 67
06 42 12 55 94 18 44 67
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ — ΠΆΠΈΡΠ½ΡΠΌ ΡΡΠΈΡΡΠΎΠΌ ΠΎΡΠΌΠ΅ΡΠ΅Π½Ρ ΠΊΠ»ΡΡΠΈ, ΠΎΠ±ΡΠ°Π·ΡΡΡΠΈΠ΅ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ Π½Π° ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ°Π³Π΅ Π΅Π΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ ΠΈΠ· N ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² «Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΠΌΠ΅ΡΡΠ΅» ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
R:= N;
For i:= N Div 2 Downto 1 Do
Sift (i, R);
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠΈΡΠ½ΡΡ, Π½ΠΎ ΠΈ ΠΏΠΎΠ»Π½ΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ΄Π΅Π»Π°ΡΡ N ΡΠ΄Π²ΠΈΠ³Π°ΡΡΠΈΡ ΡΠ°Π³ΠΎΠ², ΠΏΡΠΈΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°Π³Π° Π½Π° Π²Π΅ΡΡΠΈΠ½Ρ Π΄Π΅ΡΠ΅Π²Π° Π²ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ (Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ). ΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ, Π³Π΄Π΅ Ρ ΡΠ°Π½ΠΈΡΡ «Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠ΅» Π²Π΅ΡΡ Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ? Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ Π²ΡΡ ΠΎΠ΄: ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π±ΡΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ (ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Ρ ), ΠΏΡΡΡΠ°ΡΡ Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π° ΠΌΠ΅ΡΡΠΎ Ρ , Π° Ρ ΠΏΠΎΡΡΠ»Π°ΡΡ Π² Π½Π°ΡΠ°Π»ΠΎ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π°[0] ΠΈ ΠΏΡΠΎΡΠ΅ΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π² Π½ΡΠΆΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°Π³ΠΈ:
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ Π² ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
06 42 12 55 94 18 44 67
12 42 18 55 94 67 44 06
18 42 44 55 94 67 12 06
42 55 44 67 94 18 12 06
44 55 94 67 42 18 12 06
55 67 94 44 42 18 12 06
67 94 55 44 42 18 12 0Π±
94 67 55 44 42 18 12 06 — Π Π΅Π·ΡΠ»ΡΡΠ°Ρ
ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Sift ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
For R:= Highlndex Downto 1 Do Begin
x:=a[0]; a[0]: =a[R]; a[R]: =x;
Sift (1, R);
End;
ΠΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΠΎ ΡΡΠΎ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ Sift (Π² ΡΡΠ΅ΡΡΠ΅ΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°Ρ If ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Sift, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅). Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ PyramidSort, ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ Π²Π΅ΠΊΡΠΎΡΠ° Π°:
Procedure PyramidSort;
Var R, i: integer;
x: TElement;
Begin
R:= N;
For i:= N Div 2 Downto 1 Do
Sift (i, R);
For R:= Highlndex Downto 1 Do Begin
x:=a[0]; a[0]: = a[R]; a[R]: = x;
Sift (l, R);
End;
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΠΎΡΠ΅ΠΈΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°, Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ΅:
5. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΠ°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²ΡΠ΅ Π±ΠΎΠ³Π°ΡΠ΅ΠΉΡΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Borland Delphi.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΡΡΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²Π°Ρ — Π²ΠΊΠ»Π°Π΄ΠΊΠ° Ρ ΠΎΠ·ΡΠΉΡΡΠ²Π΅Π½Π½ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ² «Π₯Π» (ΡΠΌ. ΡΠΈΡ.5).
Π ΠΈΡ. 5 — ΠΠΊΠ»Π°Π΄ΠΊΠ° Ρ ΠΎΠ΄ΡΠΉΡΡΠ²Π΅Π½Π½ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ²
ΠΠ΄Π΅ΡΡ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΠ² ΡΠ΅ΠΊΠ±ΠΎΠΊΡ «ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅»), Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ.
ΠΠ΅ΡΠ΅ΠΉΠ΄Ρ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΡΠ΄ΠΎΠ²ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ²ΠΎΠ² «ΠΠ’Π» (ΡΠΌ. ΡΠΈΡ.6), ΠΌΡ ΠΏΠΎΠΏΠ°Π΄Π΅ΠΌ Π½Π° ΡΠΏΠΈΡΠΎΠΊ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ Π²ΡΠ΅Ρ Ρ ΠΎΠ·Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ², ΡΠ²Π»ΡΡΡΠΈΠ΅ΡΡ ΡΠ»Π΅Π½Π°ΠΌΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΠ’Π.
Π ΠΈΡ.6 — ΠΠΊΠ»Π°Π΄ΠΊΠ° ΡΠΏΠΈΡΠΊΠΎΠ² Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ Π²ΡΠ΅Ρ Ρ ΠΎΠ·Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ²
ΠΠ΄Π΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΊΠΈ, ΡΠ΄Π°Π»ΡΡΡ ΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠ΅. ΠΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ «ΠΠΎΠ΄ Π₯Π» ΡΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΈΠ· Π½ΠΎΠΌΠ΅ΡΠ° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ° ΠΈ Π³ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°.
Π’ΡΠ΅ΡΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΠ° «ΠΠ°Π½ΠΊ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π°ΡΡΠΈΠ±ΡΡΡ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΠΉ Π±Π°Π½ΠΊΠΎΠ² ΡΠ±Π΅ΡΠ±Π°Π½ΠΊΠ°, Π³Π΄Π΅ ΠΈΠΌΠ΅ΡΡΡΡ ΡΡΠ΅ΡΠ° ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ² (ΡΠΌ. ΡΠΈΡ.7).
Π ΠΈΡ.7 — ΠΠΊΠ»Π°Π΄ΠΊΠ° Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΠΉ Π±Π°Π½ΠΊΠΎΠ² ΡΠ±Π΅ΡΠ±Π°Π½ΠΊΠ°.
Π Π΄Π°Π½Π½ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡΠ΄Π΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡΡ, ΡΠ΄Π°Π»ΡΡΡ ΠΈΡ , Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠ΅.
Π Π² ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΠ»Π΅Π½ΠΎΠ² ΠΠ’Π (ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ) Π²ΡΠ΅Ρ Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ² Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΡΡΠΈ ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² (ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ ΠΊ ΠΊΡΡΡΠΎΠ²ΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ). Π‘ΠΊΡΠΈΠ½ΡΠΎΡ Π΄Π°Π½Π½ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π½Π° ΡΠΈΡ. 8.
Π ΠΈΡ.8 — ΠΠΊΠ»Π°Π΄ΠΊΠ° Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ²
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ² ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ, ΠΈΠ»ΠΈ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ»Π΅Π½ΠΎΠ² ΠΠ’Π ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π°Π»ΡΠ½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ (ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ ΠΊ ΠΊΡΡΡΠΎΠ²ΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ).
ΠΠ· Π²ΡΠ΅Ρ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΌΠ΅Π½Ρ «Π€Π°ΠΉΠ»», Π² ΠΊΠΎΡΠΎΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ Ρ Π·Π°ΠΏΠΈΡΡΠΌΠΈ Π²ΡΠ΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ»ΠΈ Π²ΡΠΉΡΠΈ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎΠΈΡΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π°ΡΡΠΈΠ±ΡΡΠΎΠ².
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ»ΠΈ ΠΈΠ·ΡΡΠ΅Π½Ρ ΠΈ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½Ρ Π·Π½Π°Π½ΠΈΡ ΠΏΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡΠΌ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ (ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ). Π ΠΠ‘Π DELPHI Π±ΡΠ»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° ΠΈΠ½ΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°ΡΡΡΡΠΎΠ² ΠΏΠΎ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°ΠΌ. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΠ‘Π .
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ Ρ ΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π½Π΅Π΄ΠΎΡΡΡΠΎΠ² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π·Π°Π΄Π°Π½ΠΈΡ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠ»ΠΈ ΠΈΠ·ΡΡΠ΅Π½Ρ Π±Π°Π·ΠΎΠ²Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ ΡΠΈΠΏΠ° Π²Π΅ΠΊΡΠΎΡ ΠΈ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ.
1 Π‘ΡΡΡΠΊΡΡΡΡ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ / ΠΠ°ΠΊΠΈΠ½ Π. Π., Π ΠΎΠΌΠ°Π½ΠΎΠ² Π. Π. — ΠΠ½.: ΠΠΠ’Π£, 2004 — 176 Ρ.
2 ΠΡΡ Π°Π½Π³Π΅Π»ΡΡΠΊΠΈΠΉ Π. Π―. Delphi 6. Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅. Π.: ΠΠΠ «ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΠ²ΠΎ ΠΠΠΠΠ», 2001. 1024 Ρ.
3 ΠΠΈΡΡ Π. ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ . Π‘ΠΠ±: ΠΠ΅Π²ΡΠΊΠΈΠΉ Π΄ΠΈΠ°Π»Π΅ΠΊΡ, 2001. 352 Ρ.
4 ΠΡΠΊ Π. ΠΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° IBM PC. ΠΠ½ΡΠΈΠΊΠ»ΠΎΠΏΠ΅Π΄ΠΈΡ. Π‘ΠΠ±: ΠΠΈΡΠ΅Ρ, 2003. 928 Ρ.
5 ΠΠ½ΡΡ Π. Π. ΠΡΠΊΡΡΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎΠΌ 1. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ. Π.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π΄ΠΎΠΌ «ΠΠΈΠ»ΡΡΠΌΡ», 2002. 720 Ρ.
6 ΠΠ½ΡΡ Π. Π. ΠΡΠΊΡΡΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎΠΌ 3. Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΈ ΠΏΠΎΠΈΡΠΊ. Π.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π΄ΠΎΠΌ «ΠΠΈΠ»ΡΡΠΌΡ», 2001. 832 Ρ.
7 ΠΡΠ½Π³ΡΠ°ΠΌ Π., ΠΠ³Π΅Π½ΡΡΠ°ΠΉΠ½ Π., Π’Π΅Π½Π΅Π½Π±Π°ΡΠΌ Π. Π‘ΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΠΠ. — Π.: ΠΠΈΡ, 1989. — 475 Ρ.
8 Π€Π°ΡΠΎΠ½ΠΎΠ² Π. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ DELPHI. Π‘ΠΠ±.: «ΠΠΠ₯-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³», 2004. 887 Ρ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1
ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, Grids, Menus, StdCtrls, ExtCtrls;
type
// ΡΠΈΠΏ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΡ NDgrid
SRow=array [0.5] of String[30];
TForm1 = class (TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
XDgrid: TStringGrid;
TabSheet2: TTabSheet;
WTKgrid: TStringGrid;
TabSheet3: TTabSheet;
BANKgrid: TStringGrid;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
btnSearch: TButton;
txtSearch: TEdit;
TabSheet4: TTabSheet;
NDgrid: TStringGrid;
N4: TMenuItem;
CheckBox1: TCheckBox;
btnDel: TButton;
GroupBox1: TGroupBox;
btnSort1: TButton;
btnSort2: TButton;
procedure FormCreate (Sender: TObject);
procedure N2Click (Sender: TObject);
procedure N3Click (Sender: TObject);
procedure btnSearchClick (Sender: TObject);
procedure N4Click (Sender: TObject);
procedure CheckBox1Click (Sender: TObject);
procedure btnDelClick (Sender: TObject);
procedure btnSort2Click (Sender: TObject);
procedure btnSort1Click (Sender: TObject);
private
{ Private declarations }
XDar: array [1.70] of String[30]; {ΠΌΠ°ΡΡΠΈΠ² Π΄Π»Ρ Π₯Π}
WTKar: array [1.150] of String[30]; {ΠΌΠ°ΡΡΠΈΠ² Π΄Π»Ρ ΠΠ’Π}
BANKar: array [1.50] of String[30]; {ΠΌΠ°ΡΡΠΈΠ² Π΄Π»Ρ ΠΠ}
public
{ Public declarations }
procedure LoadFromFiles;
procedure InitGrids;
procedure FillArrays;
procedure SaveInFiles;
procedure FillNDgrid;
procedure Sort;
procedure Sort2;
procedure SweepRows (r1,r2:word);
procedure SaveRow (var sr: SRow;r:word);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΡ Π² ΠΌΠ°ΡΡΠΈΠ²Ρ}
procedure TForm1. LoadFromFiles;
var
F:TextFile;
i:integer;
begin
{Π€Π°ΠΉΠ» — 'XD.txt'}
// ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ
AssignFile (F,'XD.txt');
Reset (F);
if IOResult <> 0 then
// ΠΎΡΠΈΠ±ΠΊΠ° ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π°!
begin
{$I+}
MessageBox (0,'ΠΡΠΈΠ±ΠΊΠ°!','ΠΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ» XD. txt!', MB_OK);
exit;
end;
{$I+}
// ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ» ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ² XDar
i:=1;
while not (SeekEof (F))do
begin
ReadLn (F, XDar[i]);
inc (i);
end;
CloseFile (F); // Π·Π°ΠΊΡΡΡΡ ΡΠ°ΠΉΠ»
{Π€Π°ΠΉΠ» — 'WTK.txt'}
{$I-}
// ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ
AssignFile (F,'WTK.txt');
Reset (F);
if IOResult <> 0 then
// ΠΎΡΠΈΠ±ΠΊΠ° ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π°!
begin
{$I+}
MessageBox (0,'ΠΡΠΈΠ±ΠΊΠ°!','ΠΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ» WTK. txt!', MB_OK);
exit;
end;
{$I+}
// ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ» ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ² XDar
i:=1;
while not (SeekEof (F))do
begin
ReadLn (F, WTKar[i]);
inc (i);
end;
CloseFile (F); // Π·Π°ΠΊΡΡΡΡ ΡΠ°ΠΉΠ»
{Π€Π°ΠΉΠ» — 'BANK.txt'}
{$I-}
// ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ
AssignFile (F,'BANK.txt');
Reset (F);
if IOResult <> 0 then
// ΠΎΡΠΈΠ±ΠΊΠ° ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π°!
begin
{$I+}
MessageBox (0,'ΠΡΠΈΠ±ΠΊΠ°!','ΠΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ» BANK. txt!', MB_OK);
exit;
end;
{$I+}
// ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ» ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ² XDar
i:=1;
while not (SeekEof (F))do
begin
ReadLn (F, BANKar[i]);
inc (i);
end;
CloseFile (F); // Π·Π°ΠΊΡΡΡΡ ΡΠ°ΠΉΠ»
end;
{ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΅Π΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²ΠΈΠΈ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ}
procedure TForm1. InitGrids;
var i, j: integer;
begin
XDgrid.Cells[0,0]: ='ΠΠΎΠΌΠ΅Ρ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°';
XDgrid.Cells[1,0]: ='ΠΠ°ΡΠ° Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ';
XDgrid.Cells[2,0]: ='ΠΠ°ΡΠ° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ';
XDgrid.Cells[3,0]: ='Π’Π΅ΠΌΠ° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°';
XDgrid.Cells[4,0]: ='ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ';
XDgrid.Cells[5,0]:='ΠΡΠΈΠ·Π½Π°ΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ';
XDgrid.Cells[6,0]: ='CΡΠΎΠΈΠΌΠΎΡΡΡ';
WTKgrid.Cells[0,0]:='Π€Π°ΠΌΠΈΠ»ΠΈΡ';
WTKgrid.Cells[1,0]:='ΠΠΌΡ';
WTKgrid.Cells[2,0]:='ΠΡΡΠ΅ΡΡΠ²ΠΎ';
WTKgrid.Cells[3,0]:='ΠΠΎΠ΄ ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ ';
WTKgrid.Cells[4,0]: ='ΠΠΎΠ΄ Π₯Π ';
WTKgrid.Cells[5,0]: ='ΠΡΠΈΠ·Π½Π°ΠΊ';
WTKgrid.Cells[6,0]:='Π‘ΡΠΌΠΌΠ° Π²ΠΎΠ·Π½Π°Π³ΡΠ°ΠΆΠ΄Π΅Π½ΠΈΡ ';
WTKgrid.Cells[7,0]: ='ΠΠΎΠΌΠ°ΡΠ½ΠΈΠΉ Π°Π΄ΡΠ΅Ρ ';
WTKgrid.Cells[8,0]: ='ΠΠΎΠΌΠ΅Ρ ΡΠ±Π΅ΡΠ±Π°Π½ΠΊΠ°';
WTKgrid.Cells[9,0]: ='Π Π°ΡΡΠ΅ΡΠ½ΡΠΉ ΡΡΠ΅Ρ ';
BANKgrid.Cells[0,0]: ='ΠΠΎΠΌΠ΅Ρ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΡ';
BANKgrid.Cells[1,0]: ='ΠΠΎΡΠΎΠ΄';
BANKgrid.Cells[2,0]:='ΠΠ΄ΡΠ΅Ρ ';
BANKgrid.Cells[3,0]: ='ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ';
BANKgrid.Cells[4,0]: ='ΠΠ°Π½ΠΊΠΎΠ²ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ ';
NDgrid.Cells[0,0]: ='ΠΠΎΠΌΠ΅Ρ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°';
NDgrid.Cells[1,0]: ='ΠΠ°ΡΠ° Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ';
NDgrid.Cells[2,0]: ='ΠΠ°ΡΠ° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ';
NDgrid.Cells[3,0]: ='Π’Π΅ΠΌΠ° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°';
NDgrid.Cells[4,0]: ='ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ';
NDgrid.Cells[5,0]:= 'ΠΠΎΠ»-Π²ΠΎ ΡΠ»Π΅Π½ΠΎΠ² ΠΠ’Π';
for i:=1 to 10 do
begin
for j:=1 to 7 do
XDgrid.Cells[j-1,i]: =XDar[(i-1)*7+j];
end;
for i:=1 to 15 do
begin
for j:=1 to 10 do
WTKgrid.Cells[j-1,i]: =WTKar[(i-1)*10+j];
end;
for i:=1 to 10 do
begin
for j:=1 to 5 do
BANKgrid.Cells[j-1,i]: =BANKar[(i-1)*5+j];
end;
end;
{ΠΠ°ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ²Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²ΠΈΠΈ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅}
procedure TForm1. FillArrays;
var i: integer;
begin
for i:=0 to 69 do
begin
XDar[i+1]: =XDgrid.Cells[(i mod 7),(i div 7)+1];
end;
for i:=0 to 149 do
begin
WTKar[i+1]: =WTKgrid.Cells[(i mod 10),(i div 10)+1];
end;
for i:=0 to 49 do
begin
BANKar[i+1]: =BANKgrid.Cells[(i mod 5),(i div 5)+1];
end;
end;
{Π‘ΠΎΡ ΡΠ°Π½ΠΈΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² ΡΠ°ΠΉΠ»}
procedure TForm1. SaveInFiles;
var
F:TextFile; // ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ»
i:integer;
begin
{XD.txt}
// ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ
AssignFile (F,'XD.txt');
Rewrite (F);
// ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΡΠ°ΠΉΠ»
for i:=1 to 70 do
WriteLn (F, XDar[i]);
CloseFile (F); // Π·Π°ΠΊΡΡΡΡ ΡΠ°ΠΉΠ»
{WTK.txt}
// ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ
AssignFile (F,'WTK.txt');
Rewrite (F);
// ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΡΠ°ΠΉΠ»
for i:=1 to 150 do
WriteLn (F, WTKar[i]);
CloseFile (F); // Π·Π°ΠΊΡΡΡΡ ΡΠ°ΠΉΠ»
{BANK.txt}
// ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ
AssignFile (F,'BANK.txt');
Rewrite (F);
// ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΡΠ°ΠΉΠ»
for i:=1 to 50 do
WriteLn (F, BANKar[i]);
CloseFile (F); // Π·Π°ΠΊΡΡΡΡ ΡΠ°ΠΉΠ»
end;
procedure TForm1. FormCreate (Sender: TObject);
begin
LoadFromFiles; // Π·Π°Π³ΡΡΠ·ΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° Π² ΠΌΠ°ΡΡΠΈΠ²Ρ
InitGrids; // ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ
FillNDgrid; // Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ²
end;
{ΠΡΡ ΠΎΠ΄}
procedure TForm1. N2Click (Sender: TObject);
begin
Halt;
end;
{Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ}
procedure TForm1. N3Click (Sender: TObject);
begin
FillArrays; // ΡΠ½Π°ΡΠ°Π»Π° Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ²Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²ΠΈΠΈ Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ
SaveInFiles; // ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΡ ΡΠ°Π½ΠΈΠΌ Π² ΡΠ°ΠΉΠ»
end;
{ΠΠΎΠΈΡΠΊ}
procedure TForm1. btnSearchClick (Sender: TObject);
var
myRect: TGridRect;
Grid: TStringGrid;
nCol, i, j:integer;
st:String;
begin
st:=txtSearch.Text; // ΡΡΡΠΎΠΊΠ° Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ°
// ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π°ΠΊΡΠΈΠ²Π½ΡΡ Π·Π°ΠΊΠ»Π°Π΄ΠΊΡ
case PageControl1. ActivePageIndex of
0: begin Grid:= XDgrid; nCol:=7; end;
1: begin Grid:=WTKgrid; nCol:=10; end;
2: begin Grid:=BANKgrid; nCol:=5; end;
end;
myRect.Left := 11;
myRect.Top := 11;
myRect.Right := 11;
myRect.Bottom := 11;
Grid.Selection:= myRect;
if (st=' ') or (st='') then exit;
// ΠΏΠΎΠΈΡΠΊ
for i:=1 to 10 do
for j:=0 to nCol-1 do
if Grid. Cells[j, i]=st then
begin
myRect.Left := j;
myRect.Top := i;
myRect.Right := j;
myRect.Bottom := i;
Grid.Selection := myRect;
exit;
end;
end;
{ΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ² Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²ΠΈΠΈ Ρ
XDgrid, WTKgrid, BANKgrid}
procedure TForm1. FillNDgrid;
var i, j, y, n: integer;
code:string;
st:string;
begin
j:=1;
for i:=1 to 10 do
if (XDGrid.Cells[5,i]='Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½') then
begin
NDgrid.Cells[0,j]: =XDGrid.Cells[0,i];
NDgrid.Cells[1,j]:=XDGrid.Cells[1,i];
NDgrid.Cells[2,j]:=XDGrid.Cells[2,i];
NDgrid.Cells[3,j]:=XDGrid.Cells[3,i];
NDgrid.Cells[4,j]:=XDGrid.Cells[4,i];
// ΡΠΎΡΡΠ°Π²ΠΈΠΌ ΠΊΠΎΠ΄ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°
code:= NDgrid. Cells[0,j]+'/'+ NDgrid. Cells[1,j][9]+ NDgrid. Cells[1,j][10];
// Π½Π°ΠΉΠ΄Π΅ΠΌ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΡΠΎΠΌ ΠΠ’Π
n:=0;
for y:=1 to 15 do
if (WTKgrid.Cells[4,y]=code) then inc (n);
str (n, st);
NDgrid.Cells[5,j]: =st;
inc (j);
end;
end;
{ΠΠ±Π½ΠΎΠ²ΠΈΡΡ — ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ²}
procedure TForm1. N4Click (Sender: TObject);
var i, j: integer;
begin
for i:=1 to 10 do
for j:=0 to 5 do
NDgrid.Cells[j, i]: ='';
FillNDgrid;
end;
{ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π°Π³Π° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ}
procedure TForm1. CheckBox1Click (Sender: TObject);
var opt: TGridOptions;
begin
opt:=XDgrid.Options;
if CheckBox1. Checked=false then
begin
Include (opt, goRowSelect);
Exclude (opt, goEditing);
btnDel.Enabled := true;
end
else
begin
Exclude (opt, goRowSelect);
Include (opt, goEditing);
btnDel.Enabled := false;
end;
XDgrid.Options := opt;
WTKgrid.Options := opt;
BANKgrid.Options := opt;
end;
{Π£Π΄Π°Π»ΠΈΡΡ}
procedure TForm1. btnDelClick (Sender: TObject);
var
myRect: TGridRect;
Grid: TStringGrid;
nCol, i, j:integer;
begin
// ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π°ΠΊΡΠΈΠ²Π½ΡΡ Π·Π°ΠΊΠ»Π°Π΄ΠΊΡ
case PageControl1. ActivePageIndex of
0: begin Grid:= XDgrid; nCol:=7; end;
1: begin Grid:=WTKgrid; nCol:=10; end;
2: begin Grid:=BANKgrid; nCol:=5; end;
end;
if (Grid.Row>0) and (Grid.Row<10) then
for i:=Grid.Row to 10 do
begin
for j:=0 to nCol-1 do
Grid.Cells[j, i]: =Grid.Cells[j, i+1];
end;
end;
{ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π°Π»ΡΠ½Π°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ°Π±Π»ΠΈΡΡ NDgrid ΠΏΠΎ Π²ΠΎΠ·ΡΠΎΡΡΠ°Π½ΠΈΡ}
procedure TForm1. Sort;
var
l, r: word;
x, n, n1,n2,c, y: integer;
s:string;
sr:SRow;
procedure Sift;
label l3;
var i, j, y:word;
begin
i:=l;j:=2*i;s:=NDgrid.Cells[5,i]; SaveRow (sr, i);
while j<=r do
begin
if j
begin
Val (NDgrid.Cells[5,j], n1, c);
Val (NDgrid.Cells[5,j+1], n2, c);
if n1
end;
Val (s, n1, c);
Val (NDgrid.Cells[5,j], n2, c);
if n1>=n2 then goto l3;
for y:=0 to 5 do
NDgrid.Cells[y, i]: =NDgrid.Cells[y, j];
i:=j; j:=2*i;
end;
l3:
for y:=0 to 5 do
begin
NDgrid.Cells[y, i]: =sr[y];
end;
end; // Sift
begin
n:=0;
for y:=1 to 10 do
if (NDgrid.Cells[5,y]<>'') and (NDgrid.Cells[5,y]<>' ') then
inc (n);
l:=(n div 2)+1;r:=n;
while l>1 do
begin
l:=l-1; Sift;
end;
while r>1 do
begin
SaveRow (sr, 1);
s:=NDgrid.Cells[5,1];
SweepRows (1,r);
r:=r-1; Sift;
end;
end; // Sort
{ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π°Π»ΡΠ½Π°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ°Π±Π»ΠΈΡΡ NDgrid ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ}
procedure TForm1. Sort2;
var
l, r: word;
x, n, n1,n2,c, y: integer;
s:string;
sr:SRow;
procedure Sift;
label l3;
var i, j, y:word;
begin
i:=l;j:=2*i;s:=NDgrid.Cells[5,i]; SaveRow (sr, i);
while j<=r do
begin
if j
begin
Val (NDgrid.Cells[5,j], n1, c);
Val (NDgrid.Cells[5,j+1], n2, c);
if n1>n2 then j:=j+1;
end;
Val (s, n1, c);
Val (NDgrid.Cells[5,j], n2, c);
if n1<=n2 then goto l3;
for y:=0 to 5 do
NDgrid.Cells[y, i]: =NDgrid.Cells[y, j];
i:=j; j:=2*i;
end;
l3:
for y:=0 to 5 do
begin
NDgrid.Cells[y, i]: =sr[y];
end;
end; // Sift
begin
n:=0;
for y:=1 to 10 do
if (NDgrid.Cells[5,y]<>'') and (NDgrid.Cells[5,y]<>' ') then
inc (n);
l:=(n div 2)+1;r:=n;
while l>1 do
begin
l:=l-1; Sift;
end;
while r>1 do
begin
SaveRow (sr, 1);
s:=NDgrid.Cells[5,1];
SweepRows (1,r);
r:=r-1; Sift;
end;
end; // Sort2
{ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΡΡΠΎΠΊΠΈ r1 ΠΈ r2 Π² ΡΠ°Π±Π»ΠΈΡΠ΅ NDgrid}
procedure TForm1. SweepRows (r1,r2:word);
var s: array [0.5] of String[30];
i:integer;
begin
for i:=0 to 5 do
s[i]: =NDgrid.Cells[i, r1];
for i:=0 to 5 do
NDgrid.Cells[i, r1]: =NDgrid.Cells[i, r2];
for i:=0 to 5 do
NDgrid.Cells[i, r2]: =s[i];
end;
{ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΡΠΎΠΊΡ Π½ΠΎΠΌΠ΅Ρ r ΡΠ°Π±Π»ΠΈΡΡ NDgrid Π² sr}
procedure TForm1. SaveRow (var sr: SRow;r:word);
var i: integer;
begin
for i:=0 to 5 do
sr[i]: =NDgrid.Cells[i, r];
end;
procedure TForm1. btnSort2Click (Sender: TObject);
begin
Sort;
end;
procedure TForm1. btnSort1Click (Sender: TObject);
begin
Sort2;
end;
end.