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

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

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

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² процСссС функционирования ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ элСктронной Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Ρ‹. ЀизичСская систСма, Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ, со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π΅Ρ€ΡΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ; ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅ - износ, Ρ€Π°Π·Ρ€Ρ‹Π², внСшниС воздСйствия. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ являСтся, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒ сигнала ΠΎΠ±Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Π΅Π³ΠΎ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ. Для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм Ρ„Π΅Π½ΠΎΠΌΠ΅Π½Π° износа Π½Π΅ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ, Π½Π΅Ρ‚ ΠΈ нСобходимости Π² ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ….

МоТно Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊ называСмая избыточная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, Π½Π° самом Π΄Π΅Π»Π΅ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ Π½Π΅ являСтся: это ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ тСсты, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π·Π½Ρ‹Ρ… устройств ΠΈ Ρ‚.Π΄.


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

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

УтвСрТдСния Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

ПолСзно ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… нСявно ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π²ΡˆΠΈΡ…ΡΡ свойствах ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ². Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ взаимодСйствиС Π΄Π²ΡƒΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° - ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°). ΠšΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π΅ Π·Π°Π΄Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΈΠ΄Ρ‹ взаимодСйствий: Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ - ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, внСшний ΠΌΠΈΡ€ - ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. ΠŸΡ€Π΅Π΄ΡƒΡΠ»ΠΎΠ²ΠΈΠ΅ Π½Π΅ заботится ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° read_positive_integer, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰Π°Ρ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ прСдусловия:


require

input > 0



хотя ΠΈ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ тСхничСски Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΠΎ. ΠŸΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°Ρ… нСльзя. Π’ Π΄Π°Π½Π½ΠΎΠΉ ситуации Π½Π΅Ρ‚ замСнитСля ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ конструкции ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ условия, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΡ‡Ρ‚Π΅Π½Π½Ρ‹ΠΉ if - then - else; ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

Π£ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ своя Ρ€ΠΎΠ»ΡŒ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ описании критСрия ЗащищСнности модуля ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ ΠœΠ΅Ρ‚ΠΎΠ΄ поощряСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π»ΡŽΠ±Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΈΠ· внСшнСго ΠΌΠΈΡ€Π° - ΠΎΡ‚ сСнсоров, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°, ΠΈΠ· сСти ΠΈ Ρ‚. Π΄. Π­Ρ‚Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ максимально ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π° ΠΊ источникам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΈ нСобходимости ΠΌΠΎΠ΄ΡƒΠ»ΠΈ - "Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹".

Рис. 11.1.  Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ - Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²

ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ·Π²Π½Π΅ нСльзя ΠΎΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ Π½Π° прСдусловия. Π—Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π° - Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ никакая информация Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ модулям, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ условиям, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΌ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ утвСрТдСния Π±ΡƒΠ΄ΡƒΡ‚ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² коммуникациях ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° - ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. ΠŸΠΎΡΡ‚ΡƒΡΠ»ΠΎΠ²ΠΈΡ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π²ΠΎΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ прСдусловия, ΠΏΡ€ΠΎΠ΄ΠΈΠΊΡ‚ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ модулями. Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΈΠ³Ρ€Π°ΡŽΡ‚ ΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‰ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ, обСспСчивая ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

УтвСрТдСния это Π½Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ структуры

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠ΅ Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ - Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ утвСрТдСния ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ структуру, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΡƒΡŽ Ρ€Π°Π·Π±ΠΎΡ€ случаСв. К этому ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ясно, Ρ‡Ρ‚ΠΎ Π½Π΅ Π² этом ΠΈΡ… Ρ€ΠΎΠ»ΡŒ. Если Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ sqrt, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΈΠΌ способом, Π° ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ - Π΄Ρ€ΡƒΠ³ΠΈΠΌ, Ρ‚ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ прСдусловиС - ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ require Π½Π΅ слСдуСт. Π’ этом случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ€Π°Π·Π±ΠΎΡ€ случаСв: ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if - then - else, ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ case языка Pascal, ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ inspect, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π² этой ΠΊΠ½ΠΈΠ³Π΅ ΠΊΠ°ΠΊ Ρ€Π°Π· для Ρ‚Π°ΠΊΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ.

УтвСрТдСния Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‚ Π½Π΅Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅. Они говорят ΠΎ коррСктности условий. Если sqrt ΠΈΠΌΠ΅Π΅Ρ‚ прСдусловиС, Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ x<0, это "ΠΆΡƒΡ‡ΠΎΠΊ" (bug).

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ утвСрТдСния (1)

ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ утвСрТдСния Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ выполнСния являСтся проявлСниСм "ΠΆΡƒΡ‡ΠΊΠ°" Π² ПО.

Π‘Π»ΠΎΠ²ΠΎ "ΠΆΡƒΡ‡ΠΎΠΊ" Π½Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊ Π½Π°ΡƒΡ‡Π½ΠΎΠΌΡƒ лСксикону, Π½ΠΎ этот Ρ‚Π΅Ρ€ΠΌΠΈΠ½ понятСн всСм программистам. Учитывая ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹, это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ:

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ утвСрТдСния (2)

ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ прСдусловия являСтся проявлСниСм "ΠΆΡƒΡ‡ΠΊΠ°" Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ постусловия являСтся проявлСниСм "ΠΆΡƒΡ‡ΠΊΠ°" Ρƒ поставщика.

ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ прСдусловия ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°Ρ€ΡƒΡˆΠΈΠ»Π° ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ - "Π²ΠΈΠ½ΠΎΠ²Π°Ρ‚ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊ". Π‘ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ внСшнСго Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ сам ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚, Π½ΠΎ коль скоро ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½, Π΅Π³ΠΎ слСдуСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ. Если Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰Π°Ρ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ, Ρ‚ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ‡ΡŒΠ΅ прСдусловиС Π½Π΅ выполняСтся, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла.

ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ постусловия ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ вызванная Π² ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Ρ… условиях, Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π° свою Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠΌ. Π—Π΄Π΅ΡΡŒ Ρ‚ΠΎΠΆΠ΅ ясно, ΠΊΡ‚ΠΎ Π²ΠΈΠ½ΠΎΠ²Π°Ρ‚, Π° ΠΊΡ‚ΠΎ Π½Π΅Ρ‚: "ΠΆΡƒΡ‡ΠΎΠΊ" Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠ½ΠΎΠ²Π΅Π½.

Ошибки, Π΄Π΅Ρ„Π΅ΠΊΡ‚Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ насСкомыС

ПоявлСниС слова "ΠΆΡƒΡ‡ΠΎΠΊ" Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΉ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ - Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΠΎΠ²ΠΎΠ΄ ΠΏΡ€ΠΎΡΡΠ½ΠΈΡ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡŽ. Π­. ДСйкстра ΠΏΠΎΠ»Π°Π³Π°Π», Ρ‡Ρ‚ΠΎ появлСниС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° "ΠΆΡƒΡ‡ΠΎΠΊ" связано с ΠΆΠ°Π»ΠΊΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΎΠΉ программистов ΠΎΠ±Π²ΠΈΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ошибка "Π·Π°ΠΊΡ€Π°Π»Π°ΡΡŒ" Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ со стороны, ΠΏΠΎΠΊΠ° программисты занимались Π΄Π΅Π»ΠΎΠΌ, - ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ Π½Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΎΠ²ΠΈΠ½Π½Ρ‹ Π² ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…. И всС ΠΆΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ приТился, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠ·-Π·Π° ΡΠΌΠΎΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ окраски ΠΈ понятности. И Π² этой ΠΊΠ½ΠΈΠ³Π΅ ΠΎΠ½ свободно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Π½ΠΎ слСдуСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ спСцифичСскими (ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΡƒΠ΄Π½Ρ‹ΠΌΠΈ) Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°ΠΌΠΈ для случаСв, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π±ΠΎΠ»Π΅Π΅ строгая классификация ошибок.

Π’Π΅Ρ€ΠΌΠΈΠ½Ρ‹, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ бСдствия ПО

Ошибка (Error) - Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, принятоС ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ систСмы.

Π”Π΅Ρ„Π΅ΠΊΡ‚ (Defect) - свойство ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ систСмы, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ отклонСния систСмы ΠΎΡ‚ Π½Π°ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ повСдСния.

ΠΠ΅ΠΈΡΠΏΡ€Π°Π²Π½ΠΎΡΡ‚ΡŒ (Fault) - событиС Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ систСмС, ΠΏΡ€ΠΈΠ²Π΅Π΄ΡˆΠ΅Π΅ ΠΊ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡŽ ΠΎΡ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ повСдСния Π² процСссС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· запусков систСмы.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π½Ρ‹Π΅ связи понятны: нСисправности ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π΄Π΅Ρ„Π΅ΠΊΡ‚Π°ΠΌΠΈ, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ошибок.

"Π–ΡƒΡ‡ΠΎΠΊ" ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π΄Π΅Ρ„Π΅ΠΊΡ‚Π° ("Π° Π²Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Π² вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΆΡƒΡ‡ΠΊΠΎΠ²"?). Π’Π°ΠΊΠΎΠ²Π° Π΅Π³ΠΎ интСрпрСтация Π² этой ΠΊΠ½ΠΈΠ³Π΅. Но Π² Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… обсуТдСниях ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΈ ΠΊΠ°ΠΊ ошибка ΠΈ ΠΊΠ°ΠΊ Π½Π΅ΠΈΡΠΏΡ€Π°Π²Π½ΠΎΡΡ‚ΡŒ.

Π Π°Π±ΠΎΡ‚Π° с утвСрТдСниями

Π”Π°Π²Π°ΠΉΡ‚Π΅ займСмся дальнСйшим исслСдованиСм прСдусловий ΠΈ постусловий, рассматривая понятныС элСмСнтарныС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹. УтвСрТдСния, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ простыС, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅, Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ°Ρ‚ΡŒ Π²ΠΎ всС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… лСкциях.

Класс стСк

ΠŸΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡ‹ΠΉ с утвСрТдСниями класс STACK Π±Ρ‹Π» оставлСн ΠΏΠΎΠΊΠ° Π² схСматичной Ρ„ΠΎΡ€ΠΌΠ΅ (STACK1). Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π° суд прСдстанСт полная вСрсия, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.

Для написания эффСктивного класса Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ. Π’ качСствС Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ стСка Π½Π° Π±Π°Π·Π΅ массива, ΡƒΠΆΠ΅ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π²ΡˆΠ°ΡΡΡ ΠΏΡ€ΠΈ рассмотрСнии АВД Π² ΡˆΠ΅ΡΡ‚ΠΎΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ.

Рис. 11.2.  Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ стСка Π½Π° Π±Π°Π·Π΅ массива

Массив, Π½Π°Π·Π²Π°Π½Π½Ρ‹ΠΉ representation, ΠΈΠΌΠ΅Π΅Ρ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ 1 ΠΈ capacity: рСализация ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ цСлочислСнный Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ count, ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ стСка. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ для сСбя наслСдованиС, появится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ классы с ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ нСсколько Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ, Π° Π½Π΅ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ. Π”Π°ΠΆΠ΅ для класса c фиксированной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ здСсь Π½Π° Π±Π°Π·Π΅ массива, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса Array. Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ наслСдования ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚.

Π’ΠΎΡ‚ ΠΎΠ½ класс. ΠžΡΡ‚Π°Π΅Ρ‚ΡΡ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ для массива a опСрация, ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‰Π°Ρ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ x Π΅Π³ΠΎ i-ΠΌΡƒ элСмСнту, записываСтся Ρ‚Π°ΠΊ: a.put(x,i). ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ i-ΠΉ элСмСнт ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ: a.item(i) ΠΈΠ»ΠΈ a @ i. Если, ΠΊΠ°ΠΊ здСсь, Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π·Π°Π΄Π°Π½Ρ‹, Ρ‚ΠΎ i Π²ΠΎ всСх случаях Π»Π΅ΠΆΠΈΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ этими Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ: 1<= i <= capacity.