ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠžΠ±ΡƒΡ‡Π°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ button1 (Ошибки Π½Π΅Ρ‚) Π² Π½Π°Ρ‡Π°Π»Π΅ исчСзаСт всС Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ успСл ввСсти Π² ΠΎΠΊΠ½ΠΎ «Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚» (textBox2.Text="" ;), Ρ‚.ΠΊ. Π½Π°ΠΆΠ°Π² эту ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠΆΠ΅ Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ошибок Π² Ρ‡ΠΈΡΠ»Π΅. ΠŸΠΎΡ‚ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ конструкции if ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ся Π½Π΅ Π·Π°ΠΏΠΈΡΠ°Π½ Π»ΠΈ ΡƒΠΆΠ΅ ΠΎΡ‚Π²Π΅Ρ‚ Π² ΠΎΠΊΠ½Π΅ «ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚"(if (textBox1.Text.Length≠textBox3.Text.Length) Π΅Π»ΠΈ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠžΠ±ΡƒΡ‡Π°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

  • Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅
  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  • Π“Π»Π°Π²Π° 1. Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ
  • 1.1 Π¦Π΅Π»Π΅ΡΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° языка программирования
  • 1.2. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ структуры языка программирования C#
  • 1.3. ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ чСтности / нСчСтности
  • 1.4. ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π₯эмминга
  • 1.5. Машина ΠŸΠΎΡΡ‚Π°
  • Π“Π»Π°Π²Π° 2. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ программиста
  • Π“Π»Π°Π²Π° 3. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
  • 3.1 ИспользованиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ StudyProgram для усвоСния ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΠΏΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ чСтности ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π₯эмминга
  • 3.2 ИспользованиС ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ StudyProgram для овладСния Π½Π°Π²Ρ‹ΠΊΠ°ΠΌΠΈ составлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π°
  • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
  • Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’ ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Π±Ρ‹Π»Π° поставлСна Π·Π°Π΄Π°Ρ‡Π° создания ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ студСнты смогут ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ свои знания Π² Ρ‚Π°ΠΊΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… Π΄Π°Π½Π½ΠΎΠΉ дисциплины ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π₯эмминга, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ чСтности-нСчСтности, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π°.

ЦСль Ρ€Π°Π±ΠΎΡ‚Ρ‹: ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования C#.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² кодирования Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… чисСл ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π°. ΠšΡƒΡ€ΡΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ состоит ΠΈΠ· ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌ.

Для создания курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° использовался C# - Π½ΠΎΠ²Ρ‹ΠΉ язык программирования ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft, входящий Π² Visual Studio .Net (v.7).

Π“Π»Π°Π²Π° 1. Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ

1.1 Π¦Π΅Π»Π΅ΡΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° языка программирования

Π’ ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π±Ρ‹Π»Π° поставлСна Π·Π°Π΄Π°Ρ‡Π°, рСализация ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языков программирования. Но ΠΌΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ язык Π‘#, входящий Π² Visual Studio .Net (v.7), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ ряд прСимущСств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ процСсс создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² Π²Ρ‹Π±ΠΎΡ€Π΅ языка сыграло Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ C# - Π»ΡƒΡ‡ΡˆΠΈΠΉ .NET-язык, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π±Ρ‹Π» ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ спроСктирован для .NET Framework.

C# создавался Microsoft, ΠΊΠ°ΠΊ основной язык для .NET Framework. Microsoft спроСктировала C# Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π‘, Π‘++ ΠΈ Java-программисты смогли Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π½Π΅Π³ΠΎ. C# ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΡ€Π½ΠΈ Π² ΡΠ·Ρ‹ΠΊΠ°Ρ… Π‘, Π‘++ ΠΈ Java, поэтому Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΈΠΉ.

Бинтаксис Ρƒ C# Π½Π΅ Ρ‚Π°ΠΊΠΎΠΉ слоТный ΠΊΠ°ΠΊ Ρƒ Π‘++, поэтому Π΅Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Π³Ρ‡Π΅. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π° Π‘++, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ Π½Π° C#, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ доступа ΠΊ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ функциям (это всС-Ρ‚Π°ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нСуправляСмого ΠΊΠΎΠ΄Π°).

Π‘# - ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ язык, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ вСрсиями .NET Framework для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

Π―Π·Ρ‹ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ классов .NET Framework (FCL) ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚ся общСязыковой срСдой исполнСния (CLR) являСтся .NET-совмСстимым языком (язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° .NET). Π‘Ρ€Π΅Π΄ΠΈ Ρ‚Π°ΠΊΠΈΡ… языков: Microsoft Visual Basic .NET (VB .NET), Microsoft Visual C++ .NET, Π° Ρ‚Π°ΠΊΠΆΠ΅ COBOL, Eiffel, Jscript, RPG ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Как ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Ρ€Π°Π½Π΅Π΅, C# Π±Ρ‹Π» спроСктирован ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для .NET Framework ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚, ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΡˆΠΈΠΉ ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠœΠ°ΠΉΠΊΡ€ΠΎΡΠΎΡ„Ρ‚, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сСбС C# ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ C++ ΠΈ Visual Basic, Ссли Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ языковых конструкций ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ языка.

C# ΠΈΠΌΠ΅Π΅Ρ‚ C ΡΡ‚ΠΈΠ»ΡŒ синтаксиса (для ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… конструкций, Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π°, описания сигнатуры ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Π΄Ρ€.), ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ с Java (отсутствиС мноТСствСнного наслСдования ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½ΠΎΠ², Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ сборщика мусора) ΠΈ Π”Π΅Π»ΡŒΡ„ΠΈ (ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚), Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΡ€ΠΈΡ‚.

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

C# ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык, ΠΊΠ°ΠΊ ΠΈ Π²ΡΡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° .NET[7].

ΠŸΡ€ΠΈ создании языка Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»Π°ΡΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ простота написания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΈ ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ — Π² ΡΠ²ΡΠ·ΠΈ, с Ρ‡Π΅ΠΌ Π² ΡΠ·Ρ‹ΠΊ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ XML ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈ ΠΊΠΎΠ½Ρ‚роля вСрсий. Настоящий ΠΏΠΎΠ΄Π°Ρ€ΠΎΠΊ для программистов.

Π’ C# прСдставлСна концСпция пространств ΠΈΠΌΠ΅Π½, аналогичная ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ Π² Java. Π­Ρ‚ΠΎ позволяСт иСрархичСски ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π’Π°ΡˆΡƒ систСму Ρ‚ΠΈΠΏΠΎΠ², дСлая ΠΊΠΎΠ΄ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ понятным ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ пространства ΠΈΠΌΠ΅Π½ ΠΊΠ°ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π° ΡΠ·Ρ‹ΠΊΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΡΡ‚ΠΈΡ… дирСкториях.

РСализация структур ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏΠΎΠ², Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΈΠ΄Π΅Ρ‚ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, вмСстС с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ массивы (ΠΊΠ°ΠΊ Π² Java), Π½ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ позволяСт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π’Π²ΠΈΠ΄Ρƒ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, C# являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для быстрого конструирования Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² — ΠΎΡ‚ Π²Ρ‹ΡΠΎΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ бизнСс Π»ΠΎΠ³ΠΈΠΊΠΈ Π΄ΠΎ ΡΠΈΡΡ‚Π΅ΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ ΠΊΠΎΠ΄[6]. Π’Π°ΠΊΠΆΠ΅ слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ C# являСтся ΠΈ Web ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ простыС встроСнныС конструкции языка ваши ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½Ρ‹ Π² Web сСрвисы, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈΠ· Internet посрСдством любого языка Π½Π° Π»ΡŽΠ±ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности ΠΈ ΠΏΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΏΠ΅Ρ€Π΅Π΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками приносит Π² C# использованиС ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Ρ… Web Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ: XML (Extensible Markup Language) ΠΈ SOAP (Simple Object Access Protocol). Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Web сСрвисов позволяСт программисту ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ сСгодня Web прилоТСния, ΠΊΠ°ΠΊ Π½Π° Ρ€ΠΎΠ΄Π½Ρ‹Π΅ C# ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ соотнСсти ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Web сСрвисы с ΠΈΡ… ΠΏΠΎΠ·Π½Π°Π½ΠΈΡΠΌΠΈ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ[6].

Как Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅, Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ язык программирования Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π΅Π½ для выполнСния поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ.

1.2. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ структуры языка программирования C#

ΠšΠ»Π°ΡΡΡ‹

ΠšΠ»Π°ΡΡΡ‹ — сСрдцС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ языка. Как Π²Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, класс прСдставляСт собой ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π­Ρ‚ΠΎ справСдливо для любого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ языка ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ Π² ΡΡ‚ΠΎΠΌ ΠΏΠ»Π°Π½Π΅ лишь Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Ρ‚Π΅Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Ρ‡Π»Π΅Π½ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ возмоТностями классов. Π’ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ касаСтся классов ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ языка, Π‘# ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ заимствуСт ΠΈΠ· C++ ΠΈ Java, ΠΈ ΠΏΡ€ΠΈΠ²Π½ΠΎΡΠΈΡ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰Π΅ΠΉ Π½Π°ΠΉΡ‚ΠΈ элСгантныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ старых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Бинтаксис опрСдСлСния классов Π½Π° Π‘#, прост, особСнно Ссли Π²Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π½Π° C++ ΠΈΠ»ΠΈ Java. ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΠ² ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ вашСго класса ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово class, Π²Ρ‹ Π²ΡΡ‚авляСтС Ρ‡Π»Π΅Π½Ρ‹ класса, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

class Employee

{

private long employeeld;

}

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, этот ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ класс с ΠΈΠΌΠ΅Π½Π΅ΠΌ Employee содСрТит СдинствСнный Ρ‡Π»Π΅Π½ — employeeld. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅: ΠΈΠΌΠ΅Π½ΠΈ Ρ‡Π»Π΅Π½Π° ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово private — это ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ доступа (access modifier).

Π§Π»Π΅Π½Ρ‹ класса

Π’ΠΈΠΏΡ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² CIS (Common Type System) ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Ρ‡Π»Π΅Π½Ρ‹ классов Π‘# ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π²ΠΈΠ΄ΠΎΠ².

Β· ПолС. Π’Π°ΠΊ называСтся Ρ‡Π»Π΅Π½-пСрСмСнная, содСрТащий Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ ΠžΠžΠŸ поля ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. К ΠΏΠΎΠ»ΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ нСсколько ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ это ΠΏΠΎΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π’ Ρ‡ΠΈΡΠ»ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² входят static, readonly ΠΈ const.

Β· ΠœΠ΅Ρ‚ΠΎΠ΄. Π­Ρ‚ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π²ΠΎΠ·Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π½Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (ΠΈΠ»ΠΈ поля).

Β· Бвойства. Π˜Ρ… ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ «Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΌΠΈ» полями (smart fields), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ класса Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΊΠ°ΠΊ поля. Π­Ρ‚ΠΎ обСспСчиваСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ абстрагирования Π·Π° ΡΡ‡Π΅Ρ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π»ΠΈ ΠΎΠ½ΠΈ ΠΊ ΠΏΠΎΠ»ΡŽ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°-аксСссора.

Β· ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹. Как ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, исходя ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ, константа — это ΠΏΠΎΠ»Π΅, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ нСльзя.

Β· Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ‚ΠΎΡ€Ρ‹. Если свойства — это «Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Π΅» поля, Ρ‚ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ‚ΠΎΡ€Ρ‹ — это «Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Π΅» массивы, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ-аксСссорами get ΠΈ set. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ индСксатора Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для установки ΠΈΠ»ΠΈ получСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Β· Бобытия. Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ исполнСниС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π°. Бобытия — Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ программирования для Microsoft Windows. НапримСр, события Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΌΡ‹ΡˆΠΈ, Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠΊΠ½Π°. Бобытия Π‘# ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Ρƒ ΠΆΠ΅ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ модСль ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ/подписки (publish/subscribe), Ρ‡Ρ‚ΠΎ ΠΈ Π² MSMQ (Microsoft Message Queuing) ΠΈ Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ событий БОМ+, которая Π΄Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ срСдства асинхронной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий. Но Π² Π‘# это базовая концСпция, встроСнная Π² ΡΠ·Ρ‹ΠΊ.

Β· ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π‘#, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΊ ΠΊΠ»Π°ΡΡΡƒ стандартныС матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный ΠΊΠΎΠ΄.

ΠœΠ°ΡΡΠΈΠ²Ρ‹

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² C# ΠΎΡ‡Π΅Π½ΡŒ просты ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΠΌΠ°ΡΡΠΈΠ²Ρ‹ Π² C++. Π’ C# имССтся Ρ‚Ρ€ΠΈ основных Ρ‚ΠΈΠΏΠ° массивов: ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅, ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΈ Π½Π΅Ρ€ΠΎΠ²Π½Ρ‹Π΅ (jagged):

Π‘ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами всС ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ:

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ Π² C++:

int[] array = new int[10];

int[] array = {1, 2, 3, 4, 5};

Доступ

Доступ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ производится с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° []:

int element = array[0];

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ индСксами ΠΎΡ‚ 0 Π΄ΠΎ N — 1, Π³Π΄Π΅ N — Ρ€Π°Π·ΠΌΠ΅Ρ€ массива.

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΊΡƒΠ±Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Ρ‚Π°ΠΊΠΈΡ… массивов ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π°Π±ΠΎΡ€ΠΎΠΌ индСксов — «ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚» Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΌ пространствС. КаТдоС ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ свою Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ, Π½Π΅ Π·Π°Π²ΠΈΡΡΡ‰ΡƒΡŽ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ…. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… языков (Java), ΠΈΠ±ΠΎ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π½Π΅Ρ€ΠΎΠ²Π½Ρ‹ΠΌΠΈ массивами, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ

ΠŸΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ размСрности ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ:

int[,] array = new int[10, 20];

int[,] array = {{1, 2}, {3, 4}};

Доступ

Доступ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ производится с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° [], Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ индСксы Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ:

int element = array[0, 2];

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ индСксов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ 0 Π΄ΠΎ N — 1, Π³Π΄Π΅ N — Ρ€Π°Π·ΠΌΠ΅Ρ€ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ измСрСния массива.

Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ конструкции

Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ конструкции — это Ρ‚ΠΎ ΡΡ€Π΅Π΄ΡΡ‚Π²ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΌΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ конструкциями ΡΠ²Π»ΡΡŽΡ‚ΡΡ if, for, while goto. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Π² C# Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… конструкций: switch, do ΠΈ foreach.

if.else

Π‘Π»ΠΎΠΊ if. else, ΠΊΠ°ΠΊ слСдуСт ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ условия.

if (a > b)

{

Console.WriteLine («a > b»);

}

else

{

Console.WriteLine («a <= b»);

}

ЛогичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ… Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ bool (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ C/C++, Π³Π΄Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Ρ†Π΅Π»Ρ‹ΠΌ). Если ΠΎΠ½ΠΎ истинно, выполнится ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠΌΠ°Π½Π΄, Ссли Π»ΠΎΠΆΠ½ΠΎ — Π²Ρ‚ΠΎΡ€ΠΎΠΉ. ΠŸΡ€ΠΈ этом Ссли ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π±Π»ΠΎΠΊ ΠΊΠΎΠΌΠ°Π½Π΄ состоит лишь ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΎΠ±Ρ€Π°ΠΌΠ»ΡΡŽΡ‰ΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ[8]:

if (serverObject ≠ null)

serverObject.Initialize ();

ПокаТСм нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:

// Π˜Π΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ дСлСния Π½Π° 0

if (x ≠ 0)

{

d /= x;

}

else

return;

// ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Π²Π΅Ρ€Π½ΡƒΠ»Π° Π»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ, Ссли Π½Π΅Ρ‚, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ null

if (command.Parameters[" RETURN_VALUE" ]. Value ≠ Convert. DBNull)

return command. Parameters[" RETURN_VALUE" ]. Value;

else

return null;

Π¦ΠΈΠΊΠ» for

Π¦ΠΈΠΊΠ» for прСдставляСт Ρ†ΠΈΠΊΠ» с ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, условиСм окончания ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°.

ArrayList items = new ArrayList (); // Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ список Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ

CreateArray (items); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ всС Π΅Π³ΠΎ элСмСнты ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ

for (int i = 0; i < items. Count; i++)

{

Console.WriteLine («i[{0}] = {1}», i, items[i]);

}

Π›ΠΎΠ³ΠΈΠΊΠ° выполнСния Ρ†ΠΈΠΊΠ»Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ: сначала выполняСтся ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π΄Π°Π»Π΅Π΅ ΠΈΠ΄Π΅Ρ‚ шаг Ρ†ΠΈΠΊΠ»Π°: провСряСтся условиС окончания, Ссли ΠΎΠ½ΠΎ Π»ΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎ Ρ†ΠΈΠΊΠ» прСкращаСтся ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π·Π° Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΈΠ½Π°Ρ‡Π΅ выполняСтся Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°, Π° ΠΏΠΎΡΠ»Π΅ Π½Π΅Π³ΠΎ — ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°.

Π’ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ случаС Ρ†ΠΈΠΊΠ» for ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

// Π‘ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅ΠΌ всС элСмСнты массива

for (int i = 0; i < 10; i++)

sum += array[i];

Вакая Ρ„ΠΎΡ€ΠΌΠ° Ρ†ΠΈΠΊΠ»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с Ρ†Π΅Π»Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Ссли просто Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ дСйствиС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ количСство (Π² Π½Π°ΡˆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 10) Ρ€Π°Π·.

while

Π¦ΠΈΠΊΠ» while являСтся Ρ†ΠΈΠΊΠ»ΠΎΠΌ с ΠΏΡ€Π΅Π΄ΡƒΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ: сначала провСряСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ условиС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, Π° Π·Π°Ρ‚Π΅ΠΌ выполняСтся итСрация Ρ†ΠΈΠΊΠ»Π°. Бинтаксис Ρ†ΠΈΠΊΠ»Π° while Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

// Π—Π°Π΄Π°Π΅ΠΌ число

int num = 678;

// Число разрядов — 0

int len = 0;

// считаСм сколько разрядов Π² Ρ‡ΠΈΡΠ»Π΅

while (num > 0)

{

len++;

num /= 10;

}

Console.WriteLine (len);

Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ° ΠΎΡ‡Π΅Π½ΡŒ проста: провСряСм условиС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°. Если ΠΎΠ½ΠΎ истинно, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ Ρ‚Π΅Π»Ρƒ Ρ†ΠΈΠΊΠ»Π° ΠΈ Π·Π°Ρ‚Π΅ΠΌ снова ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ условия, ΠΈΠ½Π°Ρ‡Π΅ — ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π°.

switch

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ switch являСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ вСтвлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ выраТСния ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. По ΡΡƒΡ‚ΠΈ, ΠΎΠ½ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π΅Π½ Π½Π°Π±ΠΎΡ€Ρƒ Π±Π»ΠΎΠΊΠΎΠ² if, Π½ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π΅Π½.

НаиболСС распространСнным синтаксисом switch являСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

int a = 1;

switch (a)

{

case 0:

//ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ Ссли a = 0

Console.WriteLine («A = 0»);

break;

case 1:

//ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ Ссли a = 1

Console.WriteLine («A = 1»);

break;

default:

//ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ, Ссли Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ²Π½Ρ‹Ρ… случаСв Π½Π΅ ΠΏΠΎΠ΄ΠΎΡˆΠ΅Π»

Console.WriteLine («A <> 0 ΠΈ A <> 1»);

break;

}

Π‘Π»ΠΎΠΊ case x Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся, Ссли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ… послС switch Ρ€Π°Π²Π½ΠΎ x. Π‘Π»ΠΎΠΊ default — Ссли Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· case-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΎΡΡŒ. Π£Π΄ΠΎΠ±Π½ΠΎ switch ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ пСрСчислимых Ρ‚ΠΈΠΏΠΎΠ².

Для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ goto case ΠΈ goto default.

do

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ do Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ†ΠΈΠΊΠ» с ΠΏΠΎΡΡ‚условиСм. Π‘ΡƒΡ‚ΡŒ этого Ρ†ΠΈΠΊΠ»Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° while, Π½ΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π° провСряСтся Π½Π΅ Π΄ΠΎ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, Π° ΠΏΠΎΡΠ»Π΅. Π­Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ.

string s = «A, B, C, D» ;

do

{

s = s. Substring (s.IndexOf («,») + 1);

} while (s.Length > 0);

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡˆΠ»Π° хотя Π±Ρ‹ ΠΎΠ΄Π½Π° итСрация.

Поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

ОбъявлСниС ΠΏΠΎΠ»Π΅ΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ объявлСнию ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

<οΏ½ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€_доступности> <οΏ½Ρ‚ΠΈΠΏ> <οΏ½ΠΈΠ΄Π΅Π½Ρ‚_поля>;

БущСствуСт нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² доступа. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ — public. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ любой ΠΈΠ· ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ…. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ принято Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ с Π±ΡƒΠΊΠ²Ρ‹ f Ρ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ, ΠΊΠ°ΠΊΠΎΠ΅ свойство Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ это ΠΏΠΎΠ»Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, fSpeed.

Если имя поля состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… слов, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся Π²Π΅Ρ€Π±Π»ΡŽΠΆΡŒΡ нотация fMaxFloor. НапримСр, объявлСниС ΠΏΠΎΠ»Π΅ΠΉ классов ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄:

public int fLevel;

public int fPassenger;

public float fSpeed;

ΠŸΡ€ΠΈ объявлСнии ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конструкция Π²ΠΈΠ΄Π°:

<οΏ½ΠΌΠΎΠ΄ΠΈΡ„_дост><οΏ½Ρ‚ΠΈΠΏ_Π²ΠΎΠ·Π²Ρ€_Π·Π½Π°Ρ‡><οΏ½ΠΈΠ΄Π΅Π½Ρ‚_ΠΌΠ΅Ρ‚ΠΎΠ΄Π°>(<οΏ½Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½_ΠΏΠ°Ρ€Π°ΠΌ>opt)

{

<οΏ½Ρ‚Π΅Π»ΠΎ_ΠΌΠ΅Ρ‚ΠΎΠ΄Π°>

}

ΠœΠ΅Ρ‚ΠΎΠ΄ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ поля ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½ΠΎ ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния. Π’ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ значСния ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ся вмСсто <οΏ½Ρ‚ΠΈΠΏ_Π²ΠΎΠ·Π²Ρ€_Π·Π½Π°Ρ‡>.

Если Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ значСния Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, Ρ‚ΠΎ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ‚ΠΈΠΏΠ° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния указываСтся void.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅. Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ объявлСнии ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках, ΠΈΠ΄ΡƒΡ‰ΠΈΡ… Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Π½Π΅ΠΌΡƒ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ Ссли Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π΅ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π΅Π³ΠΎ объявлСниС Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄:

<οΏ½ΠΌΠΎΠ΄ΠΈΡ„_дост><οΏ½Ρ‚ΠΈΠΏ_Π²ΠΎΠ·Π²Ρ€_Π·Π½Π°Ρ‡> <οΏ½ΠΈΠ΄Π΅Π½Ρ‚_ΠΏΠ΅Ρ€Π΅ΠΌ> (<�список_Ρ„ΠΎΡ€ΠΌ_ΠΏΠ°Ρ€>)

{

<οΏ½Ρ‚Π΅Π»ΠΎ_Ρ†ΠΈΠΊΠ»Π°>

}

<�список_Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ…_ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²>:=<οΏ½Ρ‚ΠΈΠΏ><οΏ½ΠΈΠ΄Π΅Π½Ρ‚>,<οΏ½Ρ‚ΠΈΠΏ><οΏ½ΠΈΠ΄Π΅Π½Ρ‚>opt .

НапримСр, public void Move (byte level)

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ константа, пСрСмСнная, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ‚. Π΄. ЕдинствСнноС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ — Ρ‚ΠΈΠΏ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с Ρ‚ΠΈΠΏΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°[9].

Π’ ΡΠ»ΡƒΡ‡Π°Π΅ использования простых Ρ‚ΠΈΠΏΠΎΠ² для объявлСния Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² значСния ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΈ Π΄Π°ΠΆΠ΅ Ссли ΠΈΡ… Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ, Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ся.

Π’ ΡΠ»ΡƒΡ‡Π°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ трСбуСтся Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 1 значСния, для 2, 3 ΠΈ Ρ‚. Π΄. Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚ΠΈΠΏΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для возвращСния значСния, ставится ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ref. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ Π²Ρ‹Π·ΠΎΠ²Π° Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Ρ‚Π°ΠΊΠΆΠ΅ указываСтся ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ref, ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² ΡΡ‚ΠΎΠΌ случаС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

1.3. ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ чСтности / нСчСтности

Для контроля ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ срСдство ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹. ΠšΠΎΠ΄Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π΄Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… элСмСнтарных сигнала, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΈ сигналы ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ символами 0 ΠΈ 1. Π’ΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ слово Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½ΡƒΠ»Π΅ΠΉ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†.

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

БистСматичСский ΠΊΠΎΠ΄ — это ΠΊΠΎΠ΄, содСрТащий Π² ΡΠ΅Π±Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ разряды. Π’ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ разряды записываСтся нСкоторая информация ΠΎΠ± ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΌ числС, поэтому систСматичСский ΠΊΠΎΠ΄ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ.

ΠŸΡ€ΠΈ этом Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Π°Ρ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ количСством ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… разрядов — k, Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ —, Π³Π΄Π΅ m — количСство ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… разрядов.

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ способности ΠΊΠΎΠ΄Π° ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ обнаруТСния ΠΈ ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибки. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° опрСдСляСтся Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ обнаруТСния ΠΈΠ»ΠΈ исправлСния ошибки[4].

Одной ΠΈΠ· ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… Ρ„ΠΎΡ€ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ошибок являСтся ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π° Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ. Π’ Ρ‡Π΅ΠΌ ΠΆΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ смысл кодирования ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ чСтности / нСчСтности? Π•Π³ΠΎ ΡΡƒΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ добавляСтся ΠΎΠ΄ΠΈΠ½ разряд, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ записываСтся Π΅Π΄ΠΈΠ½ΠΈΡ†Π°, Ссли число Π΅Π΄ΠΈΠ½ΠΈΡ† Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ΅, ΠΈΠ»ΠΈ ноль, Ссли Ρ‡Π΅Ρ‚Π½ΠΎΠ΅. ΠŸΡ€ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ подсчитываСтся количСство Π΅Π΄ΠΈΠ½ΠΈΡ† Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ. Если ΠΎΠ½ΠΎ оказываСтся Ρ‡Π΅Ρ‚Π½Ρ‹ΠΌ, Ρ‚ΠΎ ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΠ²ΡˆΠ°Ρ информация считаСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ, Ссли Π½Π΅Ρ‚, Ρ‚ΠΎ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠΉ.

ΠšΡ€ΠΎΠΌΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π° Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΈ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° контроля Π½Π° Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ коэффициСнта избыточности (для пятиэлСмСнтного ΠΊΠΎΠ΄Π° К =0,17) ΠΈ Π² ΠΏΡ€ΠΎΡΡ‚ΠΎΡ‚Π΅ Π΅Π³ΠΎ тСхничСской Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π° Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΠΊ — Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ошибки, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅Ρ‡Π΅Ρ‚Π½ΡƒΡŽ ΠΊΡ€Π°Ρ‚Π½ΠΎΡΡ‚ΡŒ.

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

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ/Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π±ΠΈΡ‚Ρƒ Ρ‚Π°ΠΊΠΆΠ΅ являСтся Π½Π΅ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΠΈ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ Ρ€Π΅Ρ‡Π΅Π²ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΈΠ·-Π·Π° группирования ошибок, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ происходит Π² Π»ΠΈΠ½ΠΈΡΡ… связи Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

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

Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ способ нахоТдСния ΠΎΠ΄Π½ΠΎΠΉ ошибки. Если Π² ΠΌΠ°Ρ‚СматичСском ΠΊΠΎΠ΄Π΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ разряд, Ρ‚ΠΎ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌΡƒ числу добавляСтся ΠΎΠ΄ΠΈΠ½ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ разряд. Π’ ΡΡ‚ΠΎΡ‚ разряд записываСтся 1 ΠΈΠ»ΠΈ 0 с Ρ‚Π°ΠΊΠΈΠΌ условиСм, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сумма Ρ†ΠΈΡ„Ρ€ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ 2 Π±Ρ‹Π»Π° Ρ€Π°Π²Π½Π° 0 для случая чСтности ΠΈΠ»ΠΈ 1 для случая нСчСтности. ПоявлСниС ошибки Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ обнаруТиваСтся ΠΏΠΎ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡŽ чСтности / нСчСтности. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ допускаСтся, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° ошибка.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° чСтности:

Число

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ разряд

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

1 — ошибка

МоТно ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ Π²ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ способ контроля ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ чСтности / нСчСтности. Π”Π»ΠΈΠ½Π½ΠΎΠ΅ слово разбиваСтся Π½Π° Π³Ρ€ΡƒΠΏΠΏΡ‹, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит n Ρ€Π°Π·Ρ€ΡΠ΄ΠΎΠ². ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ разряды — k, Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ всСм Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ ΠΏΠΎ ΡΡ‚Ρ€ΠΎΠΊΠ°ΠΌ ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†Π°ΠΌ согласно ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ схСмС:

Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ избыточности ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π½ΠΎ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π΅.

НапримСр: число 1 000 111 011 010 101 060 304 896 прСдставим ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ схСмС, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ число:

Π’ΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строки ΠΈ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠ³ΠΎ столбца. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, разряд, содСрТащий ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, находится Π½Π° ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строки ΠΈ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠ³ΠΎ столбца. ΠžΡˆΠΈΠ±ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² 0 Π½Π° 1.

1.4. ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π₯эмминга

Код Π₯эмминга — систСматичСский ΠΊΠΎΠ΄, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ состоящий ΠΈΠ· ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… символов, располоТСнных ΠΏΠΎ ΡΡ‚Ρ€ΠΎΠ³ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ систСмС, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ ΠΈ Π²ΡΠ΅Π³Π΄Π° Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ… строго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ мСста Π² ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… комбинациях.

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

Π’ ΡΡ‚ΠΎΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ число ошибок e ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ исправлСно ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»ΠΈΠ½ΠΎΠΉ N, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌ М ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ (CjN — Π±ΠΈΠ½ΠΎΠΌΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ коэффициСнт)[3].

Π Π°Π±ΠΎΡ‚Π° Π₯эмминга сыграла ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ кодирования ΠΈ ΡΡ‚ΠΈΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π»Π° ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹Π΅ исслСдования, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π³ΠΎΠ΄Ρ‹.

ΠšΠΎΠ΄Ρ‹ Π₯эмминга ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ошибки, Π½ΠΎ ΠΈ ΠΌΠ΅ΡΡ‚ΠΎ Π΅Π΅ Π½Π°Ρ…оТдСния ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΅Π΅ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ. Однако ΠΊΠΎΠ΄Ρ‹ Π₯эмминга ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ мСньшСй ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ чСтности-нСчСтности), Ρ‚. Π΅. количСством Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… разрядов.

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ искаТСн ΠΈΠ»ΠΈ Π½Π΅ ΠΈΡΠΊΠ°ΠΆΠ΅Π½ любой символ. Если Π΄Π»ΠΈΠ½Π° ΠΊΠΎΠ΄Π° — n ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Ρ‚ΠΎ — ΠΏΠΎΠ»Π½ΠΎΠ΅ количСство ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ ΠΊΠΎΠ΄Π°. По ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ΅ Π₯эмминга ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ число ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… символов ΠΊΠΎΠ΄Π°, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π³Π΄Π΅

— Ρ‡ΠΈΡΠ»ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… символов Π² ΠΊΠΎΠ΄Π΅;

— Ρ‡ΠΈΡΠ»ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… символов;

— Π΄Π»ΠΈΠ½Π° ΠΊΠΎΠ΄Π° Π₯Π΅ΠΌΠΌΠΈΠ½Π³Π°.

Π‘ΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ n, ΠΈ Π΄Π»Ρ ΠΊΠΎΠ΄Π° Π₯эмминга ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

Π’Π°Π±Π»ΠΈΡ†Π° 2.2.a

n

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ имССтся ΠΊΠΎΠ΄, содСрТащий m ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΈ k ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… разрядов. ВсС разряды, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅, Ρ€Π°Π·Π±ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° k Π³Ρ€ΡƒΠΏΠΏ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ сказано Π½ΠΈΠΆΠ΅. КаТдая Π³Ρ€ΡƒΠΏΠΏΠ°, содСрТащая ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ разряд, провСряСтся Π½Π° Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ. ΠŸΡƒΡΡ‚ΡŒ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Ρ‹ всС k ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ. Если Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎΠ± ΠΎΡ‚сутствии ошибки, Ρ‚ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ся 0, Ссли Π΅ΡΡ‚ΡŒ ошибка, Ρ‚ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ся 1. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получаСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, состоящая ΠΈΠ· k Π½ΡƒΠ»Π΅ΠΉ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†. ΠŸΡ€ΠΈ отсутствии ошибки Π² ΠΊΠΎΠ΄Π΅ получаСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½ΡƒΠ»Π΅ΠΉ. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ k-разрядноС Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ число ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ 2k Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ Π½ΡƒΠ»Π΅ΠΉ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΉ разряд Π² ΠΊΠΎΠ΄Π΅, содСрТащСм m+k разрядов. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Π±Ρ‹Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ нСравСнство:

2k? (m+k+1)

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ m Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ k ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

n

1,2,3,4…

8,…, 15

16,…31

m

0,0,1,1…

4,…11

11,…26

k

1,2,2,3

4…4

5…5

Из Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²ΠΈΠ΄Π½ΠΎ, для 16-Ρ‚ΠΈ разрядного числа трСбуСтся 5 ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… разрядов. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ сравнСния, Π² ΡΠ»ΡƒΡ‡Π°Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° чСтности ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π±Ρ‹ 8 ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… разрядов. ΠŸΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… разрядов Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Π₯эмминга ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π·Π°Ρ€Π°Π½Π΅Π΅, это разряды 1,2,4,8,… Разряды, входящиС Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ прСдставлСны Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ (1-ΠΉ разряд Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ являСтся ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ).

Π½ΠΎΠΌΠ΅Ρ€ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ

провСряСмыС разряды

1,3,5,7,9,11,13,15,…

2,3,6,7,10,11,14,15,18,19,22,23,…

4,5,6,7,12,13,14,15,20,21,22,23,…

8,9,10,11,12,13,14,15,24,…

Из Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ссли, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄ Π₯эмминга содСрТит 9 разрядов, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅, Ρ‚ΠΎ 1-я Π³Ρ€ΡƒΠΏΠΏΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ содСрТит 1,3,5,7,9 разряды. 2-я Π³Ρ€ΡƒΠΏΠΏΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ содСрТит 2,3,6,7 разряды. 3-Π³Ρ€ΡƒΠΏΠΏΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ содСрТит 4,5,6,7 разряды ΠΈ 4-я Π³Ρ€ΡƒΠΏΠΏΠ° — 8,9 разряды. КаТдой Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ приписываСтся 1, Ссли ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ 0, Ссли ошибки Π½Π΅Ρ‚. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ число Π΄Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ³ΠΎ разряда.

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

Рассмотрим Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° 5-Ρ‚ΠΈ разрядноС Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ число 10 011. Π’ ΡΡ‚ΠΎΠΌ случаС, ΠΊΠ°ΠΊ слСдуСт ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, 1-я Π³Ρ€ΡƒΠΏΠΏΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ состоит ΠΈΠ· 1,3, ΠΈ 5-Π³ΠΎ разрядов. 2-я Π³Ρ€ΡƒΠΏΠΏΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ состоит ΠΈΠ· 2 ΠΈ 3-Π³ΠΎ разряда. 3-я Π³Ρ€ΡƒΠΏΠΏΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ состоит ΠΈΠ· 4 ΠΈ 5-Π³ΠΎ разрядов. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ 1-ΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π΄Π°Π΅Ρ‚ 0 (101), ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° 2-ΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π΄Π°Π΅Ρ‚ 0 (00), ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° 3-ΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π΄Π°Π΅Ρ‚ 0 (11).

k1 = 1 + 0 + 1 = 0 — Π½Π΅Ρ‚ ошибки;

k2 = 0 + 0 =0 — Π½Π΅Ρ‚ ошибки;

k3 = 1 + 1 = 0 — Π½Π΅Ρ‚ ошибки.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄Π°Π½Π½ΠΎΠ΅ число Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ошибки. Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½ΠΎ Π²Π²Π΅Π΄Π΅ΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π·Π°ΠΌΠ΅Π½ΠΈΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 4-ΠΉ разряд Π½Π° 0. Π’ ΡΡ‚ΠΎΠΌ случаС 1, 2 ΠΈ 3-я ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄Π°Π΄ΡƒΡ‚ соотвСтствСнно 0, 0, 1.

k1 = 1 + 0 + 1 = 0 — Π½Π΅Ρ‚ ошибки;

k2 = 0 + 0 =0 — Π½Π΅Ρ‚ ошибки;

k3 = 0 + 1 = 1 — ошибка.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ число 100 Π΄Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ³ΠΎ разряда, Ρ‚. Π΅. 4.

1.5. Машина ΠŸΠΎΡΡ‚Π°

«Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄» ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π°

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

Машина ΠŸΠΎΡΡ‚Π° состоит ΠΈΠ· Π»Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ (Π½Π°Π·Ρ‹-Π²Π°Π΅ΠΌΠΎΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΉ).

Π›Π΅Π½Ρ‚Π° бСсконСчна ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° ΡΠ΅ΠΊΡ†ΠΈΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°: для наглядности Π»Π΅Π½Ρ‚Ρƒ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ располоТСнной Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ (рис. 13).

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

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ располоТСны сСкции Π»Π΅Π½Ρ‚Ρ‹, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ порядку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ располоТСны всС Ρ†Π΅Π»Ρ‹Π΅ числа. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ СстСствСнно ввСсти Π½Π° Π»Π΅Π½Ρ‚Π΅ «Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½ΡƒΡŽ систСму ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚», Π·Π°Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π² сСкции Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами …, -3,-2,-1,0,1, 2,3, … (рис. 14).

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ систСма ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ТСстко сопоставлСна с Π»Π΅Π½Ρ‚ΠΎΠΉ, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²ΠΎΠ·-ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΡΠ΅ΠΊΡ†ΠΈΡŽ Π»Π΅Π½Ρ‚Ρ‹, называя Π΅Π΅ ΠΏΠΎΡ€ΡΠ΄ΠΊΠΎΠ²Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€, ΠΈΠ»ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρƒ. (Иногда, Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Π±Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½ΠΎ наряду с ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ, «ΠΏΠΎΡΡ‚оянной» систСмой ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, ввСсти Π΅Ρ‰Π΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ, «Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ», ΡΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡƒΡŽ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ) Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сСкции Π»Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ (такая сСкция называСтся пустой), Π»ΠΈΠ±ΠΎ записана ΠΌΠ΅Ρ‚ΠΊΠ° V (Ρ‚ΠΎΠ³Π΄Π° сСкция называСтся ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠΉ) (рис. 15).

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ сСкции пусты, Π° ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹, ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ состояниС Π»Π΅Π½Ρ‚Ρ‹. Π˜Π½Ρ‹ΠΌΠΈ словами, со-стояниС Π»Π΅Π½Ρ‚Ρ‹ — это распрСдСлСниС ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΏΠΎ Π΅Π΅ ΡΠ΅ΠΊ-циям. Как ΠΌΡ‹ Π΄Π°Π»Π΅Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, состояниС Π»Π΅Π½Ρ‚Ρ‹ ΠΌΠ΅-няСтся Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

ΠšΠ°Ρ€Π΅Ρ‚ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ вдоль Π»Π΅Π½Ρ‚Ρ‹ Π²Π»Π΅Π²ΠΎ ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ. Когда ΠΎΠ½Π° Π½Π΅ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½Π°, ΠΎΠ½Π° стоит ΠΏΡ€ΠΎΡ‚ΠΈΠ² Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄Π½ΠΎΠΉ сСкции Π»Π΅Π½Ρ‚Ρ‹ Π½Π° ΡΡ‚ΠΎΠΌ ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠ°Ρ… ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠ° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° Π² Π²ΠΈΠ΄Π΅ Π·Π°Ρ‡Π΅Ρ€Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π°); говорят, Ρ‡Ρ‚ΠΎ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠ° ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Π΅Ρ‚ эту ΡΠ΅ΠΊΡ†ΠΈΡŽ, ΠΈΠ»ΠΈ Π΄Π΅Ρ€ΠΆΠΈΡ‚ Π΅Π΅ Π² ΠΏΠΎΠ»Π΅ зрСния.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ сСкции пусты, Π° ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ ΠΈ Π³Π΄Π΅ стоит ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠ°, ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ состояниС ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π°.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, состояниС ΠΌΠ°ΡˆΠΈΠ½Ρ‹ слагаСтся ΠΈΠ· ΡΠΎΡΡ‚ояния Π»Π΅Π½Ρ‚Ρ‹ ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΡ Π½ΠΎΠΌΠ΅Ρ€Π° Ρ‚ΠΎΠΉ сСкции, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Π΅Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠ°. Π—Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ шагом) ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒΡΡ Π½Π° ΠΎΠ΄Π½Ρƒ ΡΠ΅ΠΊΡ†ΠΈΡŽ Π²Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ (Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ) ΠΈΠ»ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚ΡŒ (ΡΡ‚Π΅Ρ€Π΅Ρ‚ΡŒ) ΠΌΠ΅Ρ‚ΠΊΡƒ Π½Π° Ρ‚ΠΎΠΉ сСкции, ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½Π° стоит, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ, стоит ΠΈΠ»ΠΈ Π½Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΊΠ° Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Π΅ΠΌΠΎΠΉ Сю ΡΠ΅ΠΊΡ†ΠΈΠ΅ΠΉ[2].

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π°

Π Π°Π±ΠΎΡ‚Π° ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠ° пСрСдвигаСтся вдоль Π»Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΠΈΠ»ΠΈ стираСт ΠΌΠ΅Ρ‚ΠΊΠΈ. Π­Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° происходит ΠΏΠΎ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Для ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ составлСниС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊ устроСна ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

КаТдая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π° состоит ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄. Командой ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π° Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡˆΠ΅ΡΡ‚ΠΈ Π²ΠΈΠ΄ΠΎΠ² (Π±ΡƒΠΊΠ²Ρ‹ i, j, j1, j2 ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Π²ΡΡŽΠ΄Ρƒ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹Π΅ числа 1, 2, 3, 4, 5, …):

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²ΠΈΠ΄. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ двиТСния Π²ΠΏΡ€Π°Π²ΠΎ.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²ΠΈΠ΄. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ двиТСния Π²Π»Π΅Π²ΠΎ.

Π’Ρ€Π΅Ρ‚ΠΈΠΉ Π²ΠΈΠ΄. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ пСчатания ΠΌΠ΅Ρ‚ΠΊΠΈ.

Π§Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ Π²ΠΈΠ΄. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ стирания ΠΌΠ΅Ρ‚ΠΊΠΈ.

ΠŸΡΡ‚Ρ‹ΠΉ Π²ΠΈΠ΄. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния.

ШСстой Π²ΠΈΠ΄. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ остановки.

НапримСр, являСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ двиТСния Π²ΠΏΡ€Π°Π²ΠΎ,

— ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния, Π°

— ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ остановки.

Число i, стоящСС Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, называСтся Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π’Π°ΠΊ, Ρƒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ Π½ΠΎΠΌΠ΅Ρ€Π° соотвСтствСнно 137, 25 ΠΈ 6386. Число j, стоящСС Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (Π° Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния — ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Ρ‡ΠΈΡΠ΅Π» j1, ΠΈ j2), Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ отсылкой (ΠΏΡ€ΠΈ этом Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния j1—Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ, Π° j2 — Π½ΠΈΠΆΠ½Π΅ΠΉ отсылкой). Π£ ΠΊΠΎΠΌΠ°Π½Π΄ остановки Π½Π΅Ρ‚ отсылки. Π’Π°ΠΊ, Ρƒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ отсылками слуТат числа 1, 32, 25, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ 32 —вСрхняя отсылка, Π° 25 — ниТняя отсылка.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π° Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ нСпустой (Ρ‚. Π΅. содСрТащий хотя Π±Ρ‹ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ) список ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π°, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ двумя свойствами:

1) На ΠΏΠ΅Ρ€Π²ΠΎΠΌ мСстС Π² ΡΡ‚ΠΎΠΌ спискС стоит ΠΊΠΎΠΌΠ°Π½Π΄Π° с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 1, Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΌ мСстС (Ссли ΠΎΠ½ΠΎ Π΅ΡΡ‚ΡŒ) — ΠΊΠΎΠΌΠ°Π½Π΄Π° с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 2 ΠΈ Ρ‚. Π΄.; Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π° k-ΠΌ мСстС стоит ΠΊΠΎΠΌΠ°Π½Π΄Π° с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ k.

2) ΠžΡ‚ΡΡ‹Π»ΠΊΠ° любой ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ списка совпадаСт с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ (Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ»ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ самой) ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ списка (Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ: для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ отсылки ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ списка найдСтся Π². спискС такая ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π²Π΅Π½ рассматриваСмой отсылкС).

НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ список Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π°:

А ΡΡ‚ΠΈ Π΄Π²Π° списка Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π°, хотя ΠΈ ΡΠΎΡΡ‚Π°Π²Π»Π΅Π½Ρ‹ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π°:

Для наглядности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π° ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ столбиком. Число ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ называСтся Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹[1].

Π Π°Π±ΠΎΡ‚Π° ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π°

Π§Ρ‚ΠΎΠ±Ρ‹ машина ΠŸΠΎΡΡ‚Π° Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π½Π°Π΄ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π° Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΅Π΅ (ΠΌΠ°ΡˆΠΈΠ½Ρ‹) состояниС, Ρ‚. Π΅. ΠΊΠ°ΠΊ-Ρ‚ΠΎ Ρ€Π°ΡΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΏΠΎ ΡΠ΅ΠΊΡ†ΠΈΡΠΌ Π»Π΅Π½Ρ‚Ρ‹ (Π² Ρ‡Π°ΡΡ‚ности, ΠΌΠΎΠΆΠ½ΠΎ всС сСкции ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ пустыми) ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΡƒ ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ΅ΠΊΡ†ΠΈΠΉ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ (Ρ‚.Π΅. Π² Π·Π°Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌ Π²Π½Π°Ρ‡Π°Π»Π΅) состоянии ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠ° ставится всСгда ΠΏΡ€ΠΎΡ‚ΠΈΠ² сСкции с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ (ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΠΉ) Π½ΡƒΠ»ΡŒ. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ соглашСнии Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ состояниСм Π»Π΅Π½Ρ‚Ρ‹.

Как ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° являСтся Ρ‚ΠΎΠΉ инструкциСй, Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ машина. Π Π°Π±ΠΎΡ‚Π° ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (ΠΈ ΠΏΡ€ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ состоянии) происходит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Машина приводится Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС ΠΈ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Π΅Ρ‚ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° выполняСтся Π·Π° ΠΎΠ΄ΠΈΠ½ шаг, послС Ρ‡Π΅Π³ΠΎ машина приступаСт ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ Ρ‚ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ (Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ Π°) Ρ€Π°Π²Π΅Π½ отсылкС (ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΎΡ‚сылок, Ссли ΠΈΡ… Π΄Π²Π΅) ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ‚Π°ΠΊΠΆΠ΅ выполняСтся Π·Π° ΠΎΠ΄ΠΈΠ½ шаг, послС Ρ‡Π΅Π³ΠΎ начинаСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π²Π΅Π½ отсылкС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π°. Π’ΠΎΠΎΠ±Ρ‰Π΅ каТдая ΠΊΠΎΠΌΠ°Π½Π΄Π° выполняСтся Π·Π° ΠΎΠ΄ΠΈΠ½ шаг, Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ Π΄Ρ€ΡƒΠ³ΠΎΠΉ происходит ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽ-Ρ‰Π΅ΠΌΡƒ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ: ΠΏΡƒΡΡ‚ΡŒ Π½Π° k-ΠΌ шагС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ i, Ρ‚ΠΎΠ³Π΄Π°, Ссли эта ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ отсылку j, Ρ‚ΠΎ Π½Π° k+1-ΠΌ шагС выполняСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ j; Ссли эта ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π΅ отсылки j1 ΠΈ j2, Ρ‚ΠΎ Π½Π° k+1-ΠΌ шагС выполняСтся ΠΎΠ΄Π½Π° ΠΈΠ· Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠ°Π½Π΄ — с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ j1 ΠΈΠ»ΠΈ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ; Ссли, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°ΡΡΡ Π½Π° k-ΠΌ шагС ΠΊΠΎΠΌΠ°Π½Π΄Π° вовсС Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ отсылки, Ρ‚ΠΎ Π½Π° k + 1-ΠΌ шагС ΠΈ Π½Π° Π²ΡΠ΅Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡˆΠ°Π³Π°Ρ… Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся никакая ΠΊΠΎΠΌΠ°Π½Π΄Π°: машина останавливаСтся. ΠžΡΡ‚Π°Π»ΠΎΡΡŒ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ ΠΊΠ°ΠΊΠ°Ρ ΠΈΠ· ΠΎΡ‚сылок — ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π΄Π²ΡƒΡ… — выбираСтся Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

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

Если Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, задавшись ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΈ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ состояниСм, ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ Π² Ρ…ΠΎΠ΄, Ρ‚ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚вится ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Ρ€Π΅Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²:

1) Π’ Ρ…ΠΎΠ΄Π΅ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ машина Π΄ΠΎΠΉΠ΄Π΅Ρ‚ Π΄ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (пСчатания ΠΌΠ΅Ρ‚ΠΊΠΈ Π² Π½Π΅ΠΏΡƒΡΡ‚ΠΎΠΉ сСкции ΠΈΠ»ΠΈ стирания ΠΌΠ΅Ρ‚ΠΊΠΈ Π² ΠΏΡƒΡΡ‚ΠΎΠΉ сСкции); Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚ΠΎΠ³Π΄Π° прСкращаСтся, машина останавливаСтся; происходит Ρ‚Π°ΠΊ называСмая Π±Π΅Π·Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π½Π°Ρ остановка.

2) Π’ Ρ…ΠΎΠ΄Π΅ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ машина Π΄ΠΎΠΉΠ΄Π΅Ρ‚ Π΄ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ остановки; ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² ΡΡ‚ΠΎΠΌ случаС считаСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ, машина останавливаСтся; происходит Ρ‚Π°ΠΊ называСмая Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½Π°Ρ остановка.

3) Π’ Ρ…ΠΎΠ΄Π΅ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ машина Π½Π΅ Π΄ΠΎΠΉΠ΄Π΅Ρ‚ Π΄ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΄Π²ΡƒΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Ρ…; Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ этом Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ся, машина Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΡΡ‚анавливаСтся; процСсс Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ происходит бСсконСчно[5].

Π“Π»Π°Π²Π° 2. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ программиста

Данная учСбная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π½Π° IBM ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…. ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ систСмныС трСбования: процСссор Pentium ΠΈ Π²Ρ‹ΡˆΠ΅, объСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти 16MB, Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Π° с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ 800×600, 256 Ρ†Π²Π΅Ρ‚ΠΎΠ², опСрационная систСма сСмСйства Windows 95 ΠΈ Π²Ρ‹ΡˆΠ΅, Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн .NET Framework.

ΠžΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ *.cs (Π² Π½ΠΈΡ… содСрТится вСсь ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹).

ОпишСм основныС Ρ„Π°ΠΉΠ»Ρ‹, содСрТащиСся Π² ΡΡ‚ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅:

Β· Even_ueven.cs — Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится ΠΊΠΎΠ΄, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° «ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ чСтностинСчСтности»;

Β· Even_ueven.resx — Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится информация ΠΎ Π³Ρ€Π°Ρ„ичСском прСдставлСнии Ρ„ΠΎΡ€ΠΌΡ‹ «ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ чСтностинСчСтности»;

Β· Hemming. cs — Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится ΠΊΠΎΠ΄, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° «ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π₯эмминга»;

Β· Hemming. resx — Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится информация ΠΎ Π³Ρ€Π°Ρ„ичСском прСдставлСнии Ρ„ΠΎΡ€ΠΌΡ‹ «ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π₯эмминга»;

Β· Post. cs — Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится ΠΊΠΎΠ΄, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° «ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π°»;

Β· Post. resx — Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится информация ΠΎ Π³Ρ€Π°Ρ„ичСском прСдставлСнии Ρ„ΠΎΡ€ΠΌΡ‹ «ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠŸΠΎΡΡ‚Π°»;

Β· Error. cs — Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится ΠΊΠΎΠ΄, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ„ΠΎΡ€ΠΌΡ‹ Error;

Β· Error. resx — Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится информация ΠΎ Π³Ρ€Π°Ρ„ичСском прСдставлСнии Ρ„ΠΎΡ€ΠΌΡ‹ Error;

Β· Help. cs — Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится ΠΊΠΎΠ΄, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ„ΠΎΡ€ΠΌΡ‹ Π‘ΠΏΡ€Π°Π²ΠΊΠ°;

Β· Help. resx — Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится информация ΠΎ Π³Ρ€Π°Ρ„ичСском прСдставлСнии Ρ„ΠΎΡ€ΠΌΡ‹ Π‘ΠΏΡ€Π°Π²ΠΊΠ°;

Β· Start. cs — Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится ΠΊΠΎΠ΄, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ„ΠΎΡ€ΠΌΡ‹ Start;

Β· Start. resx — Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится информация ΠΎ Π³Ρ€Π°Ρ„ичСском прСдставлСнии Ρ„ΠΎΡ€ΠΌΡ‹ Start;

Β· AssemblyInfo. cs — Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится информация ΠΎ Π²Π΅Ρ€ΡΠΈΠΈ Ρ„Π°ΠΉΠ»Π°, Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ ΠΈ ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅;

Β· StudyProgram. exe — Π·Π°ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, находящийся Π² ΠΏΠ°ΠΏΠΊΠ΅ debug, которая находится Π² ΠΏΠ°ΠΏΠΊΠ΅ bin.

Для измСнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π΅ ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ любой тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° прСдставлСн Π½Π° Π ΠΈΡ. 2.

ИзмСнСниС ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, для этого Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Visual Studio .Net, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для этого Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ.

На Π ΠΈΡ. 3 ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ внСшний ΠΎΠ±Π»ΠΈΠΊ Visual Studio .Net. Для Π΅Π³ΠΎ запуска Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠŸΡƒΡΠΊ, Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ ВсС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Microsoft Visual Studio .NET 2003Microsoft Visual Studio .NET 2003. Π”Π°Π»Π΅Π΅ Π² Π·Π°ΠΏΡƒΡΡ‚ΠΈΠ²ΡˆΠ΅ΠΌΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Open Project ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ, Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Study_Programs.sln. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Для измСнСния внСшнСго Π²ΠΈΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ярлыком Design. МоТно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ элСмСнты Ρ„ΠΎΡ€ΠΌΡ‹, ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΠ² ΠΈΡ… ΠΈΠ· Π²Ρ‹Π΅Π·ΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΊΠ½Π° Toolbox. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ см. Π² ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Π’ ΡΠ°ΠΌΠΎΠΌ Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ поля, Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Ρ‡Π»Π΅Π½ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, содСрТащиС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: int Prav; int ch; int ChVoprosov=1 (Π² ΠžΠžΠŸ поля ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°).Π“Π΄Π΅ Prav-это количСство ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ², ch — это сумма всСх разрядов Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ числа ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ разряда, Π° ChVoprosov-число вопросов Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ (нумСрация начинаСтся с 1) ΠŸΠ΅Ρ€Π΅Π΄ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΏΠΎΠ»Π΅ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΡ… Ρ‚ΠΈΠΏΡ‹.

ΠŸΡ€ΠΈ запускС Ρ„ΠΎΡ€ΠΌΡ‹ Even_ueven Π²ΠΎ Π²Ρ€Π΅ΠΌΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ сразу срабатываСт ΠΌΠ΅Ρ‚ΠΎΠ΄ Generation (); .Π‘ΡƒΡ‚ΡŒ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ сСмизначноС Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ появится Π² ΠΎΠΊΠ½Π΅ textBox1 ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ разряд (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ являСтся Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌ числом), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ появится Π² ΠΎΠΊΠ½Π΅ textBox2. Для этого создаСтся Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ случайных чисСл, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ записываСт Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ d Π»ΠΈΠ±ΠΎ 0, Π»ΠΈΠ±ΠΎ 1(d=r.Next (0,2);), данная опСрация повторяСтся 7 Ρ€Π°Π· с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ for (for (int i=0; i<7; i++)). Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ†ΠΈΡ„Ρ€, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ сСмизначноС число. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ разряд создаСтся Ρ‚ΠΎΠΆΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° случайных чисСл (g=r.Next (0,2);).Π’Π°ΠΊΠΆΠ΅ Π² ΡΡ‚ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ сразу подсчитываСтся сумма всСх разрядов Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ числа ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ разряда ch: сначала ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ разряды числа всС Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ†ΠΈΠΊΠ»Π΅ for (ch+=d; - 7 Ρ€Π°Π·), Π° Π·Π°Ρ‚Π΅ΠΌ прибавляСтся ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ разряд g (ch+=g;).

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ button1 (Код числа ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ) Π²Π½Π°Ρ‡Π°Π»Π΅ запускаСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ ChangeChVoposov (); ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ вопроса Π½Π° ΠΎΠ΄Π½Ρƒ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π² ΠΎΠΊΠ½Π΅ textBox3. Π—Π°Ρ‚Π΅ΠΌ Π² ΠΏΠΎΠ»Π΅ Prav (количСство ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²) считываСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΠΊΠ½Π° textBox4(ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС ΠΎΠ½ΠΎ равняСтся 0), Π”Π°Π»Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ конструкции if (ch==0 || ch==2 || ch==4 || ch==6) опрСдСляСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»: ch — сумма всСх разрядов Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ числа ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ разряда Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ‡Π΅Ρ‚Π½ΠΎΠΉ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎΠΉ 0. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° количСство ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² увСличиваСтся Π½Π° 1 (Prav++;). Π—Π°Ρ‚Π΅ΠΌ запускаСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ ChangePrav ();, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ устанавливаСт число ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π² ΠΎΠΊΠ½Π΅ textBox4. ПослС Ρ‡Π΅Π³ΠΎ ch ΠΎΠ±Π½ΡƒΠ»ΡΠ΅Ρ‚ся (ch=0;), ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Π΅Ρ‚ся ΠΌΠ΅Ρ‚ΠΎΠ΄ Generation ();.

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ button2 (Код числа Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ) Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ являСтся практичСски Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ конструкции if (ch==1 || ch==3 || ch==5 || ch==7) ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сумма ch ΡΠ²Π»ΡΠ»Π°ΡΡŒ Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹ΠΌ числом.

Π’Π°ΠΊΠΆΠ΅ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΡ‹ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΠ½Π° ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Сля, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π½Π΅ ΡΠΌΠΎΠ³ ΠΏΠ΅Ρ€Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… сСмиразрядного числа ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ разряда, Π° Ρ‚Π°ΠΊΠΆΠ΅ количСство Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… вопросов ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ². Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСдставлСн Π² ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π₯эмминга

Π’ ΡΠ°ΠΌΠΎΠΌ Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ поля: int ChVoprosov=1,

int X; int Nomer; int [] x=new int[10] .Π“Π΄Π΅ X — это пСрСмСнная Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… случаях Π½Π°ΠΆΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ число ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ², Nomer — это ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ разряда, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ‚ Π·Π°ΠΌΠ΅Π½Π΅ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹ΠΉ, int [] x=new int[10] - это массив, состоящий ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ разрядами Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ числа, Π° ChVoprosov-число вопросов Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ (нумСрация начинаСтся с 1). ΠŸΠ΅Ρ€Π΅Π΄ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΏΠΎΠ»Π΅ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΡ… Ρ‚ΠΈΠΏΡ‹.

ΠŸΡ€ΠΈ запускС Ρ„ΠΎΡ€ΠΌΡ‹ Hemming Π²ΠΎ Π²Ρ€Π΅ΠΌΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ сразу срабатываСт ΠΌΠ΅Ρ‚ΠΎΠ΄ Generation (); ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Number (); .Π‘ΡƒΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ дСвятизначноС Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ появится Π² ΠΎΠΊΠ½Π΅ textBox1. Π‘ΡƒΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ разряда, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅ΡΡ‚ΡŒ ошибка (Ссли ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ²Π° Π²ΠΎΠΎΠ±Ρ‰Π΅ имССтся). Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΡƒΡ‡Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½ΠΎΠΌΠ΅Ρ€ подсчитываСтся Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.

Для формирования ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ дСвятизначного Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ числа создаСтся Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ случайных чисСл, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ записываСт Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ d Π»ΠΈΠ±ΠΎ 0, Π»ΠΈΠ±ΠΎ 1(d=r.Next (0,2);), данная опСрация повторяСтся 9 Ρ€Π°Π· с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ for (for (int i=1; i<10; i++)). Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ†ΠΈΡ„Ρ€, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ дСвятизначноС число. Π’Π°ΠΊΠΆΠ΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС Ρ†ΠΈΠΊΠ»Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ значСния Π² ΠΌΠ°ΡΡΠΈΠ² int [] x (x[i]=d;), Ρ‚. Π΅. получаСтся, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт массива Ρ€Π°Π²Π΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ разряду сгСнСрированного числа. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ пСрСмСнная X ΠΏΡ€ΠΈΡ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ся ΠΊ 1, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ число Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ сгСнСрированно ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΅Ρ‰Π΅ Π½Π΅ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» Π΄Π°Ρ‚ΡŒ свой ΠΎΡ‚Π²Π΅Ρ‚.

Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Number () ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ суммы ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… разрядов сгСнСрируСмого ΠΏΠΎ Ρ‡ΠΈΡΠ»Π°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. Π’ Π½Π°ΡˆΠ΅ΠΌ случаС количСство Π³Ρ€ΡƒΠΏΠΏ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ для дСвятизначного числа Ρ€Π°Π²Π½ΠΎ 4, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ суммы x1, x2, x3, x4.

Π—Π°Ρ‚Π΅ΠΌ подсчитываСтся Π½ΠΎΠΌΠ΅Ρ€ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ³ΠΎ разряда (Nomer=x4*1000+x3*100+x2*10+x1;)

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ button1 (Ошибки Π½Π΅Ρ‚) Π² Π½Π°Ρ‡Π°Π»Π΅ исчСзаСт всС Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ успСл ввСсти Π² ΠΎΠΊΠ½ΠΎ «Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚» (textBox2.Text="" ;), Ρ‚.ΠΊ. Π½Π°ΠΆΠ°Π² эту ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠΆΠ΅ Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ошибок Π² Ρ‡ΠΈΡΠ»Π΅. ΠŸΠΎΡ‚ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ конструкции if ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ся Π½Π΅ Π·Π°ΠΏΠΈΡΠ°Π½ Π»ΠΈ ΡƒΠΆΠ΅ ΠΎΡ‚Π²Π΅Ρ‚ Π² ΠΎΠΊΠ½Π΅ «ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚"(if (textBox1.Text.Length≠textBox3.Text.Length) Π΅Π»ΠΈ Π½Π΅ Π·Π°ΠΏΠΈΡΠ°Π½, Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° X ΠΏΡ€ΠΈΡ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ся ΠΊ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅: X=1;) Π—Π°Ρ‚Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ конструкции if ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ся, Ρ€Π°Π²Π΅Π½ Π»ΠΈ X Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ (if (X==1) — Ссли это Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ, Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΅Ρ‰Π΅ Π½Π΅ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» Π΄Π°Ρ‚ΡŒ свой ΠΎΡ‚Π²Π΅Ρ‚). Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ дСйствий Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли X=1. Π—Π°Ρ‚Π΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ снова if, Nomer сравниваСтся с Π½ΡƒΠ»Π΅ΠΌ (if (Nomer==0)). Π’ ΡΠ»ΡƒΡ‡Π°Π΅ выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ условия (Ρ‚.Π΅. Π½ΠΎΠΌΠ΅Ρ€ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ³ΠΎ разряда равняСтся Π½ΡƒΠ»ΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ отсутствиС ошибки) число ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² увСличиваСтся Π½Π° ΠΎΠ΄Π½Ρƒ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ (Prav++;), ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Π΅Ρ‚ся ΠΌΠ΅Ρ‚ΠΎΠ΄ Otvet ();. Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ записываСт Π² ΠΎΠΊΠ½ΠΎ textBox3 (ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚) ΠΎΡ‚Π²Π΅Ρ‚, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡƒΡ‚Π΅ΠΌ записи всСх элСмСнтов массива int [] x Π² ΠΏΠΎΡ€ΡΠ΄ΠΊΠ΅ возрастания:

textBox3.Text=x[1]+" «+x[2]+» «+x[3]+» «+x[4]+» «+x[5]+» «+[6]+» «+x[7]+» «+x[8]+» «+x[9];

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ошибка отсутствуСт ΠΈ Π²ΡΠ΅ элСмСнты Π·Π°ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π±Π΅Π· измСнСния, Ρ‚. Π΅. Π² ΠΎΠΊΠ½Π΅ textBox3 появится число, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ Ρ‚ΠΎΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ находится Π² ΠΎΠΊΠ½Π΅ textBox1 (Число, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ содСрТащСС ΠΎΡˆΠΈΠ±ΠΊΡƒ).

Если Nomer Π½Π΅ Ρ€Π°Π²Π½ΡΠ΅Ρ‚ся Π½ΡƒΠ»ΡŽ, Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° запускаСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ Sravnenie ();. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Π½Π°Ρ‡Π°Π»Π΅ провСряСт Π½Π΅ Π΄Π°Π»ΠΈ Π»ΠΈ Π²Ρ‹ ΡƒΠΆΠ΅ свой ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ (Π½Π΅ Ρ€Π°Π²Π½ΠΎ Π»ΠΈ ΡƒΠΆΠ΅ X Π½ΡƒΠ»ΡŽ) ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΡΠ»ΡƒΡ‡Π°Π΅ равСнства X Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ (if (X==1)) выполняСтся вся ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ i ΠΏΡ€ΠΈΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ Ρ‚ ΠΊ Π½ΡƒΠ»ΡŽ (int i=0;). Π—Π°Ρ‚Π΅ΠΌ происходит сравнСниС числа Nomer с Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ Π² Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ систСму счислСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ числам ΠΎΡ‚ 0 Π΄ΠΎ 9 (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: if (Nomer == 101) — число Nomer сравниваСтся с Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌ числом 101, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π² Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΠΎΠΉ систСмС счислСния соотвСтствуСт 5). Если Nomer равняСтся ΠΊΠ°ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ ΠΈΠ· ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… чисСл, Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ‚ся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ дСсятичного числа (НапримСр Π² ΡΠ»ΡƒΡ‡Π°Π΅ равСнства Π½ΠΎΠΌΠ΅Ρ€Π° числу 101, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5 (i = 5;)). Если пСрСмСнная i ΠΌΠ΅Π½ΡΠ΅Ρ‚ своС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с Π½ΡƒΠ»Ρ Π½Π° ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ ΠΎΡ‚ 1 Π΄ΠΎ 9, Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° выполняСтся условиС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π·Π° ΡΡ‚ΠΈΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ конструкции if (i≠0) (i ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ Π½ΡƒΠ»Ρ) ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚вляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: x[i] сравниваСтся с 0, Ссли это выполняСтся, Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° x[i] мСняСт своС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅, Ρ‚. Π΅. Π½Π° 1, ΠΈ Π·Π°Ρ‚Π΅ΠΌ запускаСтся ΡƒΠΆΠ΅ упомянутый Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Otvet (); (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΎΠΊΠ½Π΅ textBox3 появится число, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ Ρ‚ΠΎΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ находится Π² ΠΎΠΊΠ½Π΅ textBox1 (Число, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ содСрТащСС ΠΎΡˆΠΈΠ±ΠΊΡƒ), Π½ΠΎ ΡƒΠΆΠ΅ с Π·Π°ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹ΠΉ разрядом, Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π²Π΅Π½ i.). Если x[i] Π½Π΅ Ρ€Π°Π²Π½ΡΠ΅Ρ‚ся 0(ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ равняСтся 1), Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° выполняСтся Π²Π΅Ρ‚ΠΊΠ° else с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌΠΈ дСйствиями, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для x [i] ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ 0.

Если Π² Ρ…ΠΎΠ΄Π΅ выполнСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Sravnenie (); Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π·Π°ΠΌΠ΅Π½ (Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Otvet ();), Ρ‚ΠΎ ΡΡ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ числу Nomer соотвСтствуСт ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ Π² Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ систСму счислСния Π΄Π°Π΅Ρ‚ Ρ†ΠΈΡ„Ρ€Ρƒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ 9. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ дСвятиразрядном числС ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ошибки. Π’ΠΎΠ³Π΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сравнСния Π΄Π»ΠΈΠ½Ρ‹ строки Π² ΠΎΠΊΠ½Π΅ textBox3 с Π½ΡƒΠ»Π΅ΠΌ (if (textBox3.Text.Length==0)) ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π² ΡΠ»ΡƒΡ‡Π°Π΅ выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ условия, Ρ‡Ρ‚ΠΎ ошибки ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ число ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π½Π° 1 ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Otvet ();, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ Π² ΠΎΠΊΠ½ΠΎ textBox3 число, Ρ€Π°Π²Π½ΠΎΠ΅ Ρ‚ΠΎΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ находится Π² ΠΎΠΊΠ½Π΅ textBox1 (Число, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ содСрТащСС ΠΎΡˆΠΈΠ±ΠΊΡƒ).

Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΠΌΠ΅Π½ΡΠ΅ΠΌ число ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π² ΠΎΠΊΠ½Π΅ textBox5, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΡ€Π°Π²Π½ΠΈΠ²Π°Π΅ΠΌ X ΠΊ Π½ΡƒΠ»ΡŽ, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡΠ΄Π΅Π»Π°Π»ΠΈ свой ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ Ρ‚ΠΎΠ³ΠΎ, содСрТит Π»ΠΈ сгСнСрированноС число ошибки.

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ button2 (Ошибка Π΅ΡΡ‚ΡŒ) Π² Π½Π°Ρ‡Π°Π»Π΅ запускаСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ Proverka ();. Бмысл этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²Π²Π΅Π» Π»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ достаточноС количСство разрядов Π² ΠΎΠΊΠ½ΠΎ «Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚» ΠΈ ΡΠ²Π»ΡΡŽΡ‚ся Π»ΠΈ ΠΎΠ½ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ числами (0 ΠΈ 1). Π’Π½Π°Ρ‡Π°Π»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ конструкции if ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ся, записал Π»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ строку Π² ΠΎΠΊΠ½ΠΎ «Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚» Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΠΈ Π½Π΅Ρ‚ Π»ΠΈ ΡƒΠΆΠ΅ появившСгося ΠΎΡ‚Π²Π΅Ρ‚Π° Π² ΠΎΠΊΠ½Π΅ textBox3 (ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚): if (textBox2.Text.Length! =textBox1.Text.Length && textBox1.Text.Length! = textBox3.Text.Length)

Если это условиС выполняСтся, Ρ‚ΠΎ ΡΡ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Π΅Π» Π² ΠΎΠΊΠ½ΠΎ «Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚» строку ΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ Π΄Π»ΠΈΠ½Π΅ 9 ΠΈΠ»ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Π±Ρ‹Π» ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΎΡ‚Π²Π΅Ρ‚ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, выполняСтся дСйствиС, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках: запуск Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅, содСрТащСС пояснСниС Ρ‚ΠΎΠ³ΠΎ, Π² Ρ‡Π΅ΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ошибка Π²Π²ΠΎΠ΄Π° (A5=new Error («Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ 9-Ρ‚ΠΈ разрядноС число»); A5. ShowDialog ();)

Если это условиС Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся, Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ продолТаСтся ΠΏΠΎ Π²Π΅Ρ‚ΠΊΠ΅ else. Π’Π½Π°Ρ‡Π°Π»Π΅ снова провСряСтся отсутствиС ΠΎΡ‚Π²Π΅Ρ‚Π° if (textBox1.Text.Length≠textBox3.Text.Length) ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° это условиС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ запускаСтся Ρ†ΠΈΠΊΠ» с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ (for (int i=0; i

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ