[x]. ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Π½ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π΅Π³ΠΎ ΠΈΠΌΡ.
[x]. ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠΌΡ, Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ.
ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΠΈΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΡΡΠ»Π°Π»ΠΎΡΡ Π½Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΎΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ (Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π³ΠΎΠ²ΠΎΡΡΡ ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠΈΠΏΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ). ΠΡΠΎ - ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ.
Π‘ΠΌΠ΅Π½Π° ΠΈΠΌΠ΅Π½ - ΡΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΡΠΈΠ³ΡΡΠΈΡΡΡΡΠΈΠΉ Π² ΡΠ°Π·Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°Ρ ΠΏΠΎΠ΄ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ.
ΠΠ½ΠΎΠ³Π΄Π° ΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΠ°ΡΡ:
class SANTA_BARBARA inherit
LONDON
rename
foo as fog
redefine
fog
end
...
ΠΡΠ»ΠΈ, ΠΊΠ°ΠΊ ΠΈ ΡΠ°Π½ΡΡΠ΅, l: LONDON; s: SANTA_BARBARA, ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ l := s, ΡΠΎ ΠΎΠ±Π° Π²ΡΠ·ΠΎΠ²Π° l.foo, s.fog Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° fog, ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ Π² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ feature ΠΊΠ»Π°ΡΡΠ°.
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅: redefine ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΆΠ΅ Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎΠ΄ ΡΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ»Π°ΡΡΡ. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ rename Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π²ΡΡΠ΅ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ (ΡΠ°ΠΊΠΈΡ , ΠΊΠ°ΠΊ redefine ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»Ρ export, undefine, select). ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ rename ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ΅ΡΡΠ΅Ρ ΡΠ²ΠΎΠΉ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ ΠΏΠΎΠ΄ Π½ΠΎΠ²ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠ»Π°ΡΡΡ, Π΅Π³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠ°ΠΌ ΠΈ Π΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ.
ΠΠΎΠ΄Π±ΠΎΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π½Π΅Π±Π΅Π·ΡΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΠΈ ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° ΠΈΠΌΠ΅Π½. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΠΊΠ»Π°ΡΡΠ° ΠΏΠΎΠ΄Π±ΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π² ΡΠ°ΠΌΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅, ΡΠ°ΠΊ ΠΈ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΡ ΠΎΡ ΠΏΡΠ΅Π΄ΠΊΠΎΠ².
ΠΠΌΡ, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ ΠΊΠ»Π°ΡΡ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΡΠ΅Π΄ΠΊΠ°, ΠΌΠΎΠΆΠ΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΠΊΠ»Π°ΡΡΠ°. ΠΠ³ΠΎ Π²ΡΠ±ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ»ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ°ΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΏΡΠ΅Π΄ΠΊΠ°, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Π²ΠΏΠΈΡΠ°Π½ Π² Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΠΎΠ½ΡΡΠΈΠΉ. Π‘ΠΌΠ΅Π½Π° ΠΈΠΌΠ΅Π½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅ΡΠΈΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ°Π·Π΄Π΅Π»ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΠΈΡ ΠΈΠΌΠ΅Π½Π°.
Π₯ΠΎΡΠΎΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡ WINDOW, ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠΉ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° TREE. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΡΠΊΡΡΡΡ, Π΅Π΄ΠΈΠ½ΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π΄Π»Ρ ΠΎΠΊΠΎΠ½, Π½ΠΎ ΠΈΠΌΠ΅Π½Π°, ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅, ΠΌΠΎΠ³ΡΡ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ WINDOW ΠΈ Π΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ. Π‘ΠΌΠ΅Π½Π° ΠΈΠΌΠ΅Π½ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΌΠ΅ΡΡΠ½ΡΠΌΠΈ ΠΎΠ±ΡΡΠ°ΡΠΌΠΈ:
class WINDOW inherit
TREE [WINDOW]
rename
child as subwindow, is_leaf as is_terminal, root as screen,
arity as child_count, ...
end
RECTANGLE
feature
... Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ window ...
end
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΠΊΠ»Π°ΡΡ TREE, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΌ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ ΠΎΡ CELL, ΠΌΠΎΠΆΠ΅Ρ ΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌΡ right Π½Π° right_sibling ΠΈ Ρ.Π΄. ΠΡΡΠ΅ΠΌ ΡΠΌΠ΅Π½Ρ ΠΈΠΌΠ΅Π½ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ ΡΠ²ΠΎΠΈΡ "ΡΠ»ΡΠΆΠ±" Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ.
ΠΠ³ΡΠ°Π΅ΠΌ Π² ΠΈΠΌΠ΅Π½Π°
Π‘ΠΌΠ΅Π½Π° ΠΈΠΌΠ΅Π½ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π΅Ρ Π²Π°ΠΆΠ½ΠΎΡΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ - ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΠ°ΠΊ ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² - Π² ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΠ-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠ. Π€ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, ΠΊΠ»Π°ΡΡ - ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² ΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΌΠΈΡΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΠΌΠ΅Π½Π°ΠΌ.
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π»Π΅ΠΊΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π΄Π°Π½ ΡΡΠ΄ ΠΏΡΠ°Π²ΠΈΠ» Π²ΡΠ±ΠΎΡΠ° ΠΈΠΌΠ΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠ΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ ΠΈΠΌΠ΅Π½Π°ΠΌ: count, put, item, remove, ... - Π²ΡΠ±ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ½ΠΎΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΡΠΈΠ»Ρ, Π²Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΠ΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° ΠΈΠΌΠ΅Π½ ΠΏΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ, Π½ΠΎ ΠΎΡΡΠ°ΡΡΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΈΠΌΠ΅Π²ΡΠΈΡ ΠΌΠ΅ΡΡΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ WINDOW. ΠΠΎ ΠΊΠ°ΠΊΠΈΠΌ Π±Ρ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ Π½Π΅ ΠΎΡΠ΄Π°Π²Π°Π»ΠΎΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠ΅, Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° Π³ΠΈΠ±ΠΊΠΎΡΡΡ Π² ΠΏΠΎΠ΄Π±ΠΎΡΠ΅ ΠΈΠΌΠ΅Π½, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΡΠΈΠΏΠΈΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΠΊΠ»Π°ΡΡ ARRAYED_STACK, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ STACK ΠΈ ARRAY. ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ARRAY ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠ°ΡΡΠΈΠ² Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ Π³ΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ:
make (minb, maxb: INTEGER) is
-- ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² Ρ Π³ΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ minb ΠΈ maxb
-- (ΠΏΡΡΡΠΎΠΉ Π΅ΡΠ»ΠΈ minb > maxb)
do ... end
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ΅ΠΊΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π²ΠΌΠ΅ΡΡΠΈΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ARRAY:
class ARRAYED_STACK [G] inherit
STACK [G]
redefine change_top end
ARRAY [G]
rename
count as capacity, put as array_put, make as array_make
end
creation
make
feature -- Initialization
make (n: INTEGER) is
-- Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΡΠ΅ΠΊ, Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ n ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
require
non_negative_size: n >= 0
do
array_make (1, n)
ensure
capacity_set: capacity = n
empty: count = 0
end
... ΠΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ...
invariant
count >= 0; count <= capacity
end
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ - Π²ΡΠ±ΠΎΡ make ΠΊΠ°ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ - ΠΏΡΠΈΠ²Π΅Π»ΠΎ Π±Ρ ΠΊ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ, Π²ΠΏΡΠΎΡΠ΅ΠΌ, Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ, ΡΡΡΡΠ°Π½ΡΡΡΠ΅ΠΌΡ Π·Π°ΠΎΠ΄Π½ΠΎ Π΄Π²ΡΡΠΌΡΡΠ»Π΅Π½Π½ΠΎΡΡΡ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ count ΠΈ put. ΠΠ±Π° ΠΈΠΌΠ΅Π½ΠΈ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅.
ΠΠ»ΠΎΡΠΊΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ
Π‘ΠΌΠ΅Π½Π° ΠΈΠΌΠ΅Π½ - Π»ΠΈΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΡΠ΅Π΄ΡΡΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌ ΡΠ²ΠΎΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². ΠΡΡΠ³ΠΈΠΌ ΡΠ°ΠΊΠΈΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π ΡΡΠΎΠΉ ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π»Π΅ΠΊΡΠΈΠΈ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΊΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ²: ΠΎΡΠΌΠ΅Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ (undefinition), ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ (join), Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ (select), ΡΠΊΡΡΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ² (descendant hiding). ΠΠΎΡΡ ΡΡΠΈΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΡΠ΅ΠΌΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π΄Π΅Π»Π°Π΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·Π»ΠΈΡΠ½Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΡΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π΅ΡΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°, ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, - ΠΏΠ»ΠΎΡΠΊΠΎΠΉ ΡΠΎΡΠΌΠ΅ (flat form).
ΠΠ»ΠΎΡΠΊΠ°Ρ ΡΠΎΡΠΌΠ° ΠΊΠ»Π°ΡΡΠ°
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ - ΡΡΠΎ ΡΠΊΠΎΡΠ΅Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° ΠΊΠ»Π°ΡΡΠ°, ΡΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°; ΡΡΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ². Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΡΡΡΡΠΊΡΡΡΠ΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΎΠ²Π½ΠΎ ΡΡΠΎΠ»ΡΠΊΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΌΠΎΠ³ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅.
ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, Ρ Π½Π°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΊΠ»Π°ΡΡ Π² ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π΅Π³ΠΎ Π³Π΅Π½Π΅Π°Π»ΠΎΠ³ΠΈΠΈ. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, ΠΊΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΎΠΊΠΎΠ½, ΡΠ°ΡΡΡΠΌΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ²Π»ΡΡΡΡΡ Π΄Π΅ΡΠ΅Π²ΡΡ ΠΈ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ.
ΠΡΡ Π·Π°Π΄Π°ΡΡ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΠ»ΠΎΡΠΊΠ°Ρ ΡΠΎΡΠΌΠ° ΠΊΠ»Π°ΡΡΠ°. ΠΠΎ Π²Π°ΠΌ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π΅Π΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ. ΠΠ΅ ΠΏΠΎΡΡΡΠΎΠΈΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ, Π²Π²Π΅Π΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΠ΅Π½Π°ΡΠΈΡ (flat class_name) ΠΈΠ»ΠΈ ΡΠ΅Π»ΠΊΠ½ΡΠ² ΠΏΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΏΠΈΠΊΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
ΠΠ»ΠΎΡΠΊΠ°Ρ ΡΠΎΡΠΌΠ° ΠΊΠ»Π°ΡΡΠ° C - ΡΡΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ ΠΊΠ»Π°ΡΡΠ°, ΠΈΠΌΠ΅ΡΡΠ°Ρ, - Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ, - ΡΡ ΠΆΠ΅ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ, ΡΡΠΎ ΠΈ ΠΊΠ»Π°ΡΡ C, Π½ΠΎ Π»ΠΈΡΠ΅Π½Π½Π°Ρ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄Π΅Π» Π±Ρ Π»ΡΠ±ΠΎΠΉ ΠΊΠ»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π±Ρ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΌΠΎΠ³ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΏΠ»ΠΎΡΠΊΠΎΠΉ ΡΠΎΡΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ:
[x]. ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ inherit, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π΅ΡΡΡ;
[x]. ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π²ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΈΠ· C;
[x]. Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΊΠ»Π°ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ Π²ΡΠ΅Ρ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ· ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ²-ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ, Ρ ΡΡΠ΅ΡΠΎΠΌ Π²ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² inherit ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ: ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΎΡΠΌΠ΅Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ, Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ (select), ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²;
[x]. Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π²ΠΈΠ΄Π°: from ANCESTOR, Π³Π΄Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠΌΡ Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠ°, (ΠΏΠ΅ΡΠ΅)ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ²ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (Π° Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² - ΠΏΠΎΠ±Π΅Π΄ΠΈΠ²ΡΠ°Ρ ΡΡΠΎΡΠΎΠ½Π°);
[x]. Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠΎΡΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΈ ΠΏΠΎΡΡΡΡΠ»ΠΎΠ²ΠΈΠΉ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² (ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΉ, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π»Π΅ΠΊΡΠΈΠΈ);
[x]. Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΊΠ»Π°ΡΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΡΠ½ΠΊΡΠΈΠΈ (and) Π²ΡΠ΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².