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

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

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

Если отсутствуСт else, ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ e Π½Π΅ соотвСтствуСт Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΌΡƒ vi, Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ситуация ("НСкоррСктно провСряСмоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅"). Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΡƒΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ условная инструкция Π² этом случаС Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚. Но ΠΎΠ½ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΠ΅Ρ‚ спСцифику инструкции мноТСствСнного Π²Ρ‹Π±ΠΎΡ€Π°. Когда Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ inspect с Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ vi, Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ else, Π΄Π°ΠΆΠ΅ ΠΏΡƒΡΡ‚ΡƒΡŽ, Ссли Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π²ΠΎ врСмя выполнСния значСния e ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΠΌ vi. Если Π²Ρ‹ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ else, Ρ‚ΠΎ это эквивалСнтно явному ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΡŽ: "Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ e всСгда являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· vi". ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡ это ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ создавая ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ Π΅Π³ΠΎ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΈ, рСализация ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π°ΠΌ услугу. БСздСйствиС Π² Π΄Π°Π½Π½ΠΎΠΉ ситуации - ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ - Π² любом случаС, Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅.

Одно ΠΈΠ· частых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ инструкции мноТСствСнного Π²Ρ‹Π±ΠΎΡ€Π° - Π°Π½Π°Π»ΠΈΠ· символа, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ13.4):


inspect

first_input_letter

when 'D' then

"Π£Π΄Π°Π»ΠΈΡ‚ΡŒ строку"

when 'I' then

"Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ строку"

...

else

message ("НСопознанная ΠΊΠΎΠΌΠ°Π½Π΄Π°; Π²Π²Π΅Π΄ΠΈΡ‚Π΅ H для получСния справки")

end



Когда значСния vi Ρ†Π΅Π»Ρ‹Π΅, Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΊΠ°ΠΊ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ (unique values), концСпция ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… рассмотрСна Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Π² объявлСнии ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько абстрактных констант, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Do, Re, Mi, Fa, Sol, La, Si: INTEGER is unique, ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² инструкции: inspect note when Do then...when Re then...end.

Как ΠΈ условныС инструкции, инструкции мноТСствСнного Π²Ρ‹Π±ΠΎΡ€Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π·Π°ΠΌΠ΅Π½Ρ‹ нСявного Π²Ρ‹Π±ΠΎΡ€Π°, основанного Π½Π° динамичСском связывании.

Π¦ΠΈΠΊΠ»Ρ‹

Бинтаксис Ρ†ΠΈΠΊΠ»ΠΎΠ² описан ΠΏΡ€ΠΈ обсуТдСнии ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΠšΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρƒ (лСкция 11):


from

initialization_instructions

invariant

invariant

variant

variant

until

exit_condition

loop

loop_instructions

end



ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ invariant ΠΈ variant Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ from трСбуСтся, хотя ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустым. Оно Π·Π°Π΄Π°Π΅Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ†ΠΈΠΊΠ»Π°. НС рассматривая сСйчас Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ прСдлоТСния, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π’Π½Π°Ρ‡Π°Π»Π΅ происходит инициализация, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ initialization_instructions. Π—Π°Ρ‚Π΅ΠΌ слСдуСт "цикличСский процСсс", опрСдСляСмый Ρ‚Π°ΠΊ: Ссли exit_condition Π²Π΅Ρ€Π½ΠΎ, Ρ‚ΠΎ цикличСский процСсс - пустая инструкция (null instruction); Ссли условиС Π½Π΅Π²Π΅Ρ€Π½ΠΎ, Ρ‚ΠΎ цикличСский процСсс - это Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ loop_instructions, Π·Π°Ρ‚Π΅ΠΌ слСдуСт (рСкурсивно) ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ цикличСского процСсса.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»Π°ΡΡŒ ΠΏΡ€ΠΈ обсуТдСнии ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ (лСкция 11). Она Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ утвСрТдСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒΡΡ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ…:


check

assertion -- Одно ΠΈΠ»ΠΈ большС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ

end



ΠžΡ‚Π»Π°Π΄ΠΊΠ°

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ являСтся срСдством условной компиляции. Она записываСтся Ρ‚Π°ΠΊ:


debug instruction; instruction; ... end



Π’ Ρ„Π°ΠΉΠ»Π΅ управлСния (Ace-Ρ„Π°ΠΉΠ»Π΅) для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ debug. ΠŸΡ€ΠΈ Π΅Π³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ всС инструкции ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ, ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ - ΠΎΠ½ΠΈ Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

Π­Ρ‚Ρƒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… дСйствий, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π΅Π»ΠΈΡ‡ΠΈΠ½.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ вычислСний

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ выполнСния Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»Π°ΡΡŒ ΠΏΡ€ΠΈ обсуТдСнии ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций (лСкция 12). Она появляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ rescue, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ запуская Ρ‚Π΅Π»ΠΎ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€Π°Π±ΠΎΡ‚Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π»Π° ΠΏΡ€Π΅Ρ€Π²Π°Π½Π°.

ВыраТСния

Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π΅Ρ‚ вычислСниС, Π²Ρ‹Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ВыраТСниями ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

[x]. Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ (манифСстныС) константы;

[x]. сущности (Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ сущности, Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Result);

[x]. Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ;

[x]. выраТСния с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ (тСхничСски - это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ случай Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ);

[x]. Current.

ΠœΠ°Π½ΠΈΡ„Π΅ΡΡ‚Π½Ρ‹Π΅ константы

НСимСнованная ΠΈΠ»ΠΈ манифСстная константа задаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, синтаксис ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ Ρ‚ΠΈΠΏ этого значСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ†Π΅Π»ΠΎΠ΅ 0. Π­Ρ‚ΠΈΠΌ ΠΎΠ½Π° отличаСтся ΠΎΡ‚ символьной константы, Ρ‡ΡŒΠ΅ имя Π½Π΅ зависит ΠΎΡ‚ значСния.

Π‘ΡƒΠ»Π΅Π²Ρ‹Ρ… констант Π΄Π²Π΅, - True ΠΈ False. Π¦Π΅Π»Ρ‹Π΅ константы ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


453 -678 +66623



Π’ записи вСщСствСнных (real) констант присутствуСт дСсятичная Ρ‚ΠΎΡ‡ΠΊΠ°. ЦСлая, Π»ΠΈΠ±ΠΎ дробная Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ. ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°ΠΊ ΠΈ экспонСнта, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


52.5 -54.44 +45.01 .983 -897. 999.e12



Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ константы состоят ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 'A'. Для Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… символов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΉ класс STRING, описанный Π½ΠΈΠΆΠ΅.

Π’Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Π’Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ синтаксис, ΠΊΠ°ΠΊ ΠΈ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€. Они ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈ Π½Π΅ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅: Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ нотация с ΠΌΠ½ΠΎΠ³ΠΎΡ‚ΠΎΡ‡ΠΈΠ΅ΠΌ. ΠŸΡ€ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡΡ… класса ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΠ½ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊΠΎΠ²Ρ‹:


b.f

b.g(x, y, ...)

b.h(u, v).i.j(x, y, ...)



ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ для ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

Π—Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ слово Current ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ экзСмпляр класса ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. Π‘Π°ΠΌΠΎ Current - Ρ‚ΠΎΠΆΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π° Π½Π΅ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π°Ρ запись. Π—Π½Π°Ρ‡ΠΈΡ‚ присваиваниС Current, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Current := some_value Π±ΡƒΠ΄Π΅Ρ‚ синтаксичСски Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌ.

ΠŸΡ€ΠΈ ссылкС Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ) Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ экзСмпляра Π½Π΅Ρ‚ нСобходимости ΠΏΠΈΡΠ°Ρ‚ΡŒ Current.f, достаточно Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ f. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Current ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π΅ΠΆΠ΅, Ρ‡Π΅ΠΌ Π² ОО-языках, Π³Π΄Π΅ каТдая ссылка Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ явно ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ. (НапримСр, Π² Smalltalk ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ всСгда ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ экзСмпляру.) Π‘Π»ΡƒΡ‡Π°ΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ явно Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Current Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚:

[x]. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ экзСмпляра Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΊΠ°ΠΊ Π² a.f (Current). ΠžΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ - созданиС ΠΊΠΎΠΏΠΈΠΈ (duplicate) Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ экзСмпляра, ΠΊΠ°ΠΊ Π² x: = clone (Current).

[x]. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ,- присоСдинСна Π»ΠΈ ссылка ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ экзСмпляру, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ x = Current.

[x]. ИспользованиС Current Π² качСствС ΠΎΠΏΠΎΡ€Π½ΠΎΠ³ΠΎ элСмСнта Π² "Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½ΠΎΠΌ объявлСнии" Π² Ρ„ΠΎΡ€ΠΌΠ΅ like Current (лСкция 16).

ВыраТСния с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ

ВыраТСния ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π·Π½Π°ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

Π£Π½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ + ΠΈ - ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ Ρ†Π΅Π»Ρ‹ΠΌ ΠΈ вСщСствСнным выраТСниям ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ Π±ΡƒΠ»Π΅Π²Ρ‹ΠΌ выраТСниям.

Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΎΡ‡Π½ΠΎ Π΄Π²Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ:


= /= < > <= >=



Π³Π΄Π΅ /= ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ "Π½Π΅ Ρ€Π°Π²Π½ΠΎ". Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΡƒΠ»Π΅Π² Ρ‚ΠΈΠΏ.

ВыраТСния ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ², соСдинСнных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ. ЧислСнныС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ:


+ - . / ^ // \\



Π³Π΄Π΅ // цСлочислСнноС Π΄Π΅Π»Π΅Π½ΠΈΠ΅, \\ Ρ†Π΅Π»Ρ‹ΠΉ остаток, Π° ^ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ (Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ).

Π‘ΡƒΠ»Π΅Π²Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ: and, or, xor, and then, or else, implies. ПослСдниС Ρ‚Ρ€ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅; xor - ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ ΠΈΠ»ΠΈ.

ΠŸΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², основанноС Π½Π° ΡΠΎΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡΡ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, строится ΠΏΠΎ "ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ НаимСньшСй НСоТиданности". Π’ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ нСопрСдСлСнности ΠΈ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹, Π² ΠΊΠ½ΠΈΠ³Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ скобки, Π΄Π°ΠΆΠ΅ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΎΠ½ΠΈ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π½ΡƒΠΆΠ½Ρ‹.

НСстрогиС Π±ΡƒΠ»Π΅Π²Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ and then ΠΈ or else (названия заимствованы ΠΈΠ· языка Ada), Π° Ρ‚Π°ΠΊΠΆΠ΅ implies Π½Π΅ ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹ ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ нСстрогими (non-strict) Π±ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ. Π˜Ρ… сСмантика ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ: