Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 183

Автор Π‘Π΅Ρ€Ρ‚Ρ€Π°Π½ ΠœΠ΅ΠΉΠ΅Ρ€

i: COMPLEX is "Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ комплСксноС число (0, 1)"



Как Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ послС is? Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ записи Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… констант Π½Π΅ сущСствуСт.

МоТно ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сСбС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π½Π° основС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² класса:


i: COMPLEX is COMPLEX (0, 1)



Но этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, хотя ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ОО-языках, ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ - основС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ. ΠŸΡ€ΠΈΠ½ΡΠ² этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΌΡ‹ согласились Π±Ρ‹ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ COMPLEX Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ константы Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ класса, Π° это Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Бкрытия ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ соотвСтствиС Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΉ константы ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ класса, Ссли Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ имССтся?

ПослСднСС Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ позволяСт Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. ΠœΡ‹ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ роТдСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° соблюдСниС ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° возлагаСтся Π½Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ создания. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ (ΠΏΠΎΠΌΠΈΠΌΠΎ бСзопасного клонирования clone) Π²Π΅Π΄Π΅Ρ‚ ΠΊ ситуациям ошибки. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡƒΡ‚ΡŒ, основанный Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² класса.

ΠžΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

ΠŸΡƒΡΡ‚ΡŒ константный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ - это функция. НапримСр, i ΠΌΠΎΠΆΠ½ΠΎ (Π² ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… цСлях) ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ самого класса COMPLEX ΠΊΠ°ΠΊ


i: COMPLEX is

-- КомплСксноС число, re= 0, Π° im= 1

do

create Result.make_cartesian (0, 1)

end



Π­Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π½Π°ΡˆΡƒ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ функция всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. Коль скоро ΠΌΡ‹ полагаСмся Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, условиС ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ соблюдСно, - ΠΊΠ°ΠΊ слСдствиС, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Однако Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π΅ соотвСтствуСт потрСбностям: ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΊ i ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ, Π° это - Ρ‚Ρ€Π°Ρ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ пространства. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ особый Π²ΠΈΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, выполняСмой Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅. НазовСм Ρ‚Π°ΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΉ (once function). Π’ Ρ†Π΅Π»ΠΎΠΌ ΠΎΠ½Π° синтаксичСски Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ отличаСтся лишь слуТСбным словом once, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅Π³ΠΎ вмСсто do Π΅Π΅ Ρ‚Π΅Π»ΠΎ:


i: COMPLEX is

-- КомплСксноС число, re= 0, im= 1

once

create Result.make_cartesian (0, 1)

end



ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ½Π° создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ комплСксноС число, ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π° Π½Π΅Π³ΠΎ ссылку. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Ρƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, вычислСнного Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·. Π§Ρ‚ΠΎ касаСтся эффСктивности, Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ i Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ, Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΈ Ρ‚.Π΄. Ρ€Π°Π· Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π΅Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ большС, Ρ‡Π΅ΠΌ опСрация доступа ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΎ всСх экзСмплярах класса, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ экзСмпляры ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ², Π³Π΄Π΅ эта функция Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°. ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… (ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹Ρ…) допускаСтся Π±Π΅Π· всяких ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. Π’Π°ΠΊ, Ссли COMPLEX1, ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½Π½Ρ‹ΠΉ ΠΎΡ‚ класса COMPLEX, Π·Π°Π½ΠΎΠ²ΠΎ опрСдСляСт i, Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ i Π² экзСмплярС COMPLEX1 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²Ρ‹Π·ΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, Π° ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ i Π² экзСмплярС самого COMPLEX ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΡ‚ COMPLEX1, ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²Ρ‹Π·ΠΎΠ² ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ значСния, Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ Сю ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ ΠΊΡ€ΡƒΠ³ Π·Π°Π΄Π°Ρ‡, позволяя Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ раздСляСмыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ систСмныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΎΠ±Ρ‰ΠΈΡ… свойств.

РаздСляСмыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

Для ссылочных Ρ‚ΠΈΠΏΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ COMPLEX, наш ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ фактичСски ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ константныС ссылки, Π° Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ константныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Он Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ выполняСтся ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ, возвращая Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²Π°Ρ…, ΡƒΠΆΠ΅ Π½Π΅ трСбуя Π½ΠΈΠΊΠ°ΠΊΠΈΡ… дСйствий.

Если функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ссылочного Ρ‚ΠΈΠΏΠ°, Ρ‚ΠΎ Π² Π΅Π΅ Ρ‚Π΅Π»Π΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π΅ΡΡ‚ΡŒ инструкция создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΈ любой Π²Ρ‹Π·ΠΎΠ² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ ссылки Π½Π° этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π₯отя созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ повторяСтся, Π½ΠΈΡ‡Ρ‚ΠΎ Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, воспользовавшись ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ ссылкой. Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ раздСляСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ константным.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° - ΠΎΠΊΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…. ΠŸΡƒΡΡ‚ΡŒ всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ систСмы ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π² это ΠΎΠΊΠ½ΠΎ свои сообщСния:


Message_window.put_text ("Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС ΠΎΠ± ошибкС")



Π³Π΄Π΅ Message_window ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ WINDOW, Ρ‡Π΅ΠΉ класс описан ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:


class WINDOW

creation

make

feature

make (...) is

-- Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ; Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π·Π°Π΄Π°ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

do ... end

text: STRING

-- ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Π² ΠΎΠΊΠ½Π΅ тСкст

put_text (s: STRING) is

-- Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ s ΠΎΡ‚ΠΎΠ±Ρ€ΠΆΠ°Π΅ΠΌΡ‹ΠΌ Π² ΠΎΠΊΠ½Π΅ тСкстом.

do

text := s

end

... ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ...

end -- класс WINDOW



Ясно, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Message_window Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ для всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² систСмы. Π­Ρ‚ΠΎ достигаСтся описаниСм ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:


Message_window: WINDOW is

-- Окно для Π²Ρ‹Π²ΠΎΠ΄Π° сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…

once

create Result.make ("... АргумСнты Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ полоТСния ...")

end



Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΠΊΠ½ΠΎ сообщСний Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² совмСстном пользовании всСх сторон, Π½ΠΎ Π½Π΅ ΡΠ²Π»ΡΡ‚ΡŒΡΡ константным ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² put_text Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, помСщая Π² Π½Π΅Π³ΠΎ Π½ΠΎΠ²ΡƒΡŽ строку тСкста. Π›ΡƒΡ‡ΡˆΠΈΠΌ мСстом описания Message_window станСт класс, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½Ρ‹ всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ систСмы, Π½ΡƒΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π² ΠΎΠΊΠ½Π΅ Π²Ρ‹Π΄Π°Ρ‡ΠΈ сообщСний.

Π‘ΠΎΠ·Π΄Π°Π² раздСляСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈΠ³Ρ€Π°ΡŽΡ‰ΠΈΠΉ Ρ€ΠΎΠ»ΡŒ константы, (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, i), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Ρ‹ i.some_procedure, способныС Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ. Для этого, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² классС COMPLEX достаточно ввСсти Π² ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ класса прСдлоТСния i.x = 0 ΠΈ i.y = 1.

ΠžΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ являСтся ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ - "систСмных ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½ΡƒΠΆΠ½Ρ‹ сразу нСскольким классам, Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² Ρ…ΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ сСссии. Π˜Ρ… Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ установка Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ срСды. НапримСр:

[x]. ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ систСмы ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ объСм доступной ΠΈΠΌ памяти, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ срСдой ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ;

[x]. систСма эмуляции Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ срСдС запроса ΠΎ числС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚ΠΎΠ². Π—Π°Ρ‚Π΅ΠΌ эти Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² рядС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ прилоТСния.

Π’Π°ΠΊΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ, хотя ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ значСниями Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π‘Ρ…Π΅ΠΌΠ° ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ функциями Ρ‚Π°ΠΊΠΎΠ²Π°:


Const_value: T is

-- ΠžΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ вычисляСмый систСмный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€

local

envir_param: T ' -- Π›ΡŽΠ±ΠΎΠΉ Ρ‚ΠΈΠΏ (T ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ)

once

"ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ envir_param ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ срСды"

Result := "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, рассчитанноС Π½Π° основС envir_param"

end



Π’Π°ΠΊΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ динамичСски вычисляСмыС константы.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π΄Π°Π½Π½ΠΎΠ΅ объявлСниС находится Π² классС ENVIR. Класс, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π½Π°Π΄ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ константой Const_value, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Π°Π² ENVIR Π² спискС своих Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ классичСского ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ расчСту константы, здСсь Π½Π΅ Π½ΡƒΠΆΠ½Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ систСмы, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‰Π°Ρ всС Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ систСмы, ΠΊΠ°ΠΊ это дСлаСтся Π² классичСском ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅. Как ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… лСкциях, такая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Π»Π° Π±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ доступ ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ дСталям ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Ρ‡Ρ‚ΠΎ Π½Π°Ρ€ΡƒΡˆΠ°Π»ΠΎ Π±Ρ‹ ряд ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π² ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ: Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, скрытия ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ…. Наоборот, классы, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ENVIR, ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ согласованныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ мноТСство логичСски связанных Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ вычислСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Const_value, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запросит этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ систСмы. Π₯отя Const_value являСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π΅Π»ΠΎ с константным Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ.