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

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ дСйствий Π½Π°Π΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ Π½Π° языкС Π‘++

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

БрСдства, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ язык, Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π½ΠΎΠ²Ρ‹ΠΌΠΈ опСрациями ΠΈ ΡΠΈΠ½Ρ‚аксичСскими конструкциями (Π° ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… срСдств, наряду с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°ΠΌΠΈ, замыканиями) ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π΅Π³ΠΎ ΡƒΠΆΠ΅ Π² ΠΌΠ΅Ρ‚аязык — срСдство описания языков, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ языковоС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ дСйствий Π½Π°Π΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ Π½Π° языкС Π‘++ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ГосударствСнноС ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΡƒΡ‡Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ образования Ульяновский ГосударствСнный УнивСрситСт Π€Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚ ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠšΠ°Ρ„Π΅Π΄Ρ€Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠšΠ£Π Π‘ΠžΠ’ΠΠ― Π ΠΠ‘ΠžΠ’Π ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ дСйствий Π½Π°Π΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++.

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄Π½Π°Ρ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ° 08.08.01

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» студСнт Русин Π’ΠΈΠΊΡ‚ΠΎΡ€ АлСксандрович Ульяновск

2010 Π³.

  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  • 1. ВСорСтичСская Ρ‡Π°ΡΡ‚ΡŒ
    • 1.1 ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹
    • 1.2 C++
    • 1.3 Microsoft Visual Studio Express
    • 1.4 Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° шаблонов (STL)
    • 1.5 Vector
    • 1.6 ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²
  • 2. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΡ‚Π°ΠΏΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
    • 2.1 ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ
    • 2.2 БрСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
    • 2.3 ОписаниС процСсса компиляции ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
  • 3. РСализация
    • 3.1 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
    • 3.2 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° класса
  • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
  • Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹
  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  • На ΡΠ΅Π³ΠΎΠ΄Π½ΡΡˆΠ½ΠΈΠΉ дСнь матСматичСскоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ — ваТная ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ всСго программирования. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ ΠΈ ΡΠ»ΠΎΠΆΠ½Ρ‹Π΅ вычислСния благодаря простым ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ становятся простыми.
  • Π’ Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Π΅ создавалась ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для вычислСний Π½Π°Π΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ.
  • Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ срСды программирования Π²Ρ‹Π±Ρ€Π°Π½Π° MS Visual Studio 2008 ΠΈ ΡΠ·Ρ‹ΠΊ программирования C++.

1. ВСорСтичСская Ρ‡Π°ΡΡ‚ΡŒ

1.1 ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

ΠœΠ°ΠΌΡ‚Ρ€ΠΈΡ†Π° — матСматичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, записываСмый Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ чисСл (ΠΈΠ»ΠΈ элСмСнтов ΠΊΠΎΠ»ΡŒΡ†Π°) ΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΉ алгСбраичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (слоТСниС, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅) ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ (ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ) Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ. Иногда Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π΅ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ

ΠŸΡƒΡΡ‚ΡŒ aij — элСмСнты ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ A, Π° bij — элСмСнты ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ B.

Π›ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ A Π½Π° Ρ‡ΠΈΡΠ»ΠΎ Π» (ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: Π»A) Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ B, элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ ΠΏΡƒΡ‚Ρ‘ΠΌ умноТСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ A Π½Π° ΡΡ‚ΠΎ число, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ B Ρ€Π°Π²Π΅Π½

bij = Π»aij

Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† A + B Π΅ΡΡ‚ΡŒ опСрация нахоТдСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ C, всС элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π²Π½Ρ‹ ΠΏΠΎΠΏΠ°Ρ€Π½ΠΎΠΉ суммС всСх ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ† A ΠΈ B, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ C Ρ€Π°Π²Π΅Π½

cij = aij + bij

Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† A? B ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ слоТСнию, это опСрация нахоТдСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ C, элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ

cij = aij — bij

Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ допускаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

БущСствуСт нулСвая ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° И Ρ‚Π°ΠΊΠ°Ρ, Ρ‡Ρ‚ΠΎ Π΅Ρ‘ ΠΏΡ€ΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ A Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ‚ A, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ

A + И = A

ВсС элСмСнты Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ.

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: AB, Ρ€Π΅ΠΆΠ΅ со Π·Π½Π°ΠΊΠΎΠΌ умноТСния) — Π΅ΡΡ‚ΡŒ опСрация вычислСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ C, элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π²Π½Ρ‹ суммС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠΉ элСмСнтов Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ мноТитСля ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ.

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ столбцов, сколько строк Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ. Если ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° A ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ, B —, Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ AB = C Π΅ΡΡ‚ΡŒ .

Π’ΠΎΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

ВранспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: AT) — опСрация, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° отраТаСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Если A — ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ‚ΠΎ AT — ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° .

1.2 C++

C++ (Π‘ΠΈ++) — ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ статичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ программирования, Π½ΠΎ, Π² ΡΡ€Π°Π²Π½Π΅Π½ΠΈΠΈ с Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠΎΠΌ — языком Π‘ΠΈ, — наибольшСС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½ΠΎΠ³ΠΎ программирования.

НазваниС «C++» происходит ΠΎΡ‚ Π‘ΠΈ ©, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ++ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π’ 1990;Ρ… Π³ΠΎΠ΄Π°Ρ… язык стал ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ примСняСмых языков программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния.

ΠŸΡ€ΠΈ создании C++ ΡΡ‚Ρ€Π΅ΠΌΠΈΠ»ΠΈΡΡŒ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΡΠ·Ρ‹ΠΊΠΎΠΌ Π‘ΠΈ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Π‘ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ исправно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ΠΎΠΌ C++. C++ ΠΈΠΌΠ΅Π΅Ρ‚ синтаксис, основанный Π½Π° ΡΠΈΠ½Ρ‚аксисС Π‘ΠΈ.

1.3 Microsoft Visual Studio Express

Microsoft Visual Studio Express — Π»ΠΈΠ½Π΅ΠΉΠΊΠ° бСсплатных ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… срСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, облСгчённая вСрсия Microsoft Visual Studio, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Microsoft. Богласно ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΡŽ Microsoft, «Express"-Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΎΡ‚Π»Π°ΠΆΠ΅Π½Π½ΡƒΡŽ, ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π² ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΌΡΡ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ПО, — Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡΠΌ ΠΈ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚Π°ΠΌ. ПослСдняя вСрсия Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° 19 Π½ΠΎΡΠ±Ρ€Ρ 2007, ΠΏΠ°ΠΊΠ΅Ρ‚ обновлСния SP1 — 11 Π°Π²Π³ΡƒΡΡ‚Π° 2008. Π‘ Π°ΠΏΡ€Π΅Π»Ρ 2009 Π³ΠΎΠ΄Π° Microsoft ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΠ»Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ всСх ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсий Visual Studio Express. Π’ Π°ΠΏΡ€Π΅Π»Π΅ 2010 Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° Visual Studio 2010 Express

1.4 Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° шаблонов (STL)

STL (Π°Π½Π³Π». Standard Template Library) — Π½Π°Π±ΠΎΡ€ согласованных ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², срСдств доступа ΠΊ ΠΈΡ… ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠΌΡƒ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° шаблонов Π΄ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ C++ Π±Ρ‹Π»Π° стороннСй Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ, Π² Π½Π°Ρ‡Π°Π»Π΅ — Ρ„ΠΈΡ€ΠΌΡ‹ HP, Π° Π·Π°Ρ‚Π΅ΠΌ SGI. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ языка Π½Π΅ Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΅Ρ‘ «STL», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ эта Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° стала Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ языка, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ люди Π΄ΠΎ ΡΠΈΡ… ΠΏΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ это Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ части стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° (iostream), ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π» Π‘ΠΈ ΠΈ Π΄Ρ€.).

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ STLPort, основанный Π½Π° SGI STL, осущСствляСт постоянноС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ STL, iostream ΠΈ ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Ρ… классов. НСкоторыС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ частных ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… конструкторских Π·Π°Π΄Π°Ρ‡. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ компиляторов C++ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ поставляСт ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° являСтся ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ стандарта ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

АрхитСктура STL Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° АлСксандром Π‘Ρ‚Π΅ΠΏΠ°Π½ΠΎΠ²Ρ‹ΠΌ ΠΈ МСнг Π›ΠΈ.

1.5 Vector

Π’Π΅ΠΊΡ‚ΠΎΡ€ (vector) Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π½Π°ΠΌ массив, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ расти Π΄ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅. Как ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΠΊ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ воспользовавшись ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ индСксирования []. Π’ΠΎΡ‚ характСристики:

Β· Доступ ΠΊ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ

Β· Вставка ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ элСмСнтов

Β· ΠŸΡ€ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±Π»ΠΎΠΊ

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π΅Π½ для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π½ΠΎ ΠΏΡ€ΠΈ большом количСствС вставок Π»ΡƒΡ‡ΡˆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, списками. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ физичСски Π²Π΅ΠΊΡ‚ΠΎΡ€ располагаСтся Π² Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ памяти. На C ΡΡ‚ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Π»ΠΈ функциями malloc.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ ΡƒΠΆΠ΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Ρ‡Ρ‚ΠΎ массивы Π² с++ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π° ΠΌΡ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ Π·Π½Π°Π΅ΠΌ количСство элСмСнтов, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ динамичСскоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π’. Π΅. Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ элСмСнты массива ΠΏΡ€ΠΈ нСобходимости Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ элСмСнт. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, Π² с++ это ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π½ΠΎ Π·Π°Ρ‡Π΅ΠΌ? Ссли Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс — vector. Он ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π°ΠΌ массивы ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠΈ.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»:

#include «vector»

ΠžΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ:

ПослС этого Π²Π΅ΠΊΡ‚ΠΎΡ€ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ, это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ двумя способами.

vector< int > vArray1; vector< int > vArray2(30);

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС указываСтся пустой Π²Π΅ΠΊΡ‚ΠΎΡ€, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€.

МоТно ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Π²Π΅ΠΊΡ‚ΠΎΡ€Π°:

Β· size () — сколько Π΄Π°Π½Π½Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ

Β· capacity () — сколько ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π΄ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°

Β· max_size () — ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π²Π΅Π½ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ доступному Π±Π»ΠΎΠΊΡƒ памяти

1.6 ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²

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

РСализация

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

ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠ·Ρ‹ΠΊ Π΄Π²ΡƒΡ… взаимосвязанных особСнностСй: возмоТности ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΉ области видимости нСсколько ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ собствСнныС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π·Π½Π°ΠΊΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ записываСмых Π² ΠΈΠ½Ρ„иксной Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ, ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ).

Иногда Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ ΡΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΌ программистом Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΠΎ ΡΠΌΡ‹ΡΠ»Ρƒ эквивалСнтныС ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΡΡ Π² ΡΠ·Ρ‹ΠΊΠ΅. ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ — Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½Ρ‹ΠΌΠΈ числами. Они, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ числовыС Ρ‚ΠΈΠΏΡ‹, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΈ Π΅ΡΡ‚СствСнным Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ «ΠΏΠ»ΡŽΡ», «ΠΌΠΈΠ½ΡƒΡ», «ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ», «Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ», ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠ² ΠΈΡ… Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ самыми Π·Π½Π°ΠΊΠ°ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΈ Π΄Π»Ρ Π΄Ρ€ΡƒΠ³ΠΈΡ… числовых Ρ‚ΠΈΠΏΠΎΠ². Π—Π°ΠΏΡ€Π΅Ρ‚ Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Π² ΡΠ·Ρ‹ΠΊΠ΅ элСмСнтов Π²Ρ‹Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ мноТСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π²ΠΈΠ΄Π° ComplexPlusComplex, IntegerPlusComplex, ComplexMinusFloat ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Когда ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΏΠΎ ΡΠΌΡ‹ΡΠ»Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², ΠΈΡ… Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Π½ΠΎ приходится Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½Π΅ΠΎΠ±Ρ…одимости Π²Ρ‹Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ создаёт ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ, Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΎΡˆΠΈΠ±ΠΊΠ°ΠΌ. НапримСр, Π² ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΎΠΌ языкС Π‘ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ нахоТдСния модуля числа: abs () ΠΈ fabs () — ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ†Π΅Π»ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Π²Ρ‚ΠΎΡ€ΠΎΠΉ — для вСщСствСнного. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΡΠΎΡ‡Π΅Ρ‚Π°Π½ΠΈΠΈ со ΡΠ»Π°Π±Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ² Π‘ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ошибкС: Ссли программист Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚ Π² Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠΈ abs (x), Π³Π΄Π΅ x — вСщСствСнная пСрСмСнная, Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ компиляторы Π±Π΅Π· ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ x ΠΊ Ρ†Π΅Π»ΠΎΠΌΡƒ ΠΏΡƒΡ‚Ρ‘ΠΌ отбрасывания Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа!

ΠžΡ‚Ρ‡Π°ΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ срСдствами ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ программирования — ΠΊΠΎΠ³Π΄Π° Π½ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ классы, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π½ΠΈΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Ρ‹ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ классов, Π² Ρ‚ΠΎΠΌ числС ΠΈ ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½Ρ‹Π΅ (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π·Π½Ρ‹Ρ… классов Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°), Π½ΠΎ, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ значСниями Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Π° Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, это Π½Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ создания Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².

БрСдства, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ язык, Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π½ΠΎΠ²Ρ‹ΠΌΠΈ опСрациями ΠΈ ΡΠΈΠ½Ρ‚аксичСскими конструкциями (Π° ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… срСдств, наряду с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°ΠΌΠΈ, замыканиями) ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π΅Π³ΠΎ ΡƒΠΆΠ΅ Π² мСтаязык — срСдство описания языков, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ языковоС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π΅ΠΉ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΅Ρ‘ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ СстСствСнной, понятной ΠΈ ΠΏΡ€ΠΎΡΡ‚ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅. НапримСр, Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ: созданиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ слоТных матСматичСских Ρ‚ΠΈΠΏΠΎΠ² (Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹, ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹) ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Π½ΠΈΠΌΠΈ Π² Π΅ΡΡ‚СствСнной, «ΠΌΠ°Ρ‚СматичСской» Ρ„ΠΎΡ€ΠΌΠ΅, создаёт «ΡΠ·Ρ‹ΠΊ для Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ вычислСний скрыта, ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΡƒΡΡΡŒ Π½Π° ΡΡƒΡ‚ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, Π° Π½Π΅ Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅. ИмСнно ΠΈΠ· ΡΡ‚ΠΈΡ… сообраТСний ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ срСдства Π±Ρ‹Π»ΠΈ Π² ΡΠ²ΠΎΡ‘ врСмя Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² ΡΠ·Ρ‹ΠΊ Алгол-68.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ сущСствованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, достаточно ввСсти Π² ΡΠ·Ρ‹ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ опСрация (ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, функция ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€) ΠΎΠΏΠΎΠ·Π½Π°ΡŽΡ‚ΡΡ компилятором Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ (ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ), Π½ΠΎ ΠΈ ΠΏΠΎ Ρ‚ΠΈΠΏΠ°ΠΌ ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, abs (i), Π³Π΄Π΅ i ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΎ ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅, ΠΈ abs (x), Π³Π΄Π΅ x ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΎ ΠΊΠ°ΠΊ вСщСствСнноС — это Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Π² ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²ΠΊΠΈ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… слоТностСй.

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ввСсти Π² ΡΠ·Ρ‹ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ синтаксичСскиС конструкции. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достаточно ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ ΠΏΠΎ ΡΡƒΡ‚ΠΈ ΠΎΠ½ΠΈ Π½ΠΈΡ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ, достаточно ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ запись Π²ΠΈΠ΄Π° «<οΏ½ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1> <οΏ½Π·Π½Π°ΠΊΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ> <οΏ½ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2>» ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° Π²Ρ‹Π·ΠΎΠ²Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ «<οΏ½Π·Π½Π°ΠΊΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ>(<οΏ½ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1>,<οΏ½ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2>)». Достаточно Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ программисту ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² Π²ΠΈΠ΄Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ — ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° описания Ρ€Π΅ΡˆΠ΅Π½Π°.

2. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΡ‚Π°ΠΏΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

2.1 ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ Π—Π°Π΄Π°Ρ‡Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ динамичСского класса для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ.

Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† происходит ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ находятся, ΠΈ ΠΏΠΎΡΠ»Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ всС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выводятся Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ».

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ прСдставлСн ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌ мСню Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ дСйствиС. ΠŸΡ€ΠΈ Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² выводится ошибка, ΠΏΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ выводится сообщСниС ΠΎΠ± ΡƒΡΠΏΠ΅Ρ…Π΅.

2.2 БрСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹Π±Ρ€Π°Π½ MS Visual Studio 2008 Express.

2.3 ОписаниС процСсса компиляции ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Для компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ IDE MS Visual Studio. Π’ ΠΏΠ°ΠΏΠΊΠ΅ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹: file1. txt, file2. txt, file3. txt

Бкомпиллированная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²:

1) ΠΏΠ°ΠΏΠΊΠ° cnf (ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹);

2) matrix. exe (исполняСмый Ρ„Π°ΠΉΠ»);

3. РСализация

3.1 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° содСрТит ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Π·Π°:

1) интСрфСйс,

2) ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ,

3) взаимодСйствиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² класса,

4) ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².

3.2 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° класса

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ Ρ…ΠΎΠ΄Π΅ выполнСния курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° работоспособная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰Π°Ρ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ заданию.

Π’ Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ:

1) Stl;

2) ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…;

3) ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²;

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ дальнСйшСго ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСдставляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ класса ΠΈ ΠΈΠ½Ρ‚СрфСйса (с Ρ†Π΅Π»ΡŒΡŽ увСличСния информативности).

1. Бвободная энциклопСдия http://ru.wikipedia.org/

2. Книга Π£. Π€ΠΎΡ€Π΄, Π£. Π’ΠΎΠΏΠΏ «Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² Π‘++» ООО «Π‘ΠΈΠ½ΠΎΠΌ-ΠŸΡ€Π΅ΡΡ"2006 Π³.

3. Π‘Π΅Π»Π»ΠΌΠ°Π½ Π .

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π² Ρ‚Π΅ΠΎΡ€ΠΈΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†. — Πœ.: ΠœΠΈΡ€, 1969.

4. ΠšΡƒΡ€ΠΎΡˆ А. Π“. ΠšΡƒΡ€Ρ Π²Ρ‹ΡΡˆΠ΅ΠΉ Π°Π»Π³Π΅Π±Ρ€Ρ‹: Π£Ρ‡Π΅Π±Π½ΠΈΠΊ для Π²ΡƒΠ·ΠΎΠ² 15-Π΅ ΠΈΠ·Π΄., стСрСотип. — Πœ.: Π›Π°Π½ΡŒ, 2006. — 432 с.

5. Π”ΠΆ. Π“ΠΎΠ»ΡƒΠ±, Π§. Π’Π°Π½ Π›ΠΎΡƒΠ½ ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Π΅ вычислСния. — Πœ.: ΠœΠΈΡ€, 1999.

6. Π‘Π°ΠΉΡ‚ «Π—накомимся с Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ». http://www.cyberguru.ru/

7. Π‘. Бтрауструп. «Π―Π·Ρ‹ΠΊ программирования C++. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅.», 2004 Π³.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹.

1. matrix. h

#pragma once

#include

#include

#include

using std: vector;

using std: cout;

using std: istream;

using std: ostream;

class _matrix

{

private:

vector< vector > vvf;

int stroka;

int stolbec;

public:

_matrix () {};

_matrix (int str, int stolb)

{

stroka = str;

stolbec = stolb;

vvf.resize (stroka, vector (stolbec));

}

_matrix (const _matrix &obj)

{

stroka = obj. stroka;

stolbec = obj. stolbec;

vvf = obj. vvf;

}

~_matrix ()

{

vvf.clear ();

}

_matrix& operator+(_matrix &obj2)

{

_matrix* obj = new _matrix (*this);

for (int y = 0; y < obj2. stroka; y++)

for (int x = 0; x < obj2. stolbec; x++)

(*obj)(y, x) = (*this)(y, x) + obj2(y, x);

return *obj;

}

_matrix& operator-(_matrix &obj2)

{

_matrix* obj = new _matrix (*this);

for (int y = 0; y < obj2. stroka; y++)

for (int x = 0; x < obj2. stolbec; x++)

(*obj)(y, x) = (*this)(y, x) — obj2(y, x);

return *obj;

}

_matrix &operator*(_matrix &obj2)

{

_matrix* obj = new _matrix (*this);

for (int y = 0; y < obj->stroka; y++)

for (int x = 0; x < obj->stolbec; x++)

{

(*obj)(y, x) = 0;

for (int k = 0; k < obj->stroka; k++)

(*obj)(y, x) += obj2(k, x) * (*this)(y, k);

}

return *obj;

}

_matrix &operator=(const _matrix &obj)

{

stroka = obj. stroka;

stolbec = obj. stolbec;

vvf = obj. vvf;

return *this;

}

float &operator ()(int& i, int& j)

{

return vvf[i][j];

}

_matrix &transpon ()

{

_matrix transobj (*this);

for (int y = 0; y < stroka; y++)

for (int x = 0; x < stolbec; x++)

(*this)(y, x) = transobj (x, y);

return *this;

}

vector multvec (int str, float value)

{

vector temp (stroka);

for (int x = 0; x < stroka; x++)

{

temp[x] = value * vvf[str][x];

}

return temp;

}

void norm (int str, float value)

{

for (int x = 0; x < stroka; x++)

{

vvf[str][x] = vvf[str][x]/value;

}

}

void subvec (int str, vector temp)

{

for (int x = 0; x < stroka; x++)

{

vvf[str][x] = vvf[str][x] - temp[x];

}

}

_matrix Inversion ()

{

_matrix obj (*this);

_matrix invobj (stroka, stolbec);

float f;

for (int y = 0; y < stroka; y++)

invobj (y, y) = 1;

for (int x = 0; x < stolbec; x++)

{

for (int y = 1; y < stroka; y++)

{

if (x < y)

{

f =obj (y, x)/obj (x, x);

obj.subvec (y, obj. multvec (x, f));

invobj.subvec (y, invobj. multvec (x, f));

}

}

}

for (int x = stolbec-1; x > -1; x—)

{

for (int y = stroka-1; y > -1; y—)

{

f = obj (x, x);

obj.norm (x, f);//cout << obj;

invobj.norm (x, f);

if (x > y)

{

f =obj (y, x)/obj (x, x);

obj.subvec (y, obj. multvec (x, f));

invobj.subvec (y, invobj. multvec (x, f));

}

}

}

cout << obj;

cout << invobj;

return invobj;

}

friend ostream &operator<<(ostream &stream, _matrix &obj);

friend istream &operator>>(istream &stream, _matrix &obj);

};

ostream &operator<<(ostream &stream, _matrix &obj)

{

for (int y = 0; y < obj. stroka; y++)

{

for (int x = 0; x < obj. stolbec; x++)

{

stream << obj (y, x) << ««;

}

stream << «n» ;

}

return stream;

}

istream &operator>>(istream &stream, _matrix &obj)

{

for (int y = 0; y < obj. stroka; y++)

for (int x = 0; x < obj. stolbec; x++)

stream >> obj (y, x);

return stream;

}

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π€Π°ΠΉΠ»Ρ‹ cpp.

1. main. cpp

#include

#include

#include

#include «matrix.h»

using std: cout;

using std: ofstream;

using std: ifstream;

using std: cin;

using std: endl;

int primer1(_matrix &, _matrix &);

int primer2(_matrix &);

int primer1(_matrix &_objA, _matrix &_objB)

{

ofstream fout1;

_matrix _objC;

fout1.open («file3.txt»);

if (!fout1)

{

cout << «Error with open output file» << endl;

exit (1);

}

_objC = _objA + _objB;

fout1 << «Π‘ΡƒΠΌΠΌΠ°: n» ;

fout1 << _objC;

_objC = _objA — _objB;

fout1 << «Π Π°Π·Π½ΠΎΡΡ‚ΡŒ: n» ;

fout1 << _objC;

_objC = _objA * _objB;

fout1 << «ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅: n» ;

fout1 << _objC;

return 0;

}

int primer2(_matrix &_objA)

{

ofstream fout1;

fout1.open («file3.txt»);

_matrix _objC;

if (!fout1)

{

cout << «nevozmojno open file3» << endl;

exit (1);

}

_objC = _objA.Inversion ();

fout1 << «matrix Inversion n» ;

fout1 << _objC;

_objC = _objA * _objC;

fout1 << «matrix * matrix. Inversion = n» ;

fout1.precision (3);

fout1 << «%f» <<_objC;

return 0;

}

bool freadMatrix (_matrix& mtr, char* fileName)

{

ifstream fin;

fin.open (fileName);

if (!fin) return false;

fin>>mtr;

fin.close ();

return true;

}

int menu ()

{

int primer;

_matrix objA (5, 5);

_matrix objB (5, 5);

//Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²

if (!freadMatrix (objA, «file1.txt») || !freadMatrix (objB, «file2.txt»))

{

cout << «Error with open input file» << endl;

return 1;

}

cout << «select action n 1. + - * matrix n 2. seatch Inversion matrix» << endl;

cin >> primer;

switch (primer)

{

case (1):

primer1(objA, objB);

break;

case (2):

primer2(objA);

break;

}

cout << «ok» ;

return 0;

}

int main (int argc, char** argv)

{

menu ();

_getch ();

return 0;

}

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