Π Π°Π±ΠΎΡΠ° Ρ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ Π½Π° Π΄Π²Π΅ ΡΠ°ΡΡΠΈ. Π Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΎΡΠΌΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΡΠ° ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ. ΠΠΈΠΆΠ½ΡΡ ΡΠ°ΡΡΡ ΡΠΎΡΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°Ρ. ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ, ΠΊΠ½ΠΎΠΏΠΊΠ° «Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ», Π° ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π°Π±ΠΎΡΠ° Ρ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
1. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
1.1 ΠΠ±ΡΠ΅Π΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°Ρ
1.1.1 ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ
1.1.2 Π‘ΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΠΏΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
1.1.3 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
1.1.4 ΠΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π° ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
1.1.5 ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
1.2 ΠΠ°ΡΡΠΈΠ²Ρ Π² Object Pascal
1.2.1 Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ
1.2.2 ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ
1.2.3 Π€ΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ
1.3 ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°
2. ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
2.1 ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
2.2 Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
2.3 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
2.3.1 ΠΠΎΠ΄ΡΠ»Ρ MatrixOperations
2.3.2 ΠΠΎΠ΄ΡΠ»Ρ fileIO
2.4 ΠΠΎΠ΄ΡΠ»Ρ form
3. ΠΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
3.1 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ
3.2 Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°
ΠΡΠ²ΠΎΠ΄Ρ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈΠ·ΠΈΡΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π·Π°Π΄Π°ΡΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ. ΠΠ°Π½Π½ΡΠΌΠΈ ΠΆΠ΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π²ΡΡ, ΡΡΠΎ Π½Π΅ Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π² ΡΠΎΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΡΠ·ΡΠΊΠ°Ρ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π°Π½Π½ΡΠ΅ Π²ΠΎΠΏΠ»ΠΎΡΠ°ΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .
Π§Π°ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌΠΈ Π²ΡΡΠ°ΡΡ Π·Π°Π΄Π°ΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΡΡΠ°Π·Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π°Π½Π½ΡΡ . Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΎΠ΄ΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ. ΠΠ»Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² — ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ (ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°) ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ².
ΠΠ°Π½Π½Π°Ρ ΠΊΡΡΡΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² ΡΡΠ΅Π΄Π΅ Delphi. ΠΠ½Π° Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ·ΡΠΊΠ°, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΈΡΠΎΠΊΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π°Π΄ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΠ±Ρ ΠΎΠ΄ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°, ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³.
1. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
1.1 ΠΠ±ΡΠ΅Π΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°Ρ
1.1.1 ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ
ΠΠ°ΡΡΠΈΠ² (ΠΈΠ»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²), ΡΡΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π΄ΡΡΠ³ Π·Π° Π΄ΡΡΠ³ΠΎΠΌ, Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ. ΠΠ°ΡΡΠΈΠ²Ρ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΌΠΈ, Ρ Π΄Π²ΡΠΌΡ — Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΈ Ρ. Π΄. ΠΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Π½Π΅ΡΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π²Π΅ΠΊΡΠΎΡΡ Π² ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅, Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ — ΠΌΠ°ΡΡΠΈΡΠ΅. ΠΠ°ΡΡΠΈΠ²Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡΠ°, ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠΈ (ΠΌΠ°ΡΡΠΈΠ²Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²), Π½Π°Π±ΠΎΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ, ΡΠ°Π±Π»ΠΈΡΡ Π΄Π°Π½Π½ΡΡ , ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΠ΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π½Π΅ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π² ΡΠ°ΠΊΠΈΡ ΠΎΠ±Π»Π°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ° Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½Π°Ρ Π³ΡΠ°ΡΠΈΠΊΠ°, Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π½Π°ΡΡΠ½ΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ², ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·. ΠΠ°ΡΡΠΈΠ²Ρ ΡΠ²Π»ΡΡΡΡΡ Π²Ρ ΠΎΠ΄Π½ΡΠΌΠΈ ΠΈ Π²ΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² (ΡΠ²ΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ, ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ Ρ. Π΄.) Π΅ΡΡΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ°Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΠΈΠΏΡ ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΈΠΏΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ/ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠΎΠΌ.
Π ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠΈΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ², ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΈΠΏΠ° «ΠΌΠ°ΡΡΠΈΠ²». Π ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ, ΡΠΈΠΏ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΠΈΠΏΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ². Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅-ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄Π½Ρ ΡΡΡΡΠΊΡΡΡΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ -ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ (ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ Π²ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°).
1.1.2 Π‘ΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΠΏΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ², ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ. ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π΅ ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΎΠ±ΡΡΠΌΡ Π΄Π°Π½Π½ΡΡ , Π° ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΠΎΠ±ΡΡΠΌΠ°ΠΌΠΈ. ΠΠ±ΡΡΠ½ΡΠ΅, Π½Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ Π½Π°Π·ΡΠ²Π°ΡΡ Π΅ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ.
ΠΠ΅ΡΠ΅ΡΠΎΠ³Π΅Π½Π½ΡΠΌ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ², Π² ΡΠ°Π·Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΡΡΠΈΠ², Ρ ΡΠ°Π½ΡΡΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ², Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π΅ΡΠ΅ΡΠΎΠ³Π΅Π½Π½ΡΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Ρ ΡΠ°Π½ΡΡΠΈΠ΅ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΡΠΈΠΏΡ — ΡΠΈΠΏΡ «ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ». ΠΠ΅ΡΠ΅ΡΠΎΠ³Π΅Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ ΡΠ΄ΠΎΠ±Π½Ρ ΠΊΠ°ΠΊ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ². ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π² ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΡ Π΅ΠΌ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π³Π΅ΡΠ΅ΡΠΎΠ³Π΅Π½Π½ΠΎΡΡΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ΅ ΡΠ·ΡΠΊΠ°.
ΠΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ².
1.1.3 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΈΠΏΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
ΠΠΎΠ΄ ΠΌΠ°ΡΡΠΈΠ² Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠΉ Π±Π»ΠΎΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ±ΡΡΠΌΠΎΠΌ
S*m1*m2*m3…mn,
Π³Π΄Π΅ S — ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π° m1…mn — ΡΠ°Π·ΠΌΠ΅ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² (ΡΠΎ Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ).
ΠΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° A[i1, i2, i3, … in] Π°Π΄ΡΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ
B+S*(i1p*m1+i2p*m2+…+i(n-1)p*mn-1+inp),
Π³Π΄Π΅ B — Π±Π°Π·Π° (Π°Π΄ΡΠ΅Ρ Π½Π°ΡΠ°Π»Π° Π±Π»ΠΎΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°), ikp-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ k-Π³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ΅ ΠΊ ΡΠ΅Π»ΠΎΠΌΡ Ρ Π½ΡΠ»Π΅Π²ΡΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. ΠΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ. Π Π°Π·Π»ΠΈΡΠ°ΡΡ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²: Ρ ΠΎΡΡΡΠ΅ΡΠΎΠΌ ΠΎΡ Π½ΡΠ»Ρ (zero-based), Ρ ΠΎΡΡΡΠ΅ΡΠΎΠΌ ΠΎΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ (one-based) ΠΈ Ρ ΠΎΡΡΡΠ΅ΡΠΎΠΌ ΠΎΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ (n-based).
ΠΡΡΡΠ΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Ρ Π½ΡΠ»Ρ Π±ΠΎΠ»Π΅Π΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ΅Π½ Π΄Π»Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΠ» ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π² ΡΠ·ΡΠΊΠ°Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π‘.
ΠΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠΈΠΏΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² — Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ Π³Π΅ΡΠ΅ΡΠΎΠ³Π΅Π½Π½ΡΠ΅ — ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅.
1.1.4 ΠΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π° ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
Β· ΠΡΡΡΡΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ, ΠΏΡΠΈΡΡΠΌ Π²ΡΠ΅ΠΌΡ Π΄ΠΎΡΡΡΠΏΠ° Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π΄Π»ΠΈΠ½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°
Β· ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π΄ΡΡΠ³ Π·Π° Π΄ΡΡΠ³ΠΎΠΌ, ΡΡΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ΅Π»ΠΈΠΊΠΎΠΌ
Β· ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ
1.1.5 ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
Β· Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° — ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π±Π΅Π· ΡΠ΄Π²ΠΈΠ³Π° Π΄ΡΡΠ³ΠΈΡ
Β· Π΄Π»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈ/ΠΈΠ»ΠΈ Π³Π΅ΡΠ΅ΡΠΎΠ³Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° — Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ΅ (ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ) Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΈ/ΠΈΠ»ΠΈ Π³Π΅ΡΠ΅ΡΠΎΠ³Π΅Π½Π½ΠΎΡΡΠΈ.
Β· ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ Π² ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ — ΡΠ³ΡΠΎΠ·Π° Π²ΡΡ ΠΎΠ΄Π° Π·Π° Π³ΡΠ°Π½ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ «ΡΡΠΆΠΈΡ » Π΄Π°Π½Π½ΡΡ
1.2 ΠΠ°ΡΡΠΈΠ²Ρ Π² Object Pascal
ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Array ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π΄Π°Π½Π½ΡΡ . Π Object Pascal ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
1.2.1 Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ
Π‘ΠΎΠ·Π΄Π°ΡΡΡΡ Ρ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌΠΈ, Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ. ΠΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΌΠΈ, ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠΌΠΈ — Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡ ΠΈΠ· ΡΠ΅Π±Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² (ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅).
ΠΠ΅Π»ΠΈΡΠΈΠ½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΡΠΎΡΠ΅ΡΠ°ΡΡΡΡ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°:
Β· Π’ΠΈΠΏ Index, Π³Π΄Π΅ Index — ΡΠ΅Π»ΡΠΉ ΡΠΈΠΏ, ΠΎΠ±ΡΡΠ½ΠΎ Byte ΠΈΠ»ΠΈ Word. ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠΈΠΏΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 0.255 Π΄Π»Ρ Byte
Β· Ordinal.Ordinal. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π·Π°Π΄Π°ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 12.44.
Β· ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
1 var
2 wordArray: Array[Word] of Integer; // ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°Π²Π΅Π½ High (Word)
3 multiArray: Array[Byte, 1.5] of char; // Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²
4 rangeArray: Array[5.20] of string; // ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°Π²Π΅Π½ 16
1.2.2 ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ
Π£ Π΄Π»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΏΠ°ΠΌΡΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ Π½Π΅ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ, ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ. Π£ ΡΠ°ΠΊΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ
SetLength(dynArray, 5);
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΄Π»ΠΈΠ½Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° dynArray Π² ΠΏΡΡΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°Ρ ΠΏΠ°ΠΌΡΡΡ. ΠΠ»Ρ Π²ΡΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ.
ΠΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ΄ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ ΡΡΡΠΈ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²:
1 var
2 byteArray: Array of Byte; // ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²
3 multiArray: Array of Array of string; // Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²
1.2.3 Π€ΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ
Copy (Source: array; StartIndex, Count: Integer): array — ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠΏΠΈΡ ΡΠ°ΡΡΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°.
High (type or variable): Ordinal type — Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²Π΅ΡΡ Π½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π°.
Length (const SourceArray: array): Integer — Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅.
Low (type or variable): Ordinal type — Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΈΠΆΠ½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π°
SetLength (var ArrayToChange: Array type; Dim1Length: Integer {;Dim2Length: Integer; …}) — ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ»Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π΄Π»ΠΈΠ½Ρ.
Slice (SourceArray: array; Count: Integer): array — ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°ΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ Π²ΡΠ·ΠΎΠ²Ρ SetLength Π²ΡΠ΄Π΅Π»ΡΡΡ Π΄Π»Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ nil.
1.3 ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² ΡΠ°ΠΌΠΊΠ°Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°
Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠ° ΠΈ ΠΌΠ΅Π½Π΅Π΅ Π·Π°ΡΡΠ°ΡΠ½Π° Π² ΠΏΠ»Π°Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, Π½ΠΎ ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² Π·Π°Π΄Π°Π½ΠΈΠΈ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ ΠΎΠ³ΠΎΠ²Π°ΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΌΠ°ΡΡΠΈΡ, ΡΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΈΠ½ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Ρ ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ².
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΆΠ΅ ΠΎΠ½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°. Π Π°Π·ΠΌΠ΅ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
2. ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
2.1 ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠ°ΡΡΠΈΡ. ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°, Π»ΠΈΠ±ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ°Π½ΠΈΡΠ½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ Π½Π° Π²Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΊΠΎΠ²Ρ:
Β· Π Π°Π·ΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π»Π΅ΠΆΠ°ΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ [1; 2 147 483 647]. ΠΡΠ»ΠΈ Π²Π²Π΅Π΄Π΅Π½ΠΎ ΡΠΈΡΠ»ΠΎ, Π²ΡΡ ΠΎΠ΄ΡΡΠ΅Π΅ ΠΈΠ· ΡΡΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Π»ΠΈΠ±ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½Π΅ ΡΠ²Π»ΡΡΡΠ΅Π΅ΡΡ ΡΠ΅Π»ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ, ΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π²Π½ΡΠΌ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅.
Β· ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π»Π΅ΠΆΠ°ΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ [-2 147 483 648; 2 147 483 647]. ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π»Π΅ΠΆΠΈΡ Π²Π½Π΅ ΡΡΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Π»ΠΈΠ±ΠΎ Π²Π²Π΅Π΄ΡΠ½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½Π΅ ΡΠ²Π»ΡΡΡΠ΅Π΅ΡΡ ΡΠ΅Π»ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ, ΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π²Π½ΡΠΌ Π½ΡΠ»Ρ.
Β· Π Π·Π°Π΄Π°Π½ΠΈΡΡ , ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠ΄ΡΡΡΡΠΎΠΌ ΡΡΠΌΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π»Π΅ΠΆΠ°ΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ [-9 223 372 036 854 775 808; 9 223 372 036 854 775 808]. ΠΡΠ»ΠΈ ΡΡΠΌΠΌΠ° Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΡΠΈ ΠΏΡΠ΅Π΄Π΅Π»Ρ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½.
2.2 Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° ΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ:
MatrixOperations — ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΌΠ°ΡΡΠΈΡΠ΅ΠΉ
fileIO — ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΡΡ Π² ΡΠ°ΠΉΠ»/ ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°
form — ΡΠΎΡΠΌΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠΎΡΠΌΡ. Π‘ΡΡΡΠΊΡΡΡΠ° ΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ°ΠΊΠΎΠ²Π°:
2.3 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
2.3.1 ΠΠΎΠ΄ΡΠ»Ρ MatrixOperations
ΠΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ.
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠΈΠΏΡ «ΠΌΠ°ΡΡΠΈΡΠ°» ΠΈ «Π²Π΅ΠΊΡΠΎΡ»:
1 type
2 TVector = array of integer;
3 TMatrix = array of TVector;
ΠΠΎΠΈΡΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΡΠ΅.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° GetMaxVals, ΠΊΠΎΡΠΎΡΠ°Ρ, ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Ρ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΌΠ°ΡΡΠΈΡΡ, Π½Π°Ρ ΠΎΠ΄ΠΈΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ² maxVal, Π° Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠ»Π±ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ² maxValCol. ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π½Π°ΠΌΡΡΡ Π΄Π»Ρ ΡΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ². ΠΠΈΡΡΠΈΠ½Π³:
1 {
2 ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² maxVal ΠΈ ΠΌΠ°ΡΡΠΈΠ² Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΡΡΠΎΠ»Π±ΡΠΎΠ²,
3 ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ maxValCol Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°ΡΡΠΈΡΡ arr
4 }
5 procedure GetMaxVals (var maxVal, maxValCol: TVector; const arr: TMatrix);
6 var
7 RowN, ColN, maxInRow: integer;
8 begin
9 //Π²ΡΠ΄Π΅Π»ΠΈΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠ±ΡΡΠΌ ΠΏΠ°ΠΌΡΡΠΈ
10 SetLength (maxVal, high (arr)+1);
11 SetLength (maxValCol, high (arr)+1);
12 for RowN:= low (arr) to high (arr) do
13 begin//Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ
14 maxVal[RowN]: = low (integer);//ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ -2 147 483 648
15 maxValCol[RowN]: = -1;//ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠ»Π±ΡΠ° Ρ ΠΌΠ°ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ -1
16 for ColN:= low (arr[RowN]) to high (arr[RowN]) do
17 begin//Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΡΠ°
18 if arr[RowN, ColN] > maxVal[RowN] then
19 begin//Π΅ΡΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΌΠ°ΠΊΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΎ
20 maxVal[RowN]: = arr[RowN, ColN]; //ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΡΠ°Π²Π½ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ
21 maxValCol[RowN]: = ColN;//Π½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠ»Π±ΡΠ° ΠΏΡΠΈΡΠ°Π²Π½ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΡΡΠΎΠ»Π±ΡΡ
22 end;
23 end;
24 end;
25 end;
Π‘ΡΠΌΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡΠΌΠΈ
ΠΠ°Π»Π΅Π΅ ΠΈΠ΄ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠΈΠ΅ ΠΏΠΎΠ΄ΡΡΡΡ ΡΡΠΌΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΡΠ΅ ΠΈ Π½ΠΈΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Π΅ΠΉ, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΡΠΌΠ΅Π½Ρ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΡΡ, ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, ΠΏΠΎΠ±ΠΎΡΠ½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ΄ΡΡ ΠΏΠΎ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΠΈΠ· Π½ΠΈΠΆΠ½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π° ΠΌΠ°ΡΡΠΈΡΡ.
Π€ΡΠ½ΠΊΡΠΈΠΈ GetSumAbove ΠΈ GetSumBelow ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ ΡΡΡΠΎΠΊ ΠΌΠ°ΡΡΠΈΡΡ, Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π²ΡΡΡΠΈΡΡΠ²Π°Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΡΠΎΠ»Π±ΡΠΎΠ², ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ:
1 {Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠΌΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Π΅ΠΉ ΠΌΠ°ΡΡΠΈΡΡ arr}
2 function GetSumAbove (const arr: TMatrix): Int64;
3 var
4 RowN, ColN: integer;
5 lastColumn: integer;//Π½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠ»Π±ΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΠΌΠΈΠ½ΡΡ 1
6 begin
7 Result:= 0;
8 for RowN:= 0 to (high (arr) div 2) do
9 begin//Ρ Π½ΡΠ»Π΅Π²ΠΎΠΉ, ΠΏΠΎ ΡΡΠ΅Π΄ΡΡ ΡΡΡΠΎΠΊΡ
10 lastColumn:= high (arr)-RowN-1;//ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠ»Π±ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠ΅Π³ΠΎ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
11 //Π΅ΡΠ»ΠΈ ΡΠΈΡΠ»ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² ΠΌΠ΅Π½ΡΡΠ΅ ΡΠΈΡΠ»Π° ΡΡΡΠΎΠΊ, ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΡΠΎΠ»Π±Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π±Π»ΠΈΠΆΠ΅
12 if lastColumn > high (arr[RowN]) then lastColumn:= high (arr[RowN]);
13 for ColN:= RowN+1 to lastColumn do //ΠΏΡΠΎΡΡΠΌΠΌΠΈΡΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² Π²ΡΡΡΠΈΡΠ°Π½ΡΡ ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ
14 Result:= Result + arr[RowN, ColN];
15 end;
16 end;
17 {Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠΌΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½ΠΈΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Π΅ΠΉ ΠΌΠ°ΡΡΠΈΡΡ arr}
18 function GetSumBelow (const arr: TMatrix): Int64;
19 var
20 RowN, ColN: integer;
21 lastColumn: integer;//Π½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠ»Π±ΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΠΌΠΈΠ½ΡΡ 1
22 begin
23 Result:= 0;
24 for RowN:= (high (arr) div 2)+1 to high (arr) do
25 begin//ΡΠΎ ΡΡΠ΅Π΄Π½Π΅ΠΉ ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ
26 lastColumn:= RowN-1;//ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠ»Π±ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠ΅Π³ΠΎ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
27 //Π΅ΡΠ»ΠΈ ΡΠΈΡΠ»ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² ΠΌΠ΅Π½ΡΡΠ΅ ΡΠΈΡΠ»Π° ΡΡΡΠΎΠΊ, ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΡΠΎΠ»Π±Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π±Π»ΠΈΠΆΠ΅
28 if lastColumn > high (arr[RowN]) then lastColumn:= high (arr[RowN]);
29 for ColN:= high (arr)-RowN+1 to lastColumn do //ΠΏΡΠΎΡΡΠΌΠΌΠΈΡΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² Π²ΡΡΡΠΈΡΠ°Π½ΡΡ ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ
30 Result:= Result + arr[RowN, ColN];
31 end;
32 end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° SwapAboveBelow ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ GetSumAbove, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π»Π΅ΠΆΠ°Ρ Π²ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Π΅ΠΉ, Π½ΠΎ Π½Π΅ ΡΡΠΌΠΌΠΈΡΡΠ΅Ρ ΠΈΡ , Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠ΅Π½ΡΠ΅Ρ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΡΠΎΠ»Π±ΡΠ°, ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Π΅ΡΡ Π½Π΅ΠΉ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ. ΠΠ»Ρ ΡΠΌΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° swap Π΄Π»Ρ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π», ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½Π°Ρ Π² ΡΡΠΎΠΌ ΠΆΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅:
1 {Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°: ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π΄Π²Π° ΡΠ΅Π»ΡΡ ΡΠΈΡΠ»Π°}
2 procedure swap (var first, second: integer);
3 var tmp: integer;
4 begin
5 tmp:= first;
6 first:= second;
7 second:= tmp;
8 end;
9 {ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΡΡΠ΅ ΠΈ Π½ΠΈΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Π΅ΠΉ ΠΌΠ°ΡΡΠΈΡΡ arr}
10 procedure SwapAboveBelow (var arr: TMatrix);
11 var
12 RowN, ColN: integer;
13 lastColumn: integer;//Π½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠ»Π±ΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΠΌΠΈΠ½ΡΡ 1
14 begin
15 for RowN:= 0 to (high (arr) div 2) do
16 begin//Ρ Π½ΡΠ»Π΅Π²ΠΎΠΉ, ΠΏΠΎ ΡΡΠ΅Π΄ΡΡ ΡΡΡΠΎΠΊΡ
17 lastColumn:= high (arr)-RowN-1;//ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠ»Π±ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠ΅Π³ΠΎ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
18 //Π΅ΡΠ»ΠΈ ΡΠΈΡΠ»ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² ΠΌΠ΅Π½ΡΡΠ΅ ΡΠΈΡΠ»Π° ΡΡΡΠΎΠΊ, ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΡΠΎΠ»Π±Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π±Π»ΠΈΠΆΠ΅
19 if lastColumn > high (arr[RowN]) then lastColumn:= high (arr[RowN]);
20 for ColN:= RowN+1 to lastColumn do//Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² Π²ΡΡΡΠΈΡΠ°Π½ΡΡ ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ
21 //ΠΏΠΎΠΌΠ΅Π½ΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΡΠΎΠ»Π±ΡΠ°, ΠΎΡΡΡΠ°ΡΡΠ΅ΠΌ Π½Π° ΡΠΎ ΠΆΠ΅ ΡΠΈΡΠ»ΠΎ ΡΡΡΠΎΠΊ, Π½ΠΎ ΠΎΡ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡΡ ΠΌΠ°ΡΡΠΈΡΡ
22 swap (arr[RowN, ColN], arr[high (arr) — RowN, ColN]);
23 end;
24 end;
Π¦ΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ ΡΡΡΠΎΠΊ
ΠΠ°Π»Π΅Π΅ ΡΡΠ½ΠΊΡΠΈΡ CircuarShift, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠ°Ρ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ ΡΡΡΠΎΠΊ ΠΌΠ°ΡΡΠΈΡΡ Π²Π²Π΅ΡΡ , ΠΈΠ»ΠΈ Π²Π½ΠΈΠ·. ΠΠ°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΄Π²ΠΈΠ³Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π±ΡΠ»Π΅Π²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ shiftUp, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅:
1 {
2 ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ ΡΡΡΠΎΠΊ ΠΌΠ°ΡΡΠΈΡΡ arr Π²Π²Π΅ΡΡ ΠΏΡΠΈ shiftUp = true,
3 ΠΈ Π²Π½ΠΈΠ·, ΠΏΡΠΈ shiftUp = false
4 }
5 procedure CircuarShift (var arr: TMatrix; shiftUp: boolean);
6 var
7 RowN: integer;
8 tmpRow: TVector;//Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ ΠΈΠ°ΡΡΠΈΡΡ
10 begin
12 if high (arr) < 1 then exit;//Π΅ΡΠ»ΠΈ Π² ΠΌΠ°ΡΡΠΈΡΠ΅ ΠΌΠ΅Π½ΡΡΠ΅ Π΄Π²ΡΡ ΡΡΡΠΎΠΊ — Π²ΡΡ ΠΎΠ΄ΠΈΠΌ
13 if shiftUp then
14 begin//Π΅ΡΠ»ΠΈ ΡΠ΄Π²ΠΈΠ³ Π²Π²Π΅ΡΡ
15 tmpRow:= arr[high (arr)]; //ΡΠΎΡ ΡΠ°Π½ΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΌΠ°ΡΡΠΈΡΡ
16 arr[high (arr)]: = arr[0]; //ΠΏΡΠΈΡΠ°Π²Π½ΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ
17 for rowN:= 0 to high (arr)-2 do
18 begin//Π΄Π»Ρ ΡΡΡΠΎΠΊ Ρ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΠΏΠΎ ΠΏΡΠ΅Π΄-ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ
19 arr[rowN]: = arr[rowN+1]; //ΡΠ΅ΠΊΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ° ΡΠ°Π²Π½Π° Π½ΠΈΠΆΠ½Π΅ΠΉ
20 end;
21 arr[high (arr)-1]: = tmpRow;//ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΏΡΠΈΡΠ°Π²Π½ΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ
22 end
23 else
24 begin//ΠΈΠ½Π°ΡΠ΅, Π΅ΡΠ»ΠΈ ΡΠ΄Π²ΠΈΠ³ Π²Π½ΠΈΠ·
25 tmpRow:= arr[0]; //ΡΠΎΡ ΡΠ°Π½ΠΈΠΌ Π½ΡΠ»Π²ΡΡ ΡΡΡΠΎΠΊΡ
26 arr[0]: = arr[high (arr)]; //ΠΏΡΠΈΡΠ°Π²Π½ΡΠ΅ΠΌ Π½ΡΠ»Π΅Π²ΡΡ ΡΡΡΠΎΠΊΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ
27 for rowN:= high (arr) downto 2 do
28 begin//Π΄Π»Ρ ΡΡΡΠΎΠΊ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΏΠΎ Π²ΡΠΎΡΡΡ
29 arr[RowN]: = arr[RowN-1]; //ΡΠ΅ΠΊΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ° ΡΠ°Π²Π½Π° Π²Π΅ΡΡ Π½Π΅ΠΉ
30 end;
31 arr[1]: = tmpRow;//ΠΏΠ΅ΡΠ²ΡΡ ΡΡΡΠΎΠΊΡ ΠΏΡΠΈΡΠ°Π²Π½ΡΠ΅ΠΌ Π½ΡΠ»Π΅Π²ΠΎΠΉ
32 end;
33 end;
«Π Π°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅» ΠΌΠ°ΡΡΠΈΡΡ
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° UnwindMatrix ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ «ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅» ΠΌΠ°ΡΡΠΈΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΈ. ΠΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π² ΡΠ²ΠΎΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ ΡΠ°Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΡΠ΅ΠΊΡΡΠ΅Π΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ ΠΎΠ΄Π° (ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ° TDirection), Π° ΡΠ°ΠΊ ΠΆΠ΅ Π³ΡΠ°Π½ΠΈΡΡ Π΅ΡΡ Π½Π΅ ΠΎΠ±ΠΎΠΉΠ΄ΡΠ½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΌΠ°ΡΡΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΆΠ°ΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅Π»Π°Ρ ΡΡΡΠΎΠΊΠ°, ΠΈΠ»ΠΈ ΡΡΠΎΠ»Π±Π΅Ρ. Π ΡΡΠΎΡ ΠΆΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΡΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ. ΠΠ±Ρ ΠΎΠ΄ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΈΡΠ»ΠΎ ΠΏΡΠΎΠΉΠ΄Π΅Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ°Π½Π΅Ρ ΡΠ°Π²Π½ΡΡΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΡΠ΅:
1 //ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ — Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
2 type TDirection = (down, right, up, left);
4 {ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ arr ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΈ ΠΈ Π½Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ² res}
5 procedure UnwindMatrix (const arr: TMatrix; var res: TVector);
6 var
7 count, cur: integer;//ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΡΠ΅ ΠΈ ΡΡΡΡΡΠΈΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
9 RowN, ColN: integer;
10 leftB, bottomB, rightB, topB: integer;//Π³ΡΠ°Π½ΠΈΡΡ ΠΎΠ±Ρ ΠΎΠ΄Π° — ΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΡΠΎΡ ΠΎΠ΄Π΅ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΡΡΠΎΠ»Π±ΡΠ°
11 direction: TDirection;//ΡΠ΅ΠΊΡΡΠ΅Π΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ ΠΎΠ΄Π°
13 begin
14 if (length (arr) = 0) or (length (arr[0]) = 0) then exit;//Π΅ΡΠ»ΠΈ Π² ΠΌΠ°ΡΡΠΈΡΠ΅ Π½Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² — Π²ΡΡ ΠΎΠ΄ΠΈΠΌ
15 count:= length (arr) * length (arr[0]);//ΠΏΠΎΠ΄ΡΡΠΈΡΠ°Π΅ΠΌ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΡΠ΅
16 SetLength (res, count);//Π²ΡΠ΄Π΅Π»ΠΈΠΌ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΡΡ
18 //Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΎΠ±Ρ ΠΎΠ΄Π°: ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ [0,0], Π³ΡΠ°Π½ΠΈΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ Π³ΡΠ°Π½ΠΈΡΡΠ°ΠΌΠΈ ΠΌΠ°ΡΡΠΈΡ, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ — Π²Π½ΠΈΠ·
19 direction:= down;
20 RowN:= 0;
21 ColN:= 0;
22 leftB:= 0;
23 bottomB:= high (arr);
24 rightB:= high (arr[0]);
25 topB:= 0;
27 for cur:= 0 to count-1 do
28 begin//ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΎΠΉΠ΄ΡΠΌ count ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
29 res[cur]: = arr[RowN, ColN]; //Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΌΠ°ΡΡΠΈΠ²
30 //Π΄Π°Π»ΡΠ½Π΅Π½ΠΉΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ±Ρ ΠΎΠ΄Π°
31 case direction of
32 down://Π΅ΡΠ»ΠΈ Π²Π½ΠΈΠ·
33 if RowN < bottomB then inc (RowN)//Π΅ΡΠ»ΠΈ Π½Π΅ Π΄ΠΎΡΠ»ΠΈ Π΄ΠΎ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡΡ — ΡΠ΄Π²ΠΈΠ³Π°Π΅ΠΌΡΡ Π²Π½ΠΈΠ·
34 else
35 begin//ΠΈΠ½Π°ΡΠ΅ — ΠΏΡΠΎΡΠ»ΠΈ Π»Π΅Π²ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ
36 direction:= right;//ΡΠΌΠ΅Π½ΠΈΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° «Π²ΠΏΡΠ°Π²ΠΎ»
37 inc (leftB);//ΡΠ΄Π²ΠΈΠ½Π΅ΠΌ Π»Π΅Π²ΡΡ Π³ΡΠ°Π½ΠΈΡΡ ΠΊ ΡΠ΅Π½ΡΡΡ
38 inc (ColN);//ΡΠ΄Π²ΠΈΠ½Π΅ΠΌΡΡ Π²ΠΏΡΠ°Π²ΠΎ
39 end;
41 right://Π΅ΡΠ»ΠΈ Π²ΠΏΡΠ°Π²ΠΎ
42 if ColN < rightB then inc (ColN)//Π΅ΡΠ»ΠΈ Π½Π΅ Π΄ΠΎΡΠ»ΠΈ Π΄ΠΎ ΠΏΡΠ°Π²ΠΎΠΉ Π³ΡΠ°Π½ΠΈΡΡ — ΡΠ΄Π²ΠΈΠ³Π°Π΅ΠΌΡΡ Π²ΠΏΡΠ°Π²ΠΎ
43 else
44 begin//ΠΈΠ½Π°ΡΠ΅ — ΠΏΡΠΎΡΠ»ΠΈ Π½ΠΈΠΆΠ½ΡΡ ΡΡΡΠΎΠΊΡ
45 direction:= up;//ΡΠΌΠ΅Π½ΠΈΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° «Π²Π²Π΅ΡΡ »
46 dec (bottomB);//ΡΠ΄Π²ΠΈΠ½Π΅ΠΌ Π½ΠΈΠΆΠ½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ ΠΊ ΡΠ΅Π½ΡΡΡ
47 dec (RowN);//ΡΠ΄Π²ΠΈΠ½Π΅ΠΌΡΡ Π²Π²Π΅ΡΡ
48 end;
50 up://Π΅ΡΠ»ΠΈ Π²Π²Π΅ΡΡ
51 if RowN > topB then dec (RowN)//Π΅ΡΠ»ΠΈ Π½Π΅ Π΄ΠΎΡΠ»ΠΈ Π΄ΠΎ Π²Π΅ΡΡ Π½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡΡ — ΡΠ΄Π²ΠΈΠ³Π°Π΅ΠΌΡΡ Π²Π²Π΅ΡΡ
52 else
53 begin//ΠΈΠ½Π°ΡΠ΅ — ΠΏΡΠΎΡΠ»ΠΈ ΠΏΡΠ°Π²ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ
54 direction:= left;//ΡΠΌΠ΅Π½ΠΈΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° «Π²Π»Π΅Π²ΠΎ»
55 dec (rightB);//ΡΠ΄Π²ΠΈΠ½Π΅ΠΌ ΠΏΡΠ°Π²ΡΡ Π³ΡΠ°Π½ΠΈΡΡ ΠΊ ΡΠ΅Π½ΡΡΡ
56 dec (ColN);//ΡΠ΄Π²ΠΈΠ½Π΅ΠΌΡΡ Π²Π»Π΅Π²ΠΎ
57 end;
59 left://Π΅ΡΠ»ΠΈ Π²Π»Π΅Π²ΠΎ
60 if ColN > leftB then dec (ColN)//Π΅ΡΠ»ΠΈ Π½Π΅ Π΄ΠΎΡΠ»ΠΈ Π΄ΠΎ Π»Π΅Π²ΠΎΠΉ Π³ΡΠ°Π½ΠΈΡΡ — ΡΠ΄Π²ΠΈΠ³Π°Π΅ΠΌΡΡ Π²Π»Π΅Π²ΠΎ
61 else
62 begin//ΠΈΠ½Π°ΡΠ΅ — ΠΏΡΠΎΡΠ»ΠΈ Π²Π΅ΡΡ Π½ΡΡ ΡΡΡΠΎΠΊΡ
63 direction:= down;//ΡΠΌΠ΅Π½ΠΈΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° «Π²Π½ΠΈΠ·»
64 inc (topB);//ΡΠ΄Π²ΠΈΠ½Π΅ΠΌ Π²Π΅ΡΡ Π½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ ΠΊ ΡΠ΅Π½ΡΡΡ
65 inc (RowN);//ΡΠ΄Π²ΠΈΠ½Π΅ΠΌΡΡ Π²Π½ΠΈΠ·
66 end;
67 end;
68 end;
69 end;
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΡΡΠΎΠΊ ΠΌΠ°ΡΡΠΈΡΡ
ΠΠ°ΠΊΠΎΠ½Π΅Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ ΠΌΠ°ΡΡΠΈΡΡ ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ ΡΡΠΌΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ getRowSum Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠΌΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
1 {Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠΌΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² RowN-ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΌΠ°ΡΡΠΈΡΡ arr}
2 function getRowSum (const arr: TMatrix; RowN: integer): Int64;
3 var ColN: integer;
4 begin
5 Result:= 0;
6 if RowN > high (arr) then exit;//Π΅ΡΠ»ΠΈ Π² ΠΌΠ°ΡΡΠΈΡΠ΅ Π½Π΅Ρ RowN-ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ — Π²ΡΡ ΠΎΠ΄ΠΈΠΌ
7 for ColN:= 0 to high (arr[RowN]) do//ΡΡΠΌΠΌΠΈΡΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΡΠΎΠΊΠΈ
8 Result:= Result + arr[RowN, ColN];
9 end;
Π‘Π°ΠΌΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ SortRows. ΠΡΠ» Π²ΡΠ±ΡΠ°Π½ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΡΠΌΠΎΠΉ Π²ΡΡΠ°Π²ΠΊΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΈΡΠ»ΠΎ ΡΡΡΠΎΠΊ Π² ΠΌΠ°ΡΡΠΈΡΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌ, Π° ΡΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ Π½Π°Π±ΠΎΡΠ°Ρ Π΄Π°Π½Π½ΡΡ . Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΡΡΡΡΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π΅ ΠΌΠ΅ΡΡ ΡΡΡΠΎΠΊ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ. ΠΠΈΡΡΠΈΠ½Π³ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ:
1 {ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ ΠΌΠ°ΡΡΠΈΡΡ ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ ΡΡΠΌΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ}
2 procedure SortRows (var arr: TMatrix);
3 var
4 i, k: integer;//ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ
5 tmpRow: TVector;//Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄Π»Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ
6 begin
7 //Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΏΡΡΠΌΠΎΠΉ Π²ΡΡΠ°Π²ΠΊΠΈ
8 for i:= 1 to high (arr) do
9 begin//Π΄Π»Ρ ΡΡΡΠΎΠΊ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ
10 k:= i;//Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ
11 while (k > 0) and (getRowSum (arr, k) > getRowSum (arr, k-1)) do
12 begin//ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΡΠ»ΠΈ Π΄ΠΎ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΈ ΡΡΠΌΠΌΠ° ΡΡΡΠΎΠΊΠΈ Π½Π°Π΄ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΎΠΉ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΠΌΠΌΡ
13 swap (arr[k-1], arr[k]);//ΠΏΠΎΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΡΡ ΡΡΡΠΎΠΊΡ ΠΈ ΡΡΡΠΎΠΊΡ Π½Π°Π΄ Π½Π΅ΠΉ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ
14 dec (k);//ΡΠ΄Π²ΠΈΠ½Π΅ΠΌΡΡ Π²Π²Π΅ΡΡ
15 end;
16 end;
17 end;
2.3.2 ΠΠΎΠ΄ΡΠ»Ρ fileIO
ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° ΠΌΠ°ΡΡΠΈΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΊΡΡΡΡ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΊ ΡΡΠ΅Π½ΠΈΡ/Π·Π°ΠΏΠΈΡΠΈ.
Π€ΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»Π°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°ΠΊΠΎΠ²: ΠΌΠ°ΡΡΠΈΡΠ° Π·Π°ΠΏΠΈΡΠ°Π½Π° ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π·Π°ΠΏΠΈΡΠ°Π½Ρ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ². ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠ°ΠΉΠ» ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Write2DArray:
1 {
2 Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΡΡ arr Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» outFile. Π€Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ
3 ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΊΡΡΡ
4 }
5 procedure Write2DArray (const arr: TMatrix; const outFile: TextFile);
6 var
7 rowN, colN: integer;
8 begin
9 for rowN:= low (arr) to high (arr) do
10 begin
11 for colN:= low (arr[rowN]) to high (arr[rowN]) do
12 begin
13 //ΡΠΈΡΠΈΠ½Π° ΠΏΠΎΠ»Ρ 12, ΡΠ°ΠΊ ΠΊΠ°ΠΊ -2 147 483 648 — 11 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
14 Write (outFile, arr[rowN, colN]: 12);
15 end;
16 Writeln (outFile);
17 end;
18 end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Read2DArray ΡΠΈΡΠ°Π΅Ρ ΡΠ°ΠΉΠ» ΠΏΠΎ ΡΡΡΠΎΠΊΠ°ΠΌ, ΡΠ°Π·Π±ΠΈΡΠ°Ρ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΡΠΎΠΊΡ Π½Π° ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠ° ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ExtractStrings:
1 { ΡΠΈΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΡΡ arr ΠΈΠ· ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° inFile. Π€Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ
2 ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΊΡΡΡ}
3 procedure Read2DArray (var arr: TMatrix; const inFile: TextFile);
4 var
5 rowN, colN: integer;
6 colCount: integer; //ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΡΠ΅Π» Π² ΡΡΡΠΎΠΊΠ΅ (ΡΠΈΡΠ»ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΡΡ)
7 lineStr: string; //ΡΠ΅ΠΊΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°
8 strNumbers: TStringList;//ΡΠ΅ΠΊΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°, ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π½Π°Ρ Π½Π° ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ
9 begin
10 rowN:= 0;
11 colCount:= 0;
12 strNumbers:= TStringList. Create;
13 arr:= nil;
14 while not Eof (inFile) do
15 begin
16 Readln (inFile, lineStr);
17 strNumbers. Clear;
18 ExtractStrings ([' '], [], PChar (lineStr), strNumbers); //ΡΠ°Π·Π΄Π΅Π»ΠΈΠΌ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ Π½Π° ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ
19 if colCount < strNumbers. Count then colCount:= strNumbers. Count;
20 SetLength (arr, rowN+1, colCount);//Π²ΡΠ΄Π΅Π»ΠΈΠΌ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΠ΄ Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ
21 for colN:= 0 to strNumbers. Count-1 do //Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π² ΡΡΡΠΎΠΊΠ΅
22 arr[rowN, colN]: = StrToIntDef (strNumbers[colN], 0);
23 Inc (rowN);
24 end;
25 strNumbers. Destroy;
26 end;
2.3.3 ΠΠΎΠ΄ΡΠ»Ρ form
ΠΠΎΠ΄ΡΠ»Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΎΡΠΌΡ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ, ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΡΠΌΡ, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΡΡ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π·Π°Π΄Π°ΡΠ° ΡΡΡΠΊΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° Π·Π°Π΄Π°Π½ΠΈΡ, ΠΎΠΏΠ΅ΡΠΈΡΡΡΡΠΈΠ΅ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ (ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΌ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ), Π±ΡΠ»ΠΎ ΠΏΡΠΈΠ½ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π΄Π²Π΅ ΡΠ°ΡΡΠΈ. Π Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΎΡΠΌΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΡΠ° ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ. ΠΠΈΠΆΠ½ΡΡ ΡΠ°ΡΡΡ ΡΠΎΡΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°Ρ. ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ, ΠΊΠ½ΠΎΠΏΠΊΠ° «Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ», Π° ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠΎΡΡΠΎΡΡ Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΎΡΠΌΡ. ΠΡΠ΅Π³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΡΠΈ ΡΠΏΠΎΡΠΎΠ±Π° Π²ΡΠ±ΡΠ°ΡΡ Π·Π°Π΄Π°ΡΡ: ΡΡΠ»ΠΊΠ½ΡΡΡ ΠΌΡΡΠΊΠΎΠΉ ΠΏΠΎ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅, Π²ΡΠ±ΡΠ°ΡΡ Π½ΡΠΆΠ½ΡΠΉ ΠΏΡΠ½ΠΊΡ Π² ΠΌΠ΅Π½Ρ «ΠΠ°Π΄Π°ΡΠΈ», Π½Π°ΠΆΠ°ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΊΠ½ΠΎΠΏΠΎΠΊ F1 — F5.
ΠΠΏΠΈΡΠ΅ΠΌ Π²Π°ΠΆΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΎΡΠΌΡ. ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ReadMatrix ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π½Π° ΡΠΎΡΠΌΠ΅ Π² Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ². ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°:
1 {Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠ°ΡΡΠΈΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ Π½Π° ΡΠΎΡΠΌΠ΅}
2 procedure TMainForm. ReadMatrix;
3 var rowN, colN: integer;
4 begin
5 SetLength (workMatrix, G_Matrix.RowCount-1, G_Matrix.ColCount-1);
6 for rowN:= 0 to G_Matrix.RowCount-2 do
7 for colN:= 0 to G_Matrix.ColCount-2 do
8 workMatrix[rowN, colN]: = StrToIntDef (G_Matrix.Cells[colN+1, rowN+1], 0);
9 end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° writeMatrix ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΎΠ½Π° Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠ»Ρ ΡΠ°Π±Π»ΠΈΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ. ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ½Π° ΠΌΠ΅Π½ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ»Π° ΡΡΡΠΎΠΊ ΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°:
1 {Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π½Π° ΡΠΎΡΠΌΠ΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΡΡ}
2 procedure TMainForm. writeMatrix;
3 var rowN, colN: integer;
4 begin
5 G_Matrix.Cells[1, 1]: = '';//Π΅ΡΠ»ΠΈ ΠΌΠ°ΡΡΠΈΡΠ° ΠΏΡΡΡΠ°
6 E_RowsN.Text:= IntToStr (high (workMatrix) + 1);
7 if (E_RowsN.Text <> '0') then
8 E_ColsN.Text:= IntToStr (high (workMatrix[low (workMatrix)]) + 1)
9 else E_ColsN.Text:= '0';
10 B_SetDimmsClick (self);
11 //Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ
12 for rowN:= low (workMatrix) to high (workMatrix) do
13 for colN:= low (workMatrix[rowN]) to high (workMatrix[rowN]) do
14 G_Matrix.Cells[colN+1, rowN+1]: = IntToStr (workMatrix[rowN, colN]);
15 end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° B_SetDimmsClick ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π·Π°Π΄Π°ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ». ΠΠ½Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π½Π΅ ΡΡΠ°Π»ΠΈ Π»ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΌΠ΅Π½ΡΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΡ, ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΈΡΠ»ΠΎ ΡΡΡΠΎΠΊ ΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ ΡΠΎΡΠΌΡ, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½ΠΎΠΌΠ΅ΡΠ° ΡΡΡΠΎΠΊ ΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ²:
1 {ΠΎΠ±ΡΠ°ΡΠΎΡΡΠΈΠΊ ΡΡΡΠ²Π½ΠΎΠ²ΠΊΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΡΡ}
2 procedure TMainForm. B_SetDimmsClick (Sender: TObject);
3 var
4 i: integer;
5 RowsN, ColsN: integer;
6 begin
7 //Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ 1
8 RowsN:= StrToIntDef (E_RowsN.Text, 0);
9 if RowsN < 1 then begin RowsN:= 1; E_RowsN.Text:= '1' end;
10 ColsN:= StrToIntDef (E_ColsN.Text, 0);
11 if ColsN < 1 then begin ColsN:= 1; E_ColsN.Text:= '1' end;
12 //ΡΠΈΡΠ»ΠΎ ΡΡΡΠΎΠΊ ΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π² ΡΠ°Π±Π»ΠΈΡΠ΅, ΡΡΠΈΡΡΠ²Π°Ρ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ ΠΈ ΡΡΡΠΎΠΊΡ Ρ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ
13 G_Matrix.RowCount:= RowsN + 1;
14 G_Matrix.ColCount:= ColsN + 1;
15 //Π² ΡΡΠΈΡ ΡΠ°Π±Π»ΠΈΡΠ°Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ
16 G_Task1B.RowCount:= RowsN;
17 G_Task1C.RowCount:= RowsN;
18 //ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· ΡΠ΅ΡΠ²ΡΡΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ Π΄Π»ΠΈΠ½Ρ, ΡΠ°Π²Π½ΡΡ ΡΠΈΡΠ»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ
19 G_Task4.ColCount:= RowsN * ColsN;
20 //ΡΠ°ΡΡΡΠ°Π²ΠΈΠΌ Π½ΠΎΠΌΠ΅ΡΠ° ΡΡΡΠΎΠΊ ΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ²
21 for i:= 0 to RowsN do
22 begin
23 G_Matrix.Cells[0, i+1]: = IntToStr (i+1);
24 G_Task1B.Cells[0, i]: = IntToStr (i+1);
25 G_Task1C.Cells[0, i]: = IntToStr (i+1);
26 end;
27 for i:= 0 to ColsN do
28 G_Matrix.Cells[i+1, 0]: = IntToStr (i+1);
29 for i:= 0 to RowsN * ColsN do
30 G_Task4.Cells[i, 0]: = IntToStr (i+1);
31 G_Matrix.Refresh;
32 end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° FormDestroy Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠΎΡΠΌΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ — ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΏΠ°ΠΌΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ΄Π΅Π»ΡΠ»Π°ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ ΠΌΠ°ΡΡΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° saveClick ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΡΠ΅Π»ΡΠΊΠ° ΠΏΠΎ ΠΏΡΠ½ΠΊΡΡ ΠΌΠ΅Π½Ρ Π€Π°ΠΉΠ»->Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ. ΠΠ½Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ Π²ΡΠ±ΠΎΡΠ° ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ», Π° ΠΏΠΎΡΠ»Π΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠΈ Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ:
1 {ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π€Π°ΠΉΠ»->Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ}
2 procedure TMainForm. saveClick (Sender: TObject);
3 var
4 outFile: TextFile;
5 begin
6 //ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ Π²ΡΠ±ΠΎΡΠ° ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΎΡΠΌΠ΅Π½Π° — Π²ΡΡ ΠΎΠ΄ΠΈΠΌ
7 if SaveDialog. Execute = false then exit;
8 AssignFile (outFile, SaveDialog. Files[0]);
9 ReWrite (outFile);//ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°ΠΉΠ»
10 readMatrix;//ΠΏΡΠΎΡΡΡΠΌ ΠΌΠ°ΡΡΠΈΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ
11 Write2DArray (workMatrix, outFile);//Π·Π°ΠΏΠΈΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΡΡ Π² ΡΠ°ΠΉΠ»
12 CloseFile (outFile);//Π·Π°ΠΊΡΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ».
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° loadClick Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΡΠ°ΠΊ ΠΆΠ΅, ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ», Π° ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ:
1 {ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π€Π°ΠΉΠ»->ΠΠ°Π³ΡΡΠ·ΠΈΡΡ}
2 procedure TMainForm. loadClick (Sender: TObject);
3 var
4 inFile: TextFile;
5 begin
6 //ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ Π²ΡΠ±ΠΎΡΠ° ΡΠ°Π»Π° Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, Π΅ΡΠ»ΠΈ ΠΎΡΠΌΠ΅Π½Π° — Π²ΡΡ ΠΎΠ΄ΠΈΠΌ
7 if OpenDialog. Execute = false then exit;
8 AssignFile (inFile, OpenDialog. Files[0]);
9 Reset (inFile);//ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠΌ ΡΠ°ΠΉΠ» ΠΊ ΡΡΠ΅Π½ΠΈΡ
10 Read2DArray (workMatrix, inFile);//ΠΏΡΠΎΡΡΡΠΌ ΠΌΠ°ΡΡΠΈΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°
11 writeMatrix;//ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠΌ ΠΌΠ°ΡΡΠΈΡΡ
12 CloseFile (inFile);//Π·Π°ΠΊΡΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ»
13 end;
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Π½Π°ΠΏΠΎΠ»Π½ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΎΡΠΌΡ, Π° Π² ΠΊΠΎΠ½ΡΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ°ΠΌΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ²Π°Ρ Π±ΡΠ»Π° Π²ΡΠ΄Π΅Π»Π΅Π½Π° Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ.
2.4 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΡΠΌΠ°ΡΠ° ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠ°ΡΡΠΈΡΠ° Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΌΠ°ΡΡΠΈΡΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΡΠΎΠΊΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ² ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ΅Π»ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ, Π»Π΅ΠΆΠ°ΡΠΈΠΌ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ [-2 147 483 648; 2 147 483 647]. ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° Π³ΡΠ°Π½ΠΈΡΡ ΡΡΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Π»ΠΈΠ±ΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π»ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ, ΡΠΎ ΠΎΠ½ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π½ΠΎΠ»Ρ.
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°:
100 000 10 000 20 000 40 000 -4000
50 100 -20 1000 2000
— 100 -50 -20 0 20
— 1000 -200 200 2 12
4000 -100 000 -40 000 -10 000 80 000
3. ΠΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
3.1 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π°Π΄ ΠΌΠ°ΡΡΠΈΡΠ°ΠΌΠΈ. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π° IBM-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Windows (ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π½Π° Windows XP).
ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
Β· ΠΠΈΡΠΏΠ»Π΅ΠΉ Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ 1024×768
Β· ΠΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°
Β· 10 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΡ ΠΎΠ΄Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΉΠ»Ρ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΠΏΡΠ½ΠΊΡΠ΅ 3.4. Π’Π°ΠΊ ΠΆΠ΅ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π²Π΅ΡΡΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΌΠ°ΡΡΠΈΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠ°Π±Π»ΠΈΡΡ Π½Π° ΡΠΎΡΠΌΠ΅.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΡΡ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ ΡΠΎΡΠΌΡ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ Π·Π°Π΄Π°Π½ΠΈΡ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ (ΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°)
3.2 Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ Π½Π° Π΄Π²Π΅ ΡΠ°ΡΡΠΈ. Π Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΎΡΠΌΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΡΠ° ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ. ΠΠΈΠΆΠ½ΡΡ ΡΠ°ΡΡΡ ΡΠΎΡΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°Ρ. ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ, ΠΊΠ½ΠΎΠΏΠΊΠ° «Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ», Π° ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠΎΡΡΠΎΡΡ Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΎΡΠΌΡ. ΠΡΠ΅Π³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΡΠΈ ΡΠΏΠΎΡΠΎΠ±Π° Π²ΡΠ±ΡΠ°ΡΡ Π·Π°Π΄Π°ΡΡ: ΡΡΠ»ΠΊΠ½ΡΡΡ ΠΌΡΡΠΊΠΎΠΉ ΠΏΠΎ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅, Π²ΡΠ±ΡΠ°ΡΡ Π½ΡΠΆΠ½ΡΠΉ ΠΏΡΠ½ΠΊΡ Π² ΠΌΠ΅Π½Ρ «ΠΠ°Π΄Π°ΡΠΈ», Π½Π°ΠΆΠ°ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΊΠ½ΠΎΠΏΠΎΠΊ F1 — F5.
ΠΡΠΊΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ:
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ № 1:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ № 1:
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ Π·Π°Π΄Π°ΡΠ΅ № 3:
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ № 3:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π²ΡΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ № 3:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ № 2:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ № 5:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ № 4:
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ Π² ΡΠ°ΠΉΠ»:
ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°:
100 000 10 000 20 000 40 000 -4000
50 100 -20 1000 2000
— 100 -50 -20 0 20
— 1000 -200 200 2 12
4000 -100 000 -40 000 -10 000 80 000
ΠΡΠ²ΠΎΠ΄Ρ
ΠΠ²ΡΠΌΠ΅ΡΠ½ΡΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ² — ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½Π°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ, ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ. ΠΠΎ ΠΏΡΠΈ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π½ΡΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΡΠΌ ΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ:
Β· ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ SetLength Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ ΠΏΠ΅ΡΠ²ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΡΠ΄Π΅Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΎ ΡΠΈΡΠ»ΠΎ ΡΡΡΠΎΠΊ Π² ΠΌΠ°ΡΡΠΈΡΠ΅), ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ Π·Π°ΡΡΠΎΠ½ΡΡΡ Π½Π΅ Π±ΡΠ΄ΡΡ (Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π±ΡΠ΄Π΅Ρ Π½ΠΎΠ»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²).
Β· ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ΄ΠΌΠ°ΡΡΠΈΠ² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΌΠ°ΡΡΠΈΡΡ Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄Π»ΠΈΠ½Ρ, ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ )
Β· ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ΅Π³Π΄Π° Π·Π½Π°ΡΡ Π³ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎΠ±Ρ Π½Π΅ Π²ΡΠΉΡΠΈ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΡΡΠΆΡΡ ΠΏΠ°ΠΌΡΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ low ΠΈ high.
Β· ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ.
Β· ΠΡΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡΡΡ Π»ΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ Π΄Π²Π° ΠΌΠ°ΡΡΠΈΠ²Π° Π±ΡΠ΄ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΏΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Copy.
Β· Copy ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ Π½Π΅ Π²Π΅ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1. Π’Π΅ΡΡΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ
Π’Π΅ΡΡ 1: ΠΠ²Π°Π΄ΡΠ°ΡΠ½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ° 5x5.
ΠΡΡ ΠΎΠ΄Π½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ°:
— 100 -50 -20 0 20
50 100 200 1000 2000
4000 10 000 20 000 40 000 80 000
100 000 -100 000 -40 000 -10 000 -4000
— 1000 -200 -20 2 12
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ ΡΡΡΠΎΠΊΠ°ΠΌ: 20; 2000; 80 000; 100 000; 12
Π‘ΡΠΎΠ»Π±ΡΡ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ: 5; 5; 5; 1; 5
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠΎΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
S1 = 130
S2 = -40 218
S1 > S2, ΠΌΠ°ΡΡΠΈΡΠ° Π½Π΅ Π±ΡΠ»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
Π§ΠΈΡΠ»ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π½Π΅ΡΡΡΠ½ΠΎ — Π±ΡΠ» ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄ΡΠ½ ΡΠ΄Π²ΠΈΠ³ «Π²Π½ΠΈΠ·»
— 1000 -200 -20 2 12
— 100 -50 -20 0 20
50 100 200 1000 2000
4000 10 000 20 000 40 000 80 000
100 000 -100 000 -40 000 -10 000 -4000
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²ΡΡΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
ΠΠ°ΡΡΠΈΡΠ°, «ΡΠ°Π·Π²ΡΡΠ½ΡΡΠ°Ρ» ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΈ: -100; 50; 4000; 100 000; -1000; -200; -20; 2; 12; -4000; 80 000; 2000; 20; 0; -20; -50; 100; 10 000; -100 000; -40 000; -10 000; 40 000; 1000; 200; 20 000
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
Π‘ΡΡΠΎΠΊΠΈ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ Π² Π½Π΅Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΡΠΌΠΌ:
4000 10 000 20 000 40 000 80 000
50 100 200 1000 2000
— 100 -50 -20 0 20
— 1000 -200 -20 2 12
100 000 -100 000 -40 000 -10 000 -4000
Π’Π΅ΡΡ 2: ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ° 3x8.
ΠΡΡ ΠΎΠ΄Π½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ°:
1 — 18 17 -16 15 -14 13 -12
— 2 19 20 2000 200 000 20 000 000 2 000 000 000 11
3 -4 5 -6 7 -8 9 -10
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ ΡΡΡΠΎΠΊΠ°ΠΌ: 17; 2 000 000 000; 9
Π‘ΡΠΎΠ»Π±ΡΡ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ: 3; 7; 7
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠΎΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
S1 = -18 S2 = -4
S1 < S2, ΠΌΠ°ΡΡΠΈΡΠ° Π±ΡΠ»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π°:
1 -4 17 -16 15 -14 13 -12
— 2 19 20 2000 200 000 20 000 000 2 000 000 000 11
3 -18 5 -6 7 -8 9 -10
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
Π§ΠΈΡΠ»ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² ΡΡΡΠ½ΠΎ — Π±ΡΠ» ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄ΡΠ½ ΡΠ΄Π²ΠΈΠ³ «Π²Π²Π΅ΡΡ »
— 2 19 20 2000 200 000 20 000 000 2 000 000 000 11
3 -18 5 -6 7 -8 9 -10
1 -4 17 -16 15 -14 13 -12
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²ΡΡΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
ΠΠ°ΡΡΠΈΡΠ°, «ΡΠ°Π·Π²ΡΡΠ½ΡΡΠ°Ρ» ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΈ: 1; -2; 3; -4; 5; -6; 7; -8; 9; -10; 11; -12; 13; -14; 15; -16; 17; -18; 19; 20; 2000; 200 000; 20 000 000; 2 000 000 000;
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
Π‘ΡΡΠΎΠΊΠΈ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ Π² Π½Π΅Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΡΠΌΠΌ:
— 2 19 20 2000 200 000 20 000 000 2 000 000 000 11
3 -4 5 -6 7 -8 9 -10
1 -18 17 -16 15 -14 13 -12
Π’Π΅ΡΡ 3: ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ° 10x5, Π½Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Π°Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ.
ΠΡΡ ΠΎΠ΄Π½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ°:
4490 6540 -12 901 20 330 -6046
— 27 459 -22 256 26 705 14 852 -30 502
23 701 -11 502 -30 162 -14 325 -20 739
— 15 721 -14 704 17 504 -23 934 21 020
— 27 932 7054 -30 557 -28 698 -19 302
— 16 794 -24 715 28 069 -2485 -11 281
30 727 18 102 20 673 -32 373 23 140
— 16 762 -1303 5821 21 065 -25 295
— 24 472 27 091 -6385 -13 002 -22 009
— 12 309 26 284 20 788 -21 316 -25 044
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ ΡΡΡΠΎΠΊΠ°ΠΌ: 20 330; 26 705; 23 701; 21 020; 7054
Π‘ΡΠΎΠ»Π±ΡΡ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ: 4; 3; 1; 5; 2
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠΎΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
S1 = 4934
S2 = -21 774
S1 > S2, ΠΌΠ°ΡΡΠΈΡΠ° Π½Π΅ Π±ΡΠ»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
Π§ΠΈΡΠ»ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π½Π΅ΡΡΡΠ½ΠΎ — Π±ΡΠ» ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄ΡΠ½ ΡΠ΄Π²ΠΈΠ³ «Π²Π½ΠΈΠ·»
— 12 309 26 284 20 788 -21 316 -25 044
4490 6540 -12 901 20 330 -6046
— 27 459 -22 256 26 705 14 852 -30 502
23 701 -11 502 -30 162 -14 325 -20 739
— 15 721 -14 704 17 504 -23 934 21 020
— 27 932 7054 -30 557 -28 698 -19 302
— 16 794 -24 715 28 069 -2485 -11 281
30 727 18 102 20 673 -32 373 23 140
— 16 762 -1303 5821 21 065 -25 295
— 24 472 27 091 -6385 -13 002 -22 009
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²ΡΡΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
ΠΠ°ΡΡΠΈΡΠ°, «ΡΠ°Π·Π²ΡΡΠ½ΡΡΠ°Ρ» ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΈ: 4490; -27 459; 23 701; -15 721; -27 932; -16 794; 30 727; -16 762; -24 472; -12 309; 26 284; 20 788; -21 316; -25 044; -22 009; -25 295; 23 140; -11 281; -19 302; 21 020; -20 739; -30 502; -6046; 20 330; -12 901; 6540; -22 256; -11 502; -14 704; 7054; -24 715; 18 102; -1303; 27 091; -6385; -13 002; 21 065; -32 373; -2485; -28 698; -23 934; -14 325; 14 852; 26 705; -30 162; 17 504; -30 557; 28 069; 20 673; 5821
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
Π‘ΡΡΠΎΠΊΠΈ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ Π² Π½Π΅Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΡΠΌΠΌ:
30 727 18 102 20 673 -32 373 23 140
4490 6540 -12 901 20 330 -6046
— 12 309 26 284 20 788 -21 316 -25 044
— 15 721 -14 704 17 504 -23 934 21 020
— 16 762 -1303 5821 21 065 -25 295
— 16 794 -24 715 28 069 -2485 -11 281
— 27 459 -22 256 26 705 14 852 -30 502
— 24 472 27 091 -6385 -13 002 -22 009
23 701 -11 502 -30 162 -14 325 -20 739
— 27 932 7054 -30 557 -28 698 -19 302
Π’Π΅ΡΡ 4: ΠΌΠ°ΡΡΠΈΡΠ° Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΈΡΠ»Π°ΠΌΠΈ.
ΠΡΡ ΠΎΠ΄Π½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ°:
0 -2 000 000 000 -2 100 000 000 -2 000 000 000 1
1 000 000 000 -800 000 000 400 000 000 3 15
0 -2 000 000 000 -2 000 000 000 -2 000 000 000 1
1 000 000 000 -800 000 000 400 000 000 3 15
0 -2 000 000 000 -2 000 000 000 -2 000 000 000 1
1 000 000 000 -800 000 000 400 000 000 3 15
0 -2 000 000 000 -1 900 000 000 -200 000 000 1
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ ΡΡΡΠΎΠΊΠ°ΠΌ: 1; 1 000 000 000; 1; 1 000 000 000; 1; 1 000 000 000; 1
Π‘ΡΠΎΠ»Π±ΡΡ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ: 5; 1; 5; 1; 5; 1; 5
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠΎΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
S1 = -7 699 999 981
S2 = -7 499 999 981
S1 < S2, ΠΌΠ°ΡΡΠΈΡΠ° Π±ΡΠ»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π°:
0 -2 000 000 000 -1 900 000 000 -2 000 000 000 1
1 000 000 000 -800 000 000 400 000 000 3 15
0 -2 000 000 000 -2 000 000 000 -2 000 000 000 1
1 000 000 000 -800 000 000 400 000 000 3 15
0 -2 000 000 000 -2 000 000 000 -2 000 000 000 1
1 000 000 000 -800 000 000 400 000 000 3 15
0 -2 000 000 000 -2 100 000 000 -2 000 000 000 1
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
Π§ΠΈΡΠ»ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π½Π΅ΡΡΡΠ½ΠΎ — Π±ΡΠ» ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄ΡΠ½ ΡΠ΄Π²ΠΈΠ³ «Π²Π½ΠΈΠ·»
0 -2 000 000 000 -1 900 000 000 -2 000 000 000 1
0 -2 000 000 000 -2 100 000 000 -2 000 000 000 1
1 000 000 000 -800 000 000 400 000 000 3 15
0 -2 000 000 000 -2 000 000 000 -2 000 000 000 1
1 000 000 000 -800 000 000 400 000 000 3 15
0 -2 000 000 000 -2 000 000 000 -2 000 000 000 1
1 000 000 000 -800 000 000 400 000 000 3 15
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²ΡΡΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
ΠΠ°ΡΡΠΈΡΠ°, «ΡΠ°Π·Π²ΡΡΠ½ΡΡΠ°Ρ» ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΈ: 0; 1 000 000 000; 0; 1 000 000 000; 0; 1 000 000 000; 0; -2 000 000 000; -1 900 000 000; -2 000 000 000; 1; 15; 1; 15; 1; 15; 1; -2 000 000 000; -2 100 000 000; -2 000 000 000; -800 000 000; -2 000 000 000; -800 000 000; -2 000 000 000; -800 000 000; 400 000 000; 3; -2 000 000 000; 3; -2 000 000 000; 3; 400 000 000; -2 000 000 000; 400 000 000; -2 000 000 000
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
Π‘ΡΡΠΎΠΊΠΈ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ Π² Π½Π΅Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΡΠΌΠΌ:
1 000 000 000 -800 000 000 400 000 000 3 15
1 000 000 000 -800 000 000 400 000 000 3 15
1 000 000 000 -800 000 000 400 000 000 3 15
0 -2 000 000 000 -1 900 000 000 -2 000 000 000 1
0 -2 000 000 000 -2 000 000 000 -2 000 000 000 1
0 -2 000 000 000 -2 000 000 000 -2 000 000 000 1
0 -2 000 000 000 -2 100 000 000 -2 000 000 000 1
Π’Π΅ΡΡ 5: ΠΌΠ°ΡΡΠΈΡΠ° Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ.
ΠΡΡ ΠΎΠ΄Π½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ°:
9 999 999 999 123 fdf
456 rt 8 888 888 888
1 234 567 890 9 876 543 210 789
q 0xf e
— 77 777 777 777 000 -13
915 -376 19
dddddd 1 111 111 111
ΠΠ½ΡΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΠΊΠ°Ρ ΠΌΠ°ΡΡΠΈΡΠ° Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
0 123 0
456 0 0
1 234 567 890 0 789
0 15 0
0 0 -13
915 -376 19
0 0 1 111 111 111
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ ΡΡΡΠΎΠΊΠ°ΠΌ: 123; 456; 1 234 567 890; 15; 0; 915; 1 111 111 111
Π‘ΡΠΎΠ»Π±ΡΡ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ: 2; 1; 1; 2; 1; 1; 3
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠΎΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
S1 = 123
S2 = 1 111 111 130
S1 < S2, ΠΌΠ°ΡΡΠΈΡΠ° Π±ΡΠ»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π°:
0 0 1 111 111 111
456 0 19
1 234 567 890 0 789
0 15 0
0 0 -13
915 -376 0
0 123 0
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
Π§ΠΈΡΠ»ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π½Π΅ΡΡΡΠ½ΠΎ — Π±ΡΠ» ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄ΡΠ½ ΡΠ΄Π²ΠΈΠ³ «Π²Π½ΠΈΠ·»
0 0 1 111 111 111
0 123 0
456 0 0
1 234 567 890 0 789
0 15 0
0 0 -13
915 -376 19
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²ΡΡΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
ΠΠ°ΡΡΠΈΡΠ°, «ΡΠ°Π·Π²ΡΡΠ½ΡΡΠ°Ρ» ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΈ: 0; 456; 1 234 567 890; 0; 0; 915; 0; 0; 1 111 111 111; 19; -13; 0; 789; 0; 0; 123; 0; 0; 15; 0; -376
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ:
Π‘ΡΡΠΎΠΊΠΈ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ Π² Π½Π΅Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΡΠΌΠΌ:
1 234 567 890 0 789
0 0 1 111 111 111
915 -376 19
456 0 0
0 123 0
0 15 0
0 0 -13
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2. ΠΠΎΠ»Π½ΡΠΉ Π»ΠΈΡΡΠΈΠ½Π³ ΡΠΎΡΠΌΡ (ΡΠ°ΠΉΠ» form.pas)
14 {
15 ΠΠΎΠ΄ΡΠ»Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΎΡΠΌΡ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ,
16 ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΡΠΌΡ, Π° ΡΠ°ΠΊ ΠΆΠ΅
17 ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΡΡ
18 }
19 unit form;
21 interface
23 uses
24 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
25 Dialogs, Menus, StdCtrls, ExtCtrls, ComCtrls, Grids,
26 //ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
27 fileIO, MatrixOperations;
29 type
30 TMainForm = class (TForm)
31 Pages: TPageControl;
32 Task1: TTabSheet;
33 Task2: TTabSheet;
34 Task3: TTabSheet;
35 Task4: TTabSheet;
36 Task5: TTabSheet;
37 Menu: TMainMenu;
38 A1: TMenuItem;
39 load: TMenuItem;
40 save: TMenuItem;
41 N1: TMenuItem;
42 quit: TMenuItem;
43 N4: TMenuItem;
44 M_Task1: TMenuItem;
45 M_Task2: TMenuItem;
46 M_Task3: TMenuItem;
47 M_Task4: TMenuItem;
48 M_Task5: TMenuItem;
49 GroupBox1: TGroupBox;
50 G_Matrix: TStringGrid;
51 E_RowsN: TEdit;
52 Label1: TLabel;
53 Label2: TLabel;
54 E_ColsN: TEdit;
55 B_SetDimms: TButton;
56 SaveDialog: TSaveDialog;
57 OpenDialog: TOpenDialog;
58 Label3: TLabel;
59 Label4: TLabel;
60 G_Task1B: TStringGrid;
61 Label5: TLabel;
62 Label6: TLabel;
63 G_Task1C: TStringGrid;
64 B_Task1Run: TButton;
65 Label7: TLabel;
66 Label8: TLabel;
67 Label9: TLabel;
68 E_Task2S1: TEdit;
69 B_Task2Run: TButton;
70 E_Task2S2: TEdit;
71 L_Task2MatrxChanged: TLabel;
72 Label10: TLabel;
73 B_Task3Run: TButton;
74 L_Task3Result: TLabel;
75 Label11: TLabel;
76 B_Task4Run: TButton;
77 Label12: TLabel;
78 B_Task5Run: TButton;
79 about: TMenuItem;
80 MEM_Task4: TMemo;
81 procedure saveClick (Sender: TObject);
82 procedure loadClick (Sender: TObject);
83 procedure B_SetDimmsClick (Sender: TObject);
84 procedure FormCreate (Sender: TObject);
85 procedure quitClick (Sender: TObject);
86 procedure M_Task1Click (Sender: TObject);
87 procedure M_Task2Click (Sender: TObject);
88 procedure M_Task3Click (Sender: TObject);
89 procedure M_Task4Click (Sender: TObject);
90 procedure M_Task5Click (Sender: TObject);
91 procedure B_Task1RunClick (Sender: TObject);
92 procedure FormDestroy (Sender: TObject);
93 procedure B_Task2RunClick (Sender: TObject);
94 procedure B_Task3RunClick (Sender: TObject);
95 procedure B_Task4RunClick (Sender: TObject);
96 procedure B_Task5RunClick (Sender: TObject);
97 procedure aboutClick (Sender: TObject);
98 private
99 procedure readMatrix;
100 procedure writeMatrix;
101 public
102 published
103 { Public declarations }
104 end;
106 var
107 MainForm: TMainForm;
108 workMatrix: TMatrix;
110 implementation
112 uses Math;
114 {$R *.dfm}
116 {Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠ°ΡΡΠΈΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ Π½Π° ΡΠΎΡΠΌΠ΅}
117 procedure TMainForm. ReadMatrix;
118 var rowN, colN: integer;
119 begin
120 SetLength (workMatrix, G_Matrix.RowCount-1, G_Matrix.ColCount-1);
121 for rowN:= 0 to G_Matrix.RowCount-2 do
122 for colN:= 0 to G_Matrix.ColCount-2 do
123 workMatrix[rowN, colN]: = StrToIntDef (G_Matrix.Cells[colN+1, rowN+1], 0);
124 end;
126 {Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π½Π° ΡΠΎΡΠΌΠ΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΡΡ}
127 procedure TMainForm. writeMatrix;
128 var rowN, colN: integer;
129 begin
130 G_Matrix.Cells[1, 1]: = '';//Π΅ΡΠ»ΠΈ ΠΌΠ°ΡΡΠΈΡΠ° ΠΏΡΡΡΠ°
131 //ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΡΡ
132 E_RowsN.Text:= IntToStr (high (workMatrix) + 1);
133 if (E_RowsN.Text <> '0') then
134 E_ColsN.Text:= IntToStr (high (workMatrix[low (workMatrix)]) + 1)
135 else E_ColsN.Text:= '0';
136 B_SetDimmsClick (self);
137 //Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ
138 for rowN:= low (workMatrix) to high (workMatrix) do
139 for colN:= low (workMatrix[rowN]) to high (workMatrix[rowN]) do
140 G_Matrix.Cells[colN+1, rowN+1]: = IntToStr (workMatrix[rowN, colN]);
141 end;
143 {ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π€Π°ΠΉΠ»->Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ}
144 procedure TMainForm. saveClick (Sender: TObject);
145 var
146 outFile: TextFile;
147 begin
148 //ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ Π²ΡΠ±ΠΎΡΠ° ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΎΡΠΌΠ΅Π½Π° — Π²ΡΡ ΠΎΠ΄ΠΈΠΌ
149 if SaveDialog. Execute = false then exit;
150 AssignFile (outFile, SaveDialog. Files[0]);
151 ReWrite (outFile);//ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°ΠΉΠ»
153 readMatrix;//ΠΏΡΠΎΡΡΡΠΌ ΠΌΠ°ΡΡΠΈΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ
154 Write2DArray (workMatrix, outFile);//Π·Π°ΠΏΠΈΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΡΡ Π² ΡΠ°ΠΉΠ»
156 CloseFile (outFile);//Π·Π°ΠΊΡΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ»
158 end;
160 {ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π€Π°ΠΉΠ»->ΠΠ°Π³ΡΡΠ·ΠΈΡΡ}
161 procedure TMainForm. loadClick (Sender: TObject);
162 var
163 inFile: TextFile;
164 begin
165 //ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ Π²ΡΠ±ΠΎΡΠ° ΡΠ°Π»Π° Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, Π΅ΡΠ»ΠΈ ΠΎΡΠΌΠ΅Π½Π° — Π²ΡΡ ΠΎΠ΄ΠΈΠΌ
166 if OpenDialog. Execute = false then exit;
167 AssignFile (inFile, OpenDialog. Files[0]);
168 Reset (inFile);//ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠΌ ΡΠ°ΠΉΠ» ΠΊ ΡΡΠ΅Π½ΠΈΡ
170 Read2DArray (workMatrix, inFile);//ΠΏΡΠΎΡΡΡΠΌ ΠΌΠ°ΡΡΠΈΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°
171 writeMatrix;//ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠΌ ΠΌΠ°ΡΡΠΈΡΡ
173 CloseFile (inFile);//Π·Π°ΠΊΡΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ»
174 end;
176 {ΠΎΠ±ΡΠ°ΡΠΎΡΡΠΈΠΊ ΡΡΡΠ²Π½ΠΎΠ²ΠΊΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΡΡ}
177 procedure TMainForm. B_SetDimmsClick (Sender: TObject);
178 var
179 i: integer;
180 RowsN, ColsN: integer;
181 begin
182 //Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ 1
183 RowsN:= StrToIntDef (E_RowsN.Text, 0);
184 if RowsN < 1 then begin RowsN:= 1; E_RowsN.Text:= '1' end;
185 ColsN:= StrToIntDef (E_ColsN.Text, 0);
186 if ColsN < 1 then begin ColsN:= 1; E_ColsN.Text:= '1' end;
187 //ΡΠΈΡΠ»ΠΎ ΡΡΡΠΎΠΊ ΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π² ΡΠ°Π±Π»ΠΈΡΠ΅, ΡΡΠΈΡΡΠ²Π°Ρ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ ΠΈ ΡΡΡΠΎΠΊΡ Ρ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ
188 G_Matrix.RowCount:= RowsN + 1;
189 G_Matrix.ColCount:= ColsN + 1;
190 //Π² ΡΡΠΈΡ ΡΠ°Π±Π»ΠΈΡΠ°Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ
191 G_Task1B.RowCount:= RowsN;
192 G_Task1C.RowCount:= RowsN;
193 //ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· ΡΠ΅ΡΠ²ΡΡΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ Π΄Π»ΠΈΠ½Ρ, ΡΠ°Π²Π½ΡΡ ΡΠΈΡΠ»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ
194 //G_Task4.ColCount:= RowsN * ColsN;
195 //ΡΠ°ΡΡΡΠ°Π²ΠΈΠΌ Π½ΠΎΠΌΠ΅ΡΠ° ΡΡΡΠΎΠΊ ΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ²
196 for i:= 0 to RowsN do
197 begin