ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π½Π°ΠΏΠΈΡΠ°Π» ΠΊΠ»Π°ΡΡ MATRIX, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±ΡΡ. Π‘ΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠ²ΠΎΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΡΡΠ΅ΡΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ Π΄Π²ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²: ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° invert ΠΈΠ½Π²Π΅ΡΡΠΈΡΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΡΡ, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ Π°ΡΡΠΈΠ±ΡΡΡ inverse Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°ΡΡΠΈΠ±ΡΡ inverse_valid. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ° inverse ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΡΠΎΠ³Π΄Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° inverse_valid ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΡΠΈΠ½Π½ΡΠΌ; Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠ°ΡΡΠΈΡΡ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π²ΡΡΠΎΠΆΠ΄Π΅Π½Π°. Π Ρ ΠΎΠ΄Π΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ»ΡΡΠ°ΠΉ Π²ΡΡΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, Ρ ΠΌΠΎΠ³Ρ Π½Π°ΠΉΡΠΈ Π»ΠΈΡΡ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΠΈ Π³ΠΎΡΠΎΠ² Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΎΡΠ½ΠΎΡΡΡ ΡΠ°ΡΡΠ΅ΡΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ Π²Π»Π°Π΄Π΅Ρ ΡΠΈΡΠ»Π΅Π½Π½ΡΠΌΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ Π² ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²Π΅, Π±ΡΠ΄Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π»ΠΈΡΡ Π·Π°ΠΏΡΠΎΡΡ Ρ ΡΠΎΡΠ½ΠΎΡΡΡΡ Π½Π΅ Π²ΡΡΠ΅ 10-6. Π ΠΈΡΠΎΠ³Π΅, ΠΌΠΎΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΠΊ:
invert (epsilon: REAL) is
-- ΠΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΌΠ°ΡΡΠΈΡΡ Ρ ΡΠΎΡΠ½ΠΎΡΡΡΡ epsilon
require
epsilon >= 10 ^ (-6)
do
"ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ"
ensure
((Current * inverse) |-| One) <= epsilon
end
ΠΠΎΡΡΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΈΠΊΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ infix "|-|" ΡΠ°ΠΊΡΡ, ΡΡΠΎ m1 |-| m2 Π΅ΡΡΡ |m1 - m2| (Π½ΠΎΡΠΌΠ° ΡΠ°Π·Π½ΠΎΡΡΠΈ ΠΌΠ°ΡΡΠΈΡ m1 ΠΈ m2), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ infix "*", ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΌΠ°ΡΡΠΈΡ. One - Π΅Π΄ΠΈΠ½ΠΈΡΠ½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ°.
ΠΠ°ΠΊ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ Π½Π΅Π³ΠΎΡΠ΄ΡΠΉ, Π»Π΅ΡΠΎΠΌ Ρ ΠΏΡΠΈΠ³Π»Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°, ΠΈ ΠΎΠ½ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ΅Ρ ΠΌΠΎΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ invert, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄Π°ΡΠ½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ, Π»ΡΡΡΠ΅ Π°ΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠΈΡΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠΈΠΉ ΠΌΠ΅Π½ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ epsilon (ΠΊΠ°ΠΊ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅, ΡΡΠ° Π·Π°ΠΏΠΈΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½Π°:
require
epsilon >= 10 ^ (-20)
...
ensure
((Current * inverse) |-| One) <= (epsilon / 2)
ΠΠ²ΡΠΎΡ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΌΠ΅Π½, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ MATRIX Π² ΡΠ΅Π»ΠΎΠΌ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠ½ΡΡΡΡ Π»ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠ½ΠΈ Π±ΡΠ΄ΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΡΠΎΡΡΠ°Π² ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ MATRIX ΠΊΠ»Π°ΡΡΠ° NEW_MATRIX.
ΠΡΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΈΠ½ΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, Π½Π΅ΠΆΠ΅Π»ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅. ΠΡΠ°Π²ΠΈΠ»ΠΎ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΡΡΡ ΠΏΠΎΠ·Π΄Π½Π΅Π΅.ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ: Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈΠ΅ epsilon >= 10 ^ (-20) ΡΠ»Π°Π±Π΅Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ epsilon >= 10 ^ (-6), Π½ΠΎΠ²ΠΎΠ΅ ΠΆΠ΅ ΠΏΠΎΡΡΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠΈΠ»ΡΠ½Π΅Π΅ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Π½Π°ΡΠ°Π»Π΅.
ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ. ΠΠ»ΠΈΠ΅Π½Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° MATRIX Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΠ°ΡΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ Π½Π΅Π³ΠΎ, Π½ΠΎ Π½Π° Π΄Π΅Π»Π΅ - Π²Π²ΠΈΠ΄Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ - Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° NEW_MATRIX. Π’ΠΎΡ ΠΆΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠΎΡΡΠ°Π²Π΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
some_client_routine (m1: MATRIX; precision: REAL) is
do
... ; m1.invert (precision); ...
-- ΠΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π²ΡΠ·ΠΎΠ² Π²Π΅ΡΡΠΈΠΈ ΠΊΠ°ΠΊ MATRIX, ΡΠ°ΠΊ ΠΈ NEW_MATRIX
end
ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΠ° NEW_MATRIX.
NEW_MATRIX Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ Π²ΡΠ·ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠΎΠΌ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»Π°Π±ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΠΎΡΡΡΡΠ»ΠΎΠ²ΠΈΠ΅, ΠΌΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π²ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² MATRIX ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠΌ ΡΠ²ΠΎΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π»ΡΡΡΠ΅ ΠΏΡΠ΅ΠΆΠ½Π΅Π³ΠΎ.
ΠΡΠΈ ΡΡΠΈΠ»Π΅Π½ΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈΡ invert, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, epsilon >= 10 ^ (-5), Π²ΡΠ·ΠΎΠ², ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° MATRIX, ΠΌΠΎΠ³ ΡΡΠ°ΡΡ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ. ΠΡΠΈ ΠΎΡΠ»Π°Π±Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΡΡΡΡΠ»ΠΎΠ²ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ°Π» Π±Ρ Ρ ΡΠΆΠ΅, ΡΠ΅ΠΌ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ MATRIX.
Π£ΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊΠ°
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π²Π΅ΡΡΠΌΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π£ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΠ΅ΡΠ΅ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ. Π ΠΎΠ±ΡΠ΅ΠΉ ΡΡ Π΅ΠΌΠ΅
Π ΠΈΡ. 16.3. ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΠΏΠΎΠ΄ΡΡΠ΄ΡΠΈΠΊ
ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Ξ³ ΠΈ , Π²Π²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ, ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΈ Ξ² (ΠΏΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈΡ - Π±ΠΎΠ»Π΅Π΅ ΡΠ»Π°Π±ΡΠ΅, ΠΏΠΎΡΡΡΡΠ»ΠΎΠ²ΠΈΡ - Π±ΠΎΠ»Π΅Π΅ ΡΠΈΠ»ΡΠ½ΡΠ΅). ΠΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° A, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ A' Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΡ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΠ³ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΎΠΌ, ΠΈΠ±ΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π·Π°ΠΊΠ»ΡΡΠ΅Π½ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ A.
ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΡΡ ΡΡΠ°Π² Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ A' (ΠΏΡΠ½ΠΊΡΠΈΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ Ρ Π²ΠΎΠΏΡΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π·Π½Π°ΠΊΠΎΠΌ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 16.3), ΠΊΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅:
a1: A'
...
if a1.Ξ³ then a1.r end
check a1. end -- ΠΏΠΎΡΡΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ
ΠΡΠΈ ΡΡΠΎΠΌ Π²Ρ, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅ a1 ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° A', Π° Π½Π΅ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° A, ΠΊΠ°ΠΊ ΠΏΡΠ΅ΠΆΠ΄Π΅. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅ΡΡΠ΅ΡΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ°, ΠΈΠ΄ΡΡΠ°Ρ ΠΎΡ A.
ΠΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡ ΡΡΠ΅Π½. ΠΠ»ΠΈΠ΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° MATRIX Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ (Π±ΠΎΠ»Π΅Π΅ ΡΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ) ΠΏΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈΡ, Π° Π² ΠΎΡΠ²Π΅Ρ Π²ΠΏΡΠ°Π²Π΅ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ (Π±ΠΎΠ»Π΅Π΅ ΡΠ»Π°Π±ΠΎΠ³ΠΎ) ΠΏΠΎΡΡΡΡΠ»ΠΎΠ²ΠΈΡ. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ Π·Π°ΠΏΡΠΎΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½ ΠΊ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠΌ NEW_MATRIX, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½ΠΎΠ²ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ - Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠΎΠ»Π΅ΡΠ°Π½ΡΠ½ΠΎΡΡΡΡ Π²Ρ ΠΎΠ΄Π° ΠΈ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠΎΡΠ½ΠΎΡΡΡΡ Π²ΡΡ ΠΎΠ΄Π° - Π΅ΠΌΡ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡΠ΄Π°ΡΡΡΡ. ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ»ΡΡΡΠ΅Π½Π½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΠΈΠΏΠ° NEW_MATRIX, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ, ΠΏΠΎΡΠ΅ΡΡΠ² Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠΌ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠΌ ΠΎΡ MATRIX ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌ, Π½Π΅ ΡΠ²Π»ΡΡΡΠΈΠΌΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ NEW_MATRIX.
Π‘ΡΠ±ΠΏΠΎΠ΄ΡΡΠ΄Ρ
ΠΡΠ°Π²ΠΈΠ»ΠΎ Π£ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΠ΅ΡΠ΅ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½ΠΎ ΡΠΎΡΠ΅ΡΠ°Π΅ΡΡΡ Ρ ΡΠ΅ΠΎΡΠΈΠ΅ΠΉ ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΠΠΎΠ½ΡΡΠ°ΠΊΡΡ.
ΠΡ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π½Π΅ΠΉ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠ°Π²ΠΎ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ Π½Π° ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΡ ΠΏΠΎΡΡΡΡΠ»ΠΎΠ²ΠΈΡ; Π΄Π»Ρ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° Π²ΡΠ΅ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ±ΠΏΠΎΠ΄ΡΡΠ΄ΠΎΠ². ΠΡΠΈΠ½ΡΠ² ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, Π²Ρ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΅Π³ΠΎ ΡΠ°ΠΌΠΈ. ΠΠΎΠ΄ΡΠ°Ρ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π΅ΡΠ΅, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π»ΡΡΡΠ΅ ΠΈ Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌΠΈ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠ°ΠΌΠΈ. Π’Π°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ· MATRIX, Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΡ, ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π² ΠΏΠΎΡΠΎΠΌΠΊΠ΅. "ΠΠ΅Π½ΡΡΠΈΠ΅ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ" ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π·Π΄Π΅ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΊΠ°ΠΊ Π² Π·Π½Π°ΠΊΠΎΠΌΠΎΠΌ Π½Π°ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΠΏΠ΅ΡΠΈΠΌΠ΅ΡΡΠΎΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, Π° "Π»ΡΡΡΠ΅" - ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΉ, Π² ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΌ Π·Π΄Π΅ΡΡ ΡΠΌΡΡΠ»Π΅.
ΠΡΠ°Π²ΠΈΠ»ΠΎ Π£ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΠ΅ΡΠ΅ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠ΅ΡΡΠ½ΡΠΉ ΡΡΠ±ΠΏΠΎΠ΄ΡΡΠ΄ΡΠΈΠΊ, ΠΏΡΠΈΠ½ΡΠ² ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π° ΡΠ΅Ρ ΠΆΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡΡ , ΡΡΠΎ ΠΈ ΠΏΠΎΠ΄ΡΡΠ΄ΡΠΈΠΊ ΠΈΠ»ΠΈ Π»ΡΡΡΠΈΡ , Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Ρ ΡΠ΄ΡΠΈΡ .
Π‘ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΠΠΎΠ½ΡΡΠ°ΠΊΡΡ, ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² - ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ°, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡΠ΅ ΠΈ ΠΊ ΠΏΠΎΠ΄ΡΡΠ΄ΡΠΈΠΊΠ°ΠΌ, ΠΈ ΠΊ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ. ΠΡΠ°Π²ΠΈΠ»ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΡΠ±ΠΏΠΎΠ΄ΡΡΠ΄ΡΠΈΠΊΠ°ΠΌ.
Π‘Π²ΠΎΠ΅ ΠΈΡΡΠΈΠ½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΠ-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ°Π΅Ρ Π»ΠΈΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡΠΌΠΈ ΠΈ Π΄Π²ΡΠΌΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌΠΈ Π²ΡΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ. ΠΠ΅ΡΠ°ΡΠΎΡΠ° ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΎΠ² ΠΈ ΡΡΠ±ΠΏΠΎΠ΄ΡΡΠ΄ΠΎΠ² - ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½Π°Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ ΠΠ-ΠΠ. ΠΠ΅ΡΠΎΠΌΠ½Π΅Π½Π½ΠΎ, Π² ΡΡΠΎΠΌ - ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ΄Π΅ΠΉ ΡΠ΅ΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈΡ
ΠΡΠ°Π²ΠΈΠ»ΠΎ ΠΎΡΠ»Π°Π±Π»Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠ΅ΡΠ΅ΡΡΡΡ ΠΆΠ΅ΡΡΠΊΠΈΠΌ Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊ ΠΏΠΎΠ½ΠΈΠΆΠ°Π΅Ρ ΡΡΠΎΠ²Π΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΠΉ Π΄Π»Ρ Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠ°. Π ΡΡΠ°ΡΡΡΡ, Π΅ΡΡΡ Π»Π΅Π³ΠΊΠΈΠΉ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ³Π»Π°ΡΡΡΡΠΈΠΉΡΡ Ρ ΡΠ΅ΠΎΡΠΈΠ΅ΠΉ.
Π’ΠΈΠΏΠΈΡΠ½ΡΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ BOUNDED_STACK ΠΎΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΡΡΠ΅ΠΊΠ° (STACK). ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π·Π°Π½Π΅ΡΠ΅Π½ΠΈΡ Π² ΡΡΠ΅ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (put) Π² ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈΠ΅ count <= capacity, Π³Π΄Π΅ count - ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΡΠ΅ΠΊΠ΅, capacity - ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°Ρ Π΅ΠΌΠΊΠΎΡΡΡ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ.
Π ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΠ½ΡΡΠΈΠΈ ΡΡΠ΅ΠΊΠ° Π½Π΅Ρ ΠΏΠΎΠ½ΡΡΠΈΡ Π΅ΠΌΠΊΠΎΡΡΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅, Π±ΡΠ΄ΡΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ ΠΊ BOUNDED_STACK ΠΏΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ (ΠΎΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ Π΅ΠΌΠΊΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ). ΠΠ°ΠΊ Π²ΡΡΡΡΠΎΠΈΡΡ ΡΡΡΡΠΊΡΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, Π½Π΅ Π½Π°ΡΡΡΠ°Ρ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π£ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΠ΅ΡΠ΅ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ?
ΠΡΠ²Π΅Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½, Π΅ΡΠ»ΠΈ ΠΌΡ Π±Π»ΠΈΠΆΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΊ ΠΊΠ»ΠΈΠ΅Π½ΡΡ. Π’ΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΡΠ»Π°Π±ΠΈΡΡ, Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΏΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π²ΠΈΠ΄ΠΈΡΡΡ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° (ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΎ Π΅Π³ΠΎ Π·Π°Π±ΠΎΡΠ°), Π½ΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π²ΠΈΠ΄ΠΈΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ. ΠΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° put ΠΊΠ»Π°ΡΡΠ° STACK ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄: