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

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ для ΠΎΡ‚Π΄Π΅Π»Π° логистики Π½Π°Π±ΠΎΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ

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

ИспользованиС Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ XAML. XAML прСдставляСт собой XML, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ фактичСски Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ классы .NET Framework. Π’Π°ΠΊ ΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° модСль раздСлСния ΠΊΠΎΠ΄Π° ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΊΠΎΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ программисту ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Ρƒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΅ΡΡ‚ΡŒ встроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° стилСй элСмСнтов, Π° ΡΠ°ΠΌΠΈ элСмСнты Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ управлСния Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ уровня, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎ ΡƒΡ€ΠΎΠ²Π½Ρ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ для ΠΎΡ‚Π΄Π΅Π»Π° логистики Π½Π°Π±ΠΎΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° По Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅

«Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°»

«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ для ΠΎΡ‚Π΄Π΅Π»Π° логистики Π½Π°Π±ΠΎΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ»

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

1.УсловиС задания

2.ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2.1Класс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° (MainWindow.xaml.cs)

2.2Класс транспонирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (AT.cs)

2.3Класс умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ k (Axk.cs)

2.4Класс получСния каноничСского Π²ΠΈΠ΄Π° ΠΈ Ρ€Π°Π½Π³Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Kan.cs)

2.5Класс чтСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈΠ· Ρ„Π°ΠΉΠ»Π° (Re.cs)

2.6Класс записи Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² вычислСний Π² Ρ„Π°ΠΉΠ» (WR.cs)

2.7Класс произвСдСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (Umn.cs)

2.8Класс слоТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (Plus.cs)

2.9Класс ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ (Parol.cs)

2.10Класс получСния опрСдСлитСля ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Opr.cs)

2.11Класс получСния разности ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Minus.cs)

2.12Класс получСния ΠΌΠΈΠ½ΠΎΡ€Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Mab.cs)

2.13Класс копирования Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ (Copir.cs)

2.14Класс хранСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (Cache.cs)

3.ОписаниС ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

3.1Класс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° (MainWindow.xaml.cs)

3.2Класс транспонирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (AT.cs)

3.3Класс умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ k (Axk.cs)

3.4Класс получСния каноничСского Π²ΠΈΠ΄Π° ΠΈ Ρ€Π°Π½Π³Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Kan.cs)

3.5Класс чтСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈΠ· Ρ„Π°ΠΉΠ»Π° (Re.cs)

3.6Класс записи Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² вычислСний Π² Ρ„Π°ΠΉΠ» (WR.cs)

3.7Класс произвСдСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (Umn.cs)

3.8Класс слоТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (Plus.cs)

3.9Класс ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ (Parol.cs)

3.10Класс получСния опрСдСлитСля ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Opr.cs

3.11Класс получСния разности ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Minus.cs)

3.12Класс получСния ΠΌΠΈΠ½ΠΎΡ€Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Mab.cs)

3.13Класс копирования Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ (Copir.cs)

3.14Класс хранСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (Cache.cs)

4.ОписаниС интСрфСйса

4.1Π€ΠΎΡ€ΠΌΠ° Π²Ρ…ΠΎΠ΄Π° (рис. 3)

4.2Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ (рис. 4)

5.Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

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

Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

Windows Presentation Foundation. Windows Presentation Foundation (WPF, ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ — Avalon) — систСма для построСния клиСнтских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows с Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ возмоТностями взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, графичСская (прСзСнтационная) подсистСма Π² ΡΠΎΡΡ‚Π°Π²Π΅ .NET Framework (начиная с Π²Π΅Ρ€ΡΠΈΠΈ 3.0), ΠΈΠΌΠ΅ΡŽΡ‰Π°Ρ прямоС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ XAML (Π—ΠΠœΠ›).

WPF вмСстС с .NET Framework 3.0 прСдустановлСна Π² Windows Vista ΠΈ Windows 7(.NET Framework 3.5 SP1). Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ WPF ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Π΅ΠΌΡ‹Ρ… Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Π’ ΠΎΡΠ½ΠΎΠ²Π΅ WPF Π»Π΅ΠΆΠΈΡ‚ вСкторная систСма Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½Π΅ Π·Π°Π²ΠΈΡΡΡ‰Π°Ρ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ устройства Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ возмоТностСй соврСмСнного графичСского оборудования. WPF прСдоставляСт срСдства для создания Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ интСрфСйса, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π―Π·Ρ‹ΠΊ XAML (Extensible Application Markup Language), элСмСнты управлСния, привязку Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠ°ΠΊΠ΅Ρ‚Ρ‹, Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½ΡƒΡŽ ΠΈ Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ, Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ, стили, ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, тСкст, ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ° ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅.

ГрафичСской Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ, Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΉ Π² ΠΎΡΠ½ΠΎΠ²Π΅ WPF, являСтся DirectX, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Windows Forms, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ GDI/GDI+. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ WPF Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ Ρƒ GDI+ Π·Π° ΡΡ‡Π΅Ρ‚ использования Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ускорСния Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· DirectX. Π’Π°ΠΊΠΆΠ΅ сущСствуСт урСзанная вСрсия CLR, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‰Π°ΡΡΡ WPF/E, ΠΎΠ½Π° ΠΆΠ΅ извСстна ΠΊΠ°ΠΊ Silverlight.

ИспользованиС Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ XAML. XAML прСдставляСт собой XML, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ фактичСски Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ классы .NET Framework. Π’Π°ΠΊ ΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° модСль раздСлСния ΠΊΠΎΠ΄Π° ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΊΠΎΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ программисту ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Ρƒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΅ΡΡ‚ΡŒ встроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° стилСй элСмСнтов, Π° ΡΠ°ΠΌΠΈ элСмСнты Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ управлСния Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ уровня, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎ ΡƒΡ€ΠΎΠ²Π½Ρ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… Ρ„ΠΈΠ³ΡƒΡ€ ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²/дСйствий. Π­Ρ‚ΠΎ позволяСт Π»Π΅Π³ΠΊΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ для любого элСмСнта, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Button (ΠΊΠ½ΠΎΠΏΠΊΠ°).

БрСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с WPF трСбуСтся любой .NET-совмСстимый язык. Π’ ΡΡ‚ΠΎΡ‚ список Π²Ρ…ΠΎΠ΄ΠΈΡ‚ мноТСство языков: C#, VB, C++, Ruby, Python, Delphi (Prism) ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Для ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ ΠΊΠ°ΠΊ Visual Studio, Ρ‚Π°ΠΊ ΠΈ Expression Blend. ΠŸΠ΅Ρ€Π²Π°Ρ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π° Π²Ρ‚орая — Π½Π° Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, Π½Π΅ ΠΏΡ€ΠΈΠ±Π΅Π³Π°Ρ ΠΊ Ρ€ΡƒΡ‡Π½ΠΎΠΌΡƒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ XAML. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ этому — анимация, стилизация, состояния, созданиС элСмСнтов управлСния ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Microsoft Expression Blend. Microsoft Expression Blend (рис. 1) Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π²Π΅Π±-интСрфСйсов ΠΈ Π³Ρ€Π°Ρ„ичСских Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Рис. 1. Microsoft Expression Blend

ΠšΠ»ΡŽΡ‡Π΅Π²Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Expression Blend ΠΈ Visual Studio ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. А Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ сущСствСнно мСньшС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠΉ.

К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ Ρ‚Ρ€ΡƒΠ΄Π° сразу ΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ созданный Π² Visual Studio ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Expression Blend ΠΈ, СстСствСнно, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ возмоТности ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.

Π’ Blend Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ WYSIWYG (свойство ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТаниС отобраТаСтся Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ рСдактирования). ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… страницах ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ… управлСния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, Π² Ρ€Π΅ΠΆΠΈΠΌ XAML источника, Π»ΠΈΠ±ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ эти Π΄Π²Π° Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π° ΠΎΠ΄Π½ΠΎΠΌ экранС ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

Expression Blend ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. Π’Π°ΠΊΠΆΠ΅ Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° добавлСния ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ирования мноТСства элСмСнтов управлСния. Π•ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΈΠΊΠΎΠ½ΠΊΠ° Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Π΄ΠΈΠ·Π°ΠΉΠ½Π° (Grid, Stack, Canvas, Border, Scroll Viewer, ΠΈ Ρ‚. Π΄.), инструмСнтов рСдактирования тСкста (Text Box, Text Block, ΠΈ Ρ‚. Π΄.) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Π’Ρ‹Π±Ρ€Π°Π² любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ с Π΅Π³ΠΎ свойствами (Π²ΠΊΠ»Π°Π΄ΠΊΠ° Properties). НапримСр, с Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹ΠΌ прСдставлСниСм элСмСнтов ΠΈ Ρ„ΠΎΠ½Π°. МоТно Ρ€Π°ΡΠΊΡ€Π°ΡΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΈΠ½Ρ‚СрСсныС Ρ†Π²Π΅Ρ‚Π°, Π½ΠΎ ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ Π² Π²ΠΈΠ΄Π΅ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° (рис. 2).

А Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ динамичСски Π²ΠΎ Π²Ρ€Π΅ΠΌΡ Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ дСйствия? И ΡΡ‚ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅ возмоТности. МоТно Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ сколь ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сцСнариСв Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ, Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Π·Π²ΡƒΠΊ, ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ ΡΡ‚ΠΈΠ»ΡŒ элСмСнтов. Expression Blend прСдоставляСт максимум возмоТностСй ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΠΈ для быстрой настройки ΠΏΠΎΠ΄ сСбя всСх элСмСнтов. Π§Ρ‚ΠΎ позволяСт ΠΏΠΎΡ„Π°Π½Ρ‚Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ.

Рис. 2. ИспользованиС Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠŸΡ€ΠΈΡΡ‚Π½Ρ‹ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ прилоТСния для Windows Phone 7. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ°Π½ΠΎΡ€Π°ΠΌ (panorama) ΠΈΠ»ΠΈ ΠΏΠ°ΠΉΠ²ΠΎΡ‚ΠΎΠ² (pivot) Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅. Наглядно ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.

1.УсловиС задания ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π·Π°Ρ‰ΠΈΡ‚Ρ‹, ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятным интСрфСйсом ΠΈ Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ управлСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π». Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ мСню, панСль Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ отобраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Набор Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ: ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, слоТСниС, Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†; подсчСт опрСдСлитСля ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹; подсчСт ΠΌΠΈΠ½ΠΎΡ€Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹; транспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ Π΄Ρ€.

2. ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2.1 Класс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° (MainWindow.xaml.cs)

using System;

using System. Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Input;

using Microsoft. Win32;

using System. Diagnostics;

namespace ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°1_0

{

/// Interaction logic for MainWindow. xaml

public partial class MainWindow: Window

{

public MainWindow ()

{

this.InitializeComponent ();

// Insert code required on object creation below this point.

}

Cache ch = new Cache ();

public void Show (int ind)

{

if (ind == 1)

{

Mm1.Text = null;

for (int i = 0; i < ch. c; i++)

{

for (int j = 0; j < ch. d; j++)

{

Mm1.Text += (ch.matr1[i, j]. ToString ()+" «);

}

Mm1.Text += «n» ;

}

}

if (ind == 2)

{

Mm2.Text = null;

for (int i = 0; i < ch. e; i++)

{

for (int j = 0; j < ch. f; j++)

{

Mm2.Text += (ch.matr2[i, j]. ToString ()+" «);

}

Mm2.Text += «n» ;

}

}

if (ind == 3)

{

Mr.Text = null;

for (int i = 0; i < ch. g; i++)

{

for (int j = 0; j < ch. h; j++)

{

Mr.Text += (ch.res[i, j]. ToString ()+" «);

}

Mr.Text += «n» ;

}

}

}

private void Button_Click (object sender, RoutedEventArgs e)

{

string login = Π›ΠΎΠ³ΠΈΠ½.Text.ToString ();

string parol = ΠŸΠ°Ρ€ΠΎΠ»ΡŒ.Password.ToString ();

Parol par = new Parol ();

bool v = par. Dostup (login, parol);

if (v == true)

{

Авторизация.Visibility = Visibility. Collapsed;

ch.fam2 = login;

ch.name2 = parol;

}

}

private void New_Click (object sender, RoutedEventArgs e)

{

MainWindow Wind = new MainWindow ();

Wind.Visibility = Visibility. Visible;

Wind.Авторизация.Visibility = Visibility. Collapsed;

}

private void AT_Click (object sender, RoutedEventArgs e)

{

AT n = new AT ();

n.ATR (1, ch);

Show (3);

}

private void T_Click (object sender, RoutedEventArgs e)

{

if (M1.IsChecked == true)

{

AT_Click (sender, e);

}

if (M2.IsChecked == true)

{

AT2_Click (sender, e);

}

if (M1.IsChecked == true) { }

else

{

if (M2.IsChecked == true) { }

else

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! Π’Ρ‹ Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ!»);

}

}

}

private void AT2_Click (object sender, RoutedEventArgs e)

{

AT n = new AT ();

n.ATR (2, ch);

Show (3);

}

private void Cl_Click (object sender, RoutedEventArgs e)

{

WIND.Close ();

}

private void Op_M1_Click (object sender, RoutedEventArgs e)

{

RE read = new RE ();

read.Read (1, ch);

Show (1);

MessageBox.Show («ΠΠ²Ρ‚ΠΎΡ€ Ρ„Π°ΠΉΠ»Π°: «+ch.name+» «+ch.fam);

}

private void Op_M2_Click1(object sender, RoutedEventArgs e)

{

RE read = new RE ();

read.Read (2, ch);

Show (2);

MessageBox.Show («ΠΠ²Ρ‚ΠΎΡ€ Ρ„Π°ΠΉΠ»Π°: «+ ch.name + «» + ch. fam);

}

private void a_k_GotFocus (object sender, RoutedEventArgs e)

{

a_k.Text = null;

}

private void b_GotFocus (object sender, RoutedEventArgs e)

{

b_b.Text = null;

}

private void Copy_Click (object sender, RoutedEventArgs e)

{

if (M1.IsChecked == true)

{

kop1_Click (sender, e);

}

if (M2.IsChecked == true)

{

kop2_Click (sender, e);

}

if (M1.IsChecked == true) { }

else

{

if (M2.IsChecked == true) { }

else

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! Π’Ρ‹ Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ!»);

}

}

}

private void Ak1_Click (object sender, RoutedEventArgs e)

{

double k=0;

Axk ak = new Axk ();

try

{

k = Convert. ToDouble (a_k.Text.ToString ());

ak.Axk2(1, k, ch);

}

catch

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! Π’Ρ‹ Π½Π΅ Π²Π²Π΅Π»ΠΈ число k»);

}

Show (3);

}

private void Ak2_Click (object sender, RoutedEventArgs e)

{

double k = 0;

Axk ak = new Axk ();

try

{

k = Convert. ToDouble (a_k.Text.ToString ());

ak.Axk2(2, k, ch);

}

catch

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! Π’Ρ‹ Π½Π΅ Π²Π²Π΅Π»ΠΈ число k»);

}

Show (3);

}

private void K_Click (object sender, RoutedEventArgs e)

{

if (M1.IsChecked == true)

{

Ak1_Click (sender, e);

}

else

{

if (M2.IsChecked == true)

{

Ak2_Click (sender, e);

}

else

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! Π’Ρ‹ Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ!»);

}

}

}

private void Obr_Click (object sender, RoutedEventArgs e)

{

if (M1.IsChecked == true)

{

obr1_Click (sender, e);

}

else

{

if (M2.IsChecked == true)

{

obr2_Click (sender, e);

}

else

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! Π’Ρ‹ Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ!»);

}

}

}

private void obr1_Click (object sender, RoutedEventArgs e)

{

double opr = 0;

if (ch.c == ch. d)

{

ch.g = ch. c;

ch.h = ch. d;

Opr chislo = new Opr ();

opr = chislo. DetGauss (1, ch);

if (opr ≠ 0)

{

double k = 1 / opr;

double[,] Soglmatr = new double[ch.c, ch. d];

for (int i = 0; i < ch. c; i++)

{

for (int j = 0; j < ch. d; j++)

{

Mab mab = new Mab ();

Soglmatr[i, j] = mab. Min (1, i, j, ch);

}

}

ch.g++;

ch.h++;

ch.res = Soglmatr;

AT tr = new AT ();

tr.ATR (3, ch);

Axk axk = new Axk ();

axk.Axk2(3, k, ch);

Show (3);

}

else

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! Данная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° являСтся Π²Ρ‹Ρ€ΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠΉ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹!»);

}

}

else

{

MessageBox.Show («Π’ыбранная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ!»);

}

}

private void obr2_Click (object sender, RoutedEventArgs e)

{

double opr = 0;

if (ch.e == ch. f)

{

ch.g = ch. e;

ch.h = ch. f;

Opr chislo = new Opr ();

opr = chislo. DetGauss (2, ch);

if (opr ≠ 0)

{

double k = 1 / opr;

double[,] Soglmatr = new double[ch.e, ch. f];

for (int i = 0; i < ch. e; i++)

{

for (int j = 0; j < ch. f; j++)

{

Mab mab = new Mab ();

Soglmatr[i, j] = mab. Min (2, i, j, ch);

}

}

ch.g++;

ch.h++;

ch.res = Soglmatr;

AT tr = new AT ();

tr.ATR (3, ch);

Axk axk = new Axk ();

axk.Axk2(3, k, ch);

Show (3);

}

else

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! Данная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° являСтся Π²Ρ‹Ρ€ΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠΉ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹!»);

}

}

else

{

MessageBox.Show («Π’ыбранная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ!»);

}

}

private void Zakr_Click (object sender, RoutedEventArgs e)

{

Mm1.Text = null;

Mm2.Text = null;

Mr.Text = null;

a_k.Text = «a (k)» ;

b_b.Text = «b» ;

status_M1.Text = status_M2.Text = status_rM.Text = «Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚» ;

M1.IsChecked = false;

M2.IsChecked = false;

ch.c = ch. d = ch. e = ch. f = ch. g = ch. h = 0;

ch.fam = ch.name = «» ;

ch.matr1 = ch. matr2 = ch. res = null;

}

private void S_Click (object sender, RoutedEventArgs e)

{

WR sav = new WR ();

sav.Save (ch);

}

private void Sum_Click (object sender, RoutedEventArgs e)

{

Plus sum = new Plus ();

sum.Sum (ch);

Show (3);

}

private void sl_Click (object sender, RoutedEventArgs e)

{

Sum_Click (sender, e);

}

private void Razn_Click (object sender, RoutedEventArgs e)

{

Minus m = new Minus ();

m.Min (ch);

Show (3);

}

private void Minus_Click (object sender, RoutedEventArgs e)

{

Razn_Click (sender, e);

}

private void Del_Click (object sender, RoutedEventArgs e)

{

obr2_Click (sender, e);

double[,] vrem = ch. matr2;

int vrem1 = ch. e;

int vrem2 = ch. f;

ch.e = ch. g;

ch.f = ch. h;

ch.matr2 = ch. res;

Umn_Click (sender, e);

ch.e = vrem1;

ch.g = vrem2;

ch.matr2 = vrem;

Show (2);

}

private void razd_Click (object sender, RoutedEventArgs e)

{

Del_Click (sender, e);

}

private void Umn_Click (object sender, RoutedEventArgs e)

{

Umn umn = new Umn ();

umn.Umn2(ch);

Show (3);

}

private void umn_Click1(object sender, RoutedEventArgs e)

{

Umn_Click (sender, e);

}

private void О_ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅_Click (object sender, RoutedEventArgs e)

{

Window1 win = new Window1();

win.Visibility = Visibility. Visible;

}

private void Delta_Click (object sender, RoutedEventArgs e)

{

if (M1.IsChecked == true)

{

Opred1_Click (sender, e);

}

else

{

if (M2.IsChecked == true)

{

Opred2_Click (sender, e);

}

else

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! Π’Ρ‹ Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ!»);

}

}

}

private void M_Click (object sender, RoutedEventArgs e)

{

if (M1.IsChecked == true)

{

Min1_Click (sender, e);

}

else

{

if (M2.IsChecked == true)

{

Min2_Click (sender, e);

}

else

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! Π’Ρ‹ Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ!»);

}

}

}

private void ΠŸΠ°Ρ€ΠΎΠ»ΡŒ_KeyDown (object sender, KeyEventArgs e)

{

if (e.Key.Equals (Key.Enter))

{

Button_Click (sender, e);

}

}

private void Π›ΠΎΠ³ΠΈΠ½_KeyDown (object sender, System.Windows.Input.KeyEventArgs e)

{

if (e.Key.Equals (Key.Enter))

{

ΠŸΠ°Ρ€ΠΎΠ»ΡŒ.Focus ();

}

}

private void Opred1_Click (object sender, RoutedEventArgs e)

{

Opr delta = new Opr ();

double opr = delta. DetGauss (1, ch);

status_M1.Text = («ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ€Π°Π²Π΅Π½ «+ opr. ToString ());

Show (3);

}

private void Opred2_Click (object sender, RoutedEventArgs e)

{

Opr delta = new Opr ();

double opr = delta. DetGauss (2, ch);

status_M2.Text =(«ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ€Π°Π²Π΅Π½ «+ opr. ToString ());

Show (3);

}

private void Min1_Click (object sender, RoutedEventArgs e)

{

Mab minor2=new Mab ();

double minor=0;

int a = 0;

int b = 0;

try

{

a = Convert. ToInt32(a_k.Text) — 1;

b = Convert. ToInt32(b_b.Text) — 1;

}

catch

{

MessageBox.Show («ΠŸΠΎΠ»Ρ a (k) ΠΈ b Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹»);

goto u;

}

minor = minor2. Min (1, a, b, ch);

status_M1.Text =(«ΠœΠΈΠ½ΠΎΡ€ Ρ€Π°Π²Π΅Π½ «+minor.ToString ());

u: status_rM.Text = «Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚» ;

}

private void Min2_Click (object sender, RoutedEventArgs e)

{

Mab minor2 = new Mab ();

double minor = 0;

int a = 0;

int b = 0;

try

{

a = Convert. ToInt32(a_k.Text) — 1;

b = Convert. ToInt32(b_b.Text) — 1;

}

catch

{

MessageBox.Show («ΠŸΠΎΠ»Ρ a (k) ΠΈ b Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹»);

goto u;

}

minor = minor2. Min (2, a, b, ch);

status_M2.Text = («ΠœΠΈΠ½ΠΎΡ€ Ρ€Π°Π²Π΅Π½ «+ minor. ToString ());

u: status_rM.Text = «Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚» ;

}

private void Π›ΠΎΠ³ΠΈΠ½_Initialized (object sender, EventArgs e)

{

Π›ΠΎΠ³ΠΈΠ½.Focus ();

}

private void kop1_Click (object sender, RoutedEventArgs e)

{

Copir cop = new Copir ();

cop.C (1, ch);

Show (1);

}

private void kop2_Click (object sender, RoutedEventArgs e)

{

Copir cop = new Copir ();

cop.C (2, ch);

Show (2);

}

private void Kan1_Click (object sender, RoutedEventArgs e)

{

Kan kan = new Kan ();

kan.KV (1, ch);

Show (3);

}

private void Kan2_Click (object sender, RoutedEventArgs e)

{

Kan kan = new Kan ();

kan.KV (2, ch);

Show (3);

}

private void KV_Click (object sender, RoutedEventArgs e)

{

if (M1.IsChecked == true)

{

Kan1_Click (sender, e);

}

else

{

if (M2.IsChecked == true)

{

Kan2_Click (sender, e);

}

else

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! Π’Ρ‹ Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ!»);

}

}

}

private void R1_Click (object sender, RoutedEventArgs e)

{

Kan rang = new Kan ();

int r=rang.Rang (1, ch);

status_M1.Text=(«Π Π°Π½Π³ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ€Π°Π²Π΅Π½ «+r.ToString ());

}

private void R2_Click (object sender, RoutedEventArgs e)

{

Kan rang = new Kan ();

int r = rang. Rang (2, ch);

status_M2.Text = («Π Π°Π½Π³ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ€Π°Π²Π΅Π½ «+ r. ToString ());

}

private void R_Click (object sender, RoutedEventArgs e)

{

if (M1.IsChecked == true)

{

R1_Click (sender, e);

}

else

{

if (M2.IsChecked == true)

{

R2_Click (sender, e);

}

else

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! Π’Ρ‹ Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ!»);

}

}

}

private void Π‘ΠΏΡ€Π°Π²ΠΊΠ°1_Click (object sender, RoutedEventArgs e)

{

string path = @" D: Π Π°Π±ΠΎΡ‚Π°4 ΡΠ΅ΠΌΠΌΠ΅ΡΡ‚Ρ€ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° 1.0_Copy1ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° 1.0Π‘ΠΏΡ€Π°Π²ΠΊΠ°" ;

Process pr = new Process ();

pr.StartInfo.FileName = path + «\Π‘ΠΏΡ€Π°Π²ΠΊΠ°.chm» ;

pr.Start ();

}

}

}

2.2Класс транспонирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (AT.cs)

using System;

namespace ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°1_0

{

class AT

{

public void ATR (int ind, Cache ch)

{

int a=0, b=0;

double[,] matr=new double[a, b];

if (ind == 1)

{

a = ch. c;

b = ch. d;

matr = ch. matr1;

}

if (ind==2)

{

a = ch. e;

b = ch. f;

matr = ch. matr2;

}

if (ind == 3)

{

a = ch. g;

b = ch. h;

matr = ch. res;

}

double[,] res = new double[b, a];

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

{

for (int j = 0; j < b; j++)

{

res[j, i] = matr[i, j];

}

}

ch.g = b;

ch.h = a;

ch.res = res;

}

}

}

2.3Класс умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ k (Axk.cs

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

namespace ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°1_0

{

class Axk

{

public void Axk2(int ind, double k, Cache ch)

{

int a = 0, b = 0;

double[,] matr = new double[a, b];

if (ind == 1)

{

a = ch. c;

b = ch. d;

matr=ch.matr1;

}

if (ind == 2)

{

a = ch. e;

b = ch. f;

matr = ch. matr2;

}

if (ind == 3)

{

a = ch. g;

b = ch. h;

matr = ch. res;

ch.res = null;

}

double[,] res = new double[a, b];

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

{

for (int j = 0; j < b; j++)

{

res[i, j] = Math. Round (matr[i, j]*k, 3);

}

}

ch.g = a;

ch.h = b;

ch.res = res;

}

}

}

2.4 Класс получСния каноничСского Π²ΠΈΠ΄Π° ΠΈ Ρ€Π°Π½Π³Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Kan.cs)

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

namespace ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°1_0

{

class Kan

{

public void KV (int ind, Cache ch)

{

int a=0,b=0,n=0;

int uchet = 0;

double[,] matr=new double[a, b];

if (ind==1)

{

a=ch.c;

b=ch.d;

matr=ch.matr1;

}

if (ind == 2)

{

a=ch.e;

b=ch.f;

matr=ch.matr2;

}

q:

if (n < a && n < b)

{

double del = matr[n, n];

if (del ≠ 0)

{

double[] str = new double[b — n];

double umn = 0;

for (int i = n; i < b; i++)

{

matr[n, i] = matr[n, i] / del;

str[i — n] = matr[n, i];

}

for (int i = n + 1; i < a; i++)

{

umn = matr[i, n];

for (int j = n; j < b; j++)

{

matr[i, j] = matr[i, j] - str[j — n] * umn;

}

}

for (int i = n + 1; i < b; i++)

{

matr[n, i] = 0;

}

for (int i = n; i < a; i++)

{

for (int j = n; j < b; j++)

{

if (i == n || j == n)

{

if (matr[i, j] == 0)

{

uchet++;

}

}

}

}

}

}

if (uchet == ((a + b) — 2)-2*n && uchet≠0)

{

uchet=0;

n++;

goto q;

}

else

{

ch.g = a;

ch.h = b;

ch.res = matr;

}

}

public int Rang (int ind, Cache ch)

{

KV (ind, ch);

int rang = 0;

int n = ch. g;

int m = ch. h;

q:

int vrem = 0;

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

{

for (int j = 0; j < m; j++)

{

if (i == n — 1 && ch. res[i, j]==0)

{

vrem++;

}

}

}

if (vrem == m)

{

n—;

goto q;

}

else

{

rang = n;

}

return rang;

}

}

}

2.5Класс чтСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈΠ· Ρ„Π°ΠΉΠ»Π° (Re.cs)

using System;

using System.Collections.Generic;

using System. Text;

using System. IO;

using System. Windows;

using Microsoft. Win32;

namespace ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°1_0

{

class RE

{

public int a = 0, b;

public void Read (int ind, Cache ch)

{

Encoding en = Encoding. GetEncoding (1251);

char[] ca = { ' ', ','};

string[] strarray;

string strline;

List mas = new List ();

Stream myStream = null;

OpenFileDialog openFileDialog1 = new OpenFileDialog ();

openFileDialog1.InitialDirectory = «c:» ;

openFileDialog1.Filter = «matr files (*.matr)|*.matr|All files (*.*)|*.*» ;

openFileDialog1.FilterIndex = 1;

openFileDialog1.RestoreDirectory = true;

int vrem = 0;

if (openFileDialog1.ShowDialog () ≠ null)

{

try

{

if ((myStream = openFileDialog1. OpenFile ()) ≠ null)

{

using (myStream)

{

StreamReader sr = new StreamReader (myStream, en);

strline = sr. ReadLine ();

int k = 0;

while (strline ≠ null)

{

strarray = strline. Split (ca);

b = strarray. Length;

mas.Add (strline);

strline = sr. ReadLine ();

if (k == 0)

{

vrem = b;

if (vrem < 3)

{

string[] strarray2 = mas[0]. Split (ca);

ch.name = strarray2[0];

ch.fam = strarray2[1];

a—;

k++;

}

else

{

ch.name = «ΠΠ²Ρ‚ΠΎΡ€» ;

ch.fam = «ΠΎΡ‚сутствуСт» ;

k++;

}

}

a++;

}

}

myStream.Close ();

}

}

catch

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! Π’Ρ‹ Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Ρ„Π°ΠΉΠ».»);

}

}

int l = 0;

double[,] matr = new double[a, b];

for (int i = 0; i < a+l; i++)

{

if (vrem < 3&&l==0)

{

i = 1;

l++;

}

strarray = (mas[i]. Split (ca));

for (int j = 0; j < b; j++)

{

if (vrem < 3)

{

matr[i — 1, j] = Convert. ToDouble (strarray[j]);

}

else

{

matr[i, j] = Convert. ToDouble (strarray[j]);

}

}

}

if (ind == 1)

{

ch.c = a;

ch.d = b;

ch.matr1 = matr;

}

if (ind == 2)

{

ch.e = a;

ch.f = b;

ch.matr2 = matr;

}

}

}

}

2.6 Класс записи Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² вычислСний Π² Ρ„Π°ΠΉΠ» (WR.cs)

using System;

using System. Text;

using System. IO;

using System. Windows;

using Microsoft. Win32;

namespace ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°1_0

{

class WR

{

public void Save (Cache ch)

{

SaveFileDialog save = new SaveFileDialog ();

save.InitialDirectory = «c:» ;

save.Filter = «matr files (*.matr)|*.matr|All files (*.*)|*.*» ;

save.FilterIndex = 1;

save.RestoreDirectory = true;

if (save.ShowDialog () == true)

{

string[] zap = new string[ch.g+1];

for (int i = 0; i < ch. g+1; i++)

{

string add=null;

for (int j = 0; j < ch. h; j++)

{

if (i == 0)

{

add = ch.name2 + «» + ch. fam2;

}

else

{

if (j == ch. h — 1)

{

add += ch. res[i — 1, j]. ToString ();

}

else

{

add += (ch.res[i — 1, j]. ToString () + ««);

}

}

}

zap[i] = add;

}

Encoding en=Encoding.GetEncoding (1251);

File.WriteAllLines (save.FileName, zap, en);

}

}

}

}

2.7Класс произвСдСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (Umn.cs)

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

using System. Windows;

namespace ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°1_0

{

class Umn

{

public void Umn2(Cache ch)

{

if (ch.d == ch. e)

{

double[,] matr = new double[ch.c, ch. f];

ch.g = ch. c;

ch.h = ch. f;

for (int i = 0; i < ch. c; i++)

{

for (int j = 0; j < ch. f; j++)

{

for (int k = 0; k < ch. d; k++)

{

matr[i, j] += ch. matr1[i, k] * ch. matr2[k, j];

}

}

}

ch.res = matr;

}

else

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ столбцов ΠΈ ΡΡ‚Ρ€ΠΎΠΊ Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Ρ… Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ‚.»);

}

for (int i = 0; i < ch. g; i++)

{

for (int j = 0; j < ch. h; j++)

{

ch.res[i, j] = Math. Round (ch.res[i, j]);

}

}

}

}

}

2.8 ласс слоТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (Plus.cs)

using System;

using System. Windows;

namespace ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°1_0

{

class Plus

{

public void Sum (Cache ch)

{

if (ch.c == ch. e)

{

if (ch.d == ch. f)

{

ch.g = ch. e;

ch.h = ch. f;

double[,] matr = new double[ch.g, ch. f];

for (int i = 0; i < ch. c; i++)

{

for (int j = 0; j < ch. d; j++)

{

matr[i, j] = (ch.matr1[i, j] + ch. matr2[i, j]);

}

}

ch.res = matr;

}

else

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ столбцов Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Ρ… Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ‚.»);

}

}

else

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ строк Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Ρ… Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ‚.»);

}

}

}

}

2.9 Класс ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ (Parol.cs)

using System;

using System.Collections.Generic;

using System. Windows;

namespace ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°1_0

{

class Parol

{

public bool Dostup (string login, string parol)

{

List log=new List ();

log.Add («ΠΠ±Ρ…Π°Π»ΠΈΠΊΠΎΠ²»);

log.Add («Π‘улавский»);

log.Add («Π‘ΡƒΠ»Ρ‹Π³Π°»);

log.Add («Π“ΠΎΡ€Π±Π΅Π½ΠΊΠΎ»);

log.Add («Π”ядичкин»);

log.Add («Π—Π°Π½ΡŒΠΊΠΎ»);

log.Add («ΠšΠ°Π·Π°ΠΊ»);

log.Add («ΠšΠΈΠΌ»);

log.Add («ΠšΠΎΠ·Π»ΠΎΠ²Π°»);

log.Add («ΠšΡƒΠ·Π½Π΅Ρ†ΠΎΠ²»);

log.Add («ΠšΡƒΠ»ΡŒΡ‡ΠΈΠΊ»);

log.Add («ΠœΡƒΡ€Π°ΡˆΠΊΠΎ»);

log.Add («ΠœΡƒΡΠ°Π΅Π²»);

log.Add («ΠžΠ·ΠΎΠ»ΠΈΠ½»);

log.Add («Π ΡΠ±Ρ‡ΠΈΠ½ΡΠΊΠ°Ρ»);

log.Add («Π¨Π°Ρ‡Π΅Π½ΠΎΠΊ»);

log.Add («Π ΠΎΠΌΠ°Π½ΠΎΠ²ΡΠΊΠΈΠΉ»);

log.Add («Π―ΠΊΠΈΠΌΠΎΠ²ΠΈΡ‡»);

log.Add («Π₯ΠΎΠ΄Π°Ρ€»);

log.Add («Π‘окольников»);

log.Add («Π ΡƒΡ‚ковский»);

log.Add («Π‘Π΅Ρ€Π΅Π±Ρ€Π΅Π½Π½ΠΈΠΊΠΎΠ²»);

log.Add («Π‘ΠΊΠΎΡ€ΠΎΠ±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ»);

log.Add («Π§Π°ΡˆΠΈΠ½ΡΠΊΠΈΠΉ»);

List par = new List ();

par.Add («Π ΡƒΡΠ»Π°Π½»);

par.Add («Π˜Π²Π°Π½»);

par.Add («Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€»);

par.Add («ΠΠ»Π»Π°»);

par.Add («Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ»);

par.Add («Π ΠΎΠΌΠ°Π½»);

par.Add («ΠΠ»Π΅ΠΊΡΠ΅ΠΉ»);

par.Add («Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ»);

par.Add («Π’иктория»);

par.Add («Π’Π°Π»Π΅Ρ€ΠΈΠΉ»);

par.Add («Π‘Π΅Ρ€Π³Π΅ΠΉ»);

par.Add («ΠœΠΈΡ…Π°ΠΈΠ»»);

par.Add («Π­Π»ΡŒΠ΄Π°Ρ€»);

par.Add («ΠΠΈΠΊΠΈΡ‚Π°»);

par.Add («ΠΠ°Π΄Π΅ΠΆΠ΄Π°»);

par.Add («Π’Π°Ρ‚ΡŒΡΠ½Π°»);

par.Add («ΠΠ½Ρ‚ΠΎΠ½»);

par.Add («ΠŸΠ°Π²Π΅Π»»);

par.Add («ΠœΠ°ΠΊΡΠΈΠΌ»);

par.Add («ΠœΠ°ΠΊΡΠΈΠΌ»);

par.Add («ΠΠ»Π΅ΠΊΡΠ΅ΠΉ»);

par.Add («Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€»);

par.Add («Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ»);

par.Add («ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ€»);

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

{

if (login == log[i])

{

if (parol == par[i])

{

MessageBox.Show («Π’Ρ…ΠΎΠ΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½!»);

MessageBox.Show («Π—дравствуйтС «+par[i]);

return true;

}

}

}

MessageBox.Show («Π’Ρ‹ Π²Π²Π΅Π»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅!»);

return false;

}

}

}

2.10Класс получСния опрСдСлитСля ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Opr.cs)

using System;

using System.Collections.Generic;

using System. Windows;

namespace ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°1_0

{

class Opr

{

int n = 0;

List> M = new List>();

double[,] matr;

public double DetGauss (int ind, Cache ch)

{

if (ind == 1)

{

if (ch.c == ch. d)

{

n = ch. c;

matr = ch. matr1;

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

{

List Mr = new List ();

for (int j = 0; j < n; j++)

{

Mr.Add (matr[i, j]);

}

M.Add (Mr);

}

}

else

{

MessageBox.Show («Π’ыбранная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ!»);

}

}

if (ind == 2)

{

if (ch.e == ch. f)

{

n = ch. e;

matr = ch. matr2;

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

{

List Mr = new List ();

for (int j = 0; j < n; j++)

{

Mr.Add (matr[i, j]);

}

M.Add (Mr);

}

}

else

{

MessageBox.Show («Π’ыбранная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ!»);

}

}

if (ind == 3)

{

if (ch.g == ch. h)

{

n = ch. h;

matr = ch. res;

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

{

List Mr = new List ();

for (int j = 0; j < n; j++)

{

Mr.Add (matr[i, j]);

}

M.Add (Mr);

}

}

else

{

MessageBox.Show («Π’ыбранная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ!»);

}

}

double det = 1;

int k = 0;

const double E = 1E-9;

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

{

k = i;

for (int j = i + 1; j < n; j++)

{

if (Math.Abs (M[j][i]) > Math. Abs (M[k][i]))

{

k = j;

}

}

if (Math.Abs (M[k][i]) < E)

{

det = 0;

break;

}

Swap (ref M, i, k);

if (i ≠ k) det *= -1;

{

det *= M[i][i];

}

for (int j = i + 1; j < n; j++)

{

M[i][j] /= M[i][i];

}

for (int j = 0; j < n; j++)

{

if ((j ≠ i) && (Math.Abs (M[j][i]) > E))

{

for (k = i + 1; k < n; k++)

{

M[j][k] -= M[i][k] * M[j][i];

}

}

}

}

return det;

}

private void Swap (ref List> M, int row1, int row2)

{

double s = 0;

for (int i = 0; i < M[row1]. Count; i++)

{

s = M[row1][i];

M[row1][i] = M[row2][i];

M[row2][i] = s;

}

}

}

}

2.11Класс получСния разности ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Minus.cs)

using System;

using System.Collections.Generic;

using System. Text;

using System. Windows;

namespace ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°1_0

{

class Minus

{

public void Min (Cache ch)

{

if (ch.c == ch. e)

{

if (ch.d == ch. f)

{

ch.g = ch. e;

ch.h = ch. f;

double[,] matr = new double[ch.g, ch. f];

for (int i = 0; i < ch. c; i++)

{

for (int j = 0; j < ch. d; j++)

{

matr[i, j] = (ch.matr1[i, j] - ch. matr2[i, j]);

}

}

ch.res = matr;

}

else

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ столбцов Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Ρ… Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ‚.»);

}

}

else

{

MessageBox.Show («ΠžΡˆΠΈΠ±ΠΊΠ°! ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ строк Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Ρ… Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ‚.»);

}

}

}

2.12 Класс получСния ΠΌΠΈΠ½ΠΎΡ€Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Mab.cs)

using System;

using System.Collections.Generic;

using System. Windows;

using System.Windows.Controls;

namespace ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°1_0

{

class Mab

{

public double Min (int ind, int a, int b, Cache ch)

{

double min = 0;

if (ind == 1)

{

double[,] vrem1 = new double[ch.c — 1, ch. d];

double[,] vrem2 = new double[ch.c — 1, ch. d-1];

if (a < ch. c && b < ch. d)

{

ch.g = ch. c-1;

ch.h = ch. d-1;

for (int i = 0; i < ch. c; i++)

{

for (int j = 0; j < ch. d; j++)

{

if (i

{

vrem1[i, j]=ch.matr1[i, j];

}

if (i>a)

{

vrem1[i-1,j]=ch.matr1[i, j];

}

}

}

for (int i = 0; i < ch. c-1; i++)

{

for (int j = 0; j < ch. d; j++)

{

if (j < b)

{

vrem2[i, j] = vrem1[i, j];

}

if (j > b)

{

vrem2[i, j — 1] = vrem1[i, j];

}

}

}

ch.res = vrem2;

int z = 0;

int y = 0;

z = Math. DivRem ((a+b), 2, out y);

Opr delta = new Opr ();

if (y == 0)

{

min = delta. DetGauss (3, ch);

}

else

{

min = delta. DetGauss (3, ch)*(-1);

}

}

else

{

MessageBox.Show («Π’Ρ‹ Π²Π²Π΅Π»ΠΈ число большСС Ρ‡Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹!»);

}

}

if (ind == 2)

{

double[,] vrem1 = new double[ch.e — 1, ch. f];

double[,] vrem2 = new double[ch.e — 1, ch. f — 1];

if (a < ch. e || b < ch. f)

{

ch.g = ch. e — 1;

ch.h = ch. f — 1;

for (int i = 0; i < ch. e; i++)

{

for (int j = 0; j < ch. f; j++)

{

if (i < a)

{

vrem1[i, j] = ch. matr2[i, j];

}

if (i > a)

{

vrem1[i — 1, j] = ch. matr2[i, j];

}

}

}

for (int i = 0; i < ch. e — 1; i++)

{

for (int j = 0; j < ch. f; j++)

{

if (j < b)

{

vrem2[i, j] = vrem1[i, j];

}

if (j > b)

{

vrem2[i, j — 1] = vrem1[i, j];

}

}

}

ch.res = vrem2;

int z = 0;

int y = 0;

z = Math. DivRem ((a + b), 2, out y);

Opr delta = new Opr ();

if (y == 0)

{

min = delta. DetGauss (3, ch);

}

else

{

min = delta. DetGauss (3, ch) * (-1);

}

}

else

{

MessageBox.Show («Π’Ρ‹ Π²Π²Π΅Π»ΠΈ число большСС Ρ‡Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹!»);

}

}

return min;

}

}

}

2.13Класс копирования Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ (Copir.cs)

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

namespace ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°1_0

{

class Copir

{

public void C (int ind, Cache ch)

{

if (ind == 1)

{

ch.c = ch. g;

ch.d = ch. h;

ch.matr1 = ch. res;

}

if (ind == 2)

{

ch.e = ch. g;

ch.f = ch. h;

ch.matr2 = ch. res;

}

}

}

}

2.14Класс хранСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (Cache.cs)

using System;

using System.Collections.Generic;

namespace ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°1_0

{

class Cache

{

public int c, d, e, f, g, h;

public double[,] matr1, matr2, res;

public string fam, fam2, name, name2;

public void Zap (int a, int b, int ind, double[,] matr)

{

if (ind == 1)

{

c = a;

d = b;

matr1 = matr;

}

if (ind == 2)

{

e = a;

f = b;

matr2 = matr;

}

if (ind == 3)

{

g = a;

h = b;

res = matr;

}

}

}

}

3. ОписаниС ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

3.1Класс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° (MainWindow.xaml.cs)

Π”Π°Π½Π½Ρ‹ΠΉ класс содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°:

Cache ch = new Cache ();

ОбъявлСниС Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта класса Cache ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎ Π²ΡΠ΅Ρ… классах для доступа ΠΊ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹ΠΌ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌ.

public void Show (int ind) { … }

Π­Ρ‚Π° функция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΡΠΊΡ€Π°Π½ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ мСсто ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ: ΠΎΠ½Π° опрСдСляСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ind, Π·Π°Ρ‚Π΅ΠΌ пСрСчисляСтся Π² Ρ†ΠΈΠΊΠ»Π΅ for ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ся Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Textbloc.

private void Button_Click (object sender, RoutedEventArgs e) { … }

Π”Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ записываСт Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ класс Parol. cs ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Если Π²Ρ…ΠΎΠ΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для использования ΠΈΡ… ΠΏΡ€ΠΈ сохранСнии.

string login = Π›ΠΎΠ³ΠΈΠ½.Text.ToString (); - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΈΠ½Π°.

string parol =ΠŸΠ°Ρ€ΠΎΠ»ΡŒ.Password.ToString (); - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ пароля.

Авторизация.Visibility = Visibility. Collapsed; - Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

private void New_Click (object sender, RoutedEventArgs e) { … }

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ экзСмпляра ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Π΅Π· Ρ„ΠΎΡ€ΠΌΡ‹ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

private void AT_Click (ob ject sender, RoutedEventArgs e) { … }

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ создаСт Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт класса AT. cs ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ транспонирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, пСрСдавая Π½ΠΎΠΌΠ΅Ρ€ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ элСмСнт Cache ch Π΄Π»Ρ доступа ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅, ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π½Π° ΡΠΊΡ€Π°Π½. Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ private void AT2_Click (object sender, RoutedEventArgs e), Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ private void T_Click (object sender, RoutedEventArgs e) провСряСт Ρ€Π°Π΄ΠΈΠΎ клавиши ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡ‚ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅.

private void Cl_Click (object sender, RoutedEventArgs e) { … }

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

private void Op_M1_Click (object sender, RoutedEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса чтСния (Re.cs) ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° ΡΠΊΡ€Π°Π½. Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ для Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ private void Op_M2_Click1(object sender, RoutedEventArgs e) { … }.

private void a_k_GotFocus (object sender, RoutedEventArgs e) ΠΈ private void b_GotFocus (object sender, RoutedEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ фокуса тСкстовыми полями ΠΈ ΠΎΡ‡ΠΈΡ‰Π°ΡŽΡ‚ тСкст ΠΏΠ΅Ρ€Π΅Π΄ Π²Π²ΠΎΠ΄ΠΎΠΌ (b_b.Text = null;).

private void kop1_Click (object sender, RoutedEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Copir. cs ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ копирования Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ. Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ для Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ private void kop2_Click (object sender, RoutedEventArgs e). А ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ private void Copy_Click (object sender, RoutedEventArgs e) провСряСт Ρ€Π°Π΄ΠΈΠΎ клавиши ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡ‚ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅.

private void Ak1_Click (object sender, RoutedEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Axk. cs, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ числа k ΠΈΠ· Textbox (k = Convert. ToDouble (a_k.Text.ToString ());) ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ умноТСния. ПослС Ρ‡Π΅Π³ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π½Π° ΡΠΊΡ€Π°Π½. Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ для Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ private void Ak2_Click (object sender, RoutedEventArgs e). А ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ private void K_Click (object sender, RoutedEventArgs e) провСряСт Ρ€Π°Π΄ΠΈΠΎ клавиши ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡ‚ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅.

private void obr1_Click (object sender, RoutedEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ выполняСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ для получСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:

ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈ Π·Π°Π΄Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ значСния;

создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Opr. cs ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π²Ρ‹Π·Π²Π°Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ;

Ссли ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π½Π΅ Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ, Ρ‚ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΠ΅Ρ‚ся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° согласная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ исходной, Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ½Π° транспонируСтся ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅Ρ‚ся Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹;

вызываСтся Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΡΠΊΡ€Π°Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ для Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ€ΠΎΡ‚Ρ‡ΠΈΠΊ private void obr2_Click (object sender, RoutedEventArgs e). А ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ private void Obr_Click (object sender, RoutedEventArgs e) провСряСт Ρ€Π°Π΄ΠΈΠΎ клавиши ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡ‚ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅.

private void Zakr_Click (object sender, RoutedEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ Π±Π΅Π· закрытия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡƒΡ‚Π΅ΠΌ очистки всСх ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΎΡ‡ΠΈΡΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠ»Π°ΡΡΠ΅ Cache. cs ΠΊΡ€ΠΎΠΌΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ вошСдшСго ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

private void S_Click (object sender, RoutedEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса WR. cs ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для записи ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π² Ρ„Π°ΠΉΠ».

private void Sum_Click (object sender, RoutedEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Plus. cs ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ функция ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π²Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, послС Ρ‡Π΅Π³ΠΎ вызываСтся Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΡΠΊΡ€Π°Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ². На ΡΡ‚ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ссылаСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ слоТСния private void sl_Click (object sender, RoutedEventArgs e) доступный ΠΈΠ· ΠΌΠ΅Π½ΡŽ «Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ».

private void Razn_Click (object sender, RoutedEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса вычитания ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (private void Razn_Click (object sender, RoutedEventArgs e)), Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π½Π° ΡΠΊΡ€Π°Π½. На ΡΡ‚ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ссылаСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ дСйствия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ доступной ΠΈΠ· ΠΌΠ΅Π½ΡŽ «Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ» (private void Minus_Click (object sender, RoutedEventArgs e)).

private void Del_Click (object sender, RoutedEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄Π΅Π»ΠΈΡ‚ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π½Π° Π²Ρ‚ΠΎΡ€ΡƒΡŽ. Для этого:

Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ получСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΎΡ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΉ;

записываСт Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅;

Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†;

Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π½Π° ΠΌΠ΅ΡΡ‚ΠΎ;

Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π½Π° ΡΠΊΡ€Π°Π½.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ дСлСния ΠΈΠ· ΠΌΠ΅Π½ΡŽ «Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ» Ρ‚Π°ΠΊΠΆΠ΅ ссылаСтся Π½Π° ΡΡ‚ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ (private void razd_Click (object sender, RoutedEventArgs e)).

private void Umn_Click (object sender, RoutedEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса призвСдСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (Umn.cs) ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ умноТСния, Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π½Π° ΡΠΊΡ€Π°Π½. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ умноТСния ΠΈΠ· ΠΌΠ΅Π½ΡŽ «Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ» Ρ‚Π°ΠΊΠΆΠ΅ ссылаСтся Π½Π° ΡΡ‚ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ (private void umn_Click1(object sender, RoutedEventArgs e)).

private void О_ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅_Click (object sender, RoutedEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΊΠ½ΠΎ со ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΠΌΠΈ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

private void Opred1_Click (object sender, RoutedEventArgs e) ΠΈ private void Opred2_Click (object sender, RoutedEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса опрСдСлитСля (Opr.cs) ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ подсчСта опрСдСлитСля, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π½Π° ΡΠΊΡ€Π°Π½. А ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ private void Delta_Click (object sender, RoutedEventArgs e) провСряСт Ρ€Π°Π΄ΠΈΠΎ клавиши ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡ‚ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅.

private void Min1_Click (object sender, RoutedEventArgs e) ΠΈ private void Min2_Click (object sender, RoutedEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Mab. cs, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ значСния чисСл a ΠΈ b ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΈΠ½ΠΎΡ€Π° ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ Π² ΠΏΠΎΠ»Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. А ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ private void M_Click (object sender, RoutedEventArgs e) провСряСт Ρ€Π°Π΄ΠΈΠΎ клавиши ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡ‚ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅.

private void ΠŸΠ°Ρ€ΠΎΠ»ΡŒ_KeyDown (object sender, KeyEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши Enter Π² ΠΏΠΎΠ»Π΅ ΠŸΠ°Ρ€ΠΎΠ»ΡŒ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ клавиши Π²Ρ…ΠΎΠ΄ (Button_Click (sender, e);).

private void Π›ΠΎΠ³ΠΈΠ½_KeyDown (object sender, System.Windows.Input.KeyEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши Enter Π² ΠΏΠΎΠ»Π΅ Π›ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ фокус полю ΠŸΠ°Ρ€ΠΎΠ»ΡŒ.

private void Π›ΠΎΠ³ΠΈΠ½_Initialized (object sender, EventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ фокус полю Π»ΠΎΠ³ΠΈΠ½ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

private void Kan1_Click (object sender, RoutedEventArgs e) ΠΈ private void Kan2_Click (object sender, RoutedEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса Kan. cs, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΡΠΊΡ€Π°Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. А ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ private void KV_Click (object sender, RoutedEventArgs e) провСряСт Ρ€Π°Π΄ΠΈΠΎ клавиши ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡ‚ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅.

private void R1_Click (object sender, RoutedEventArgs e) ΠΈ private void R2_Click (object sender, RoutedEventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса Kan. cs ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ€Π°Π½Π³Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ тСкстовыС Π±Π»ΠΎΠΊΠΈ. А ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ private void R_Click (object sender, RoutedEventArgs e) провСряСт Ρ€Π°Π΄ΠΈΠΎ клавиши ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡ‚ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅.

private void R_Click (object sender, RoutedEΠ±ΠΎventArgs e)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π² ΠΌΠ΅Π½ΡŽ «Π‘ΠΏΡ€Π°Π²ΠΊΠ°» клавиши Π‘ΠΏΡ€Π°Π²ΠΊΠ° запускаСт chm справку ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

3.2Класс транспонирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (AT.cs)

Класс транспонирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ содСрТит ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ (public void ATR (int ind, Cache ch)) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Π½ΡΠΏΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΈΠ· ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΉ. Данная функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ индСкс транспонируСмой ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ ch ΠΊΠ»Π°ΡΡΠ° Cache для доступа ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅.

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

3.3Класс умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ k (Axk.cs)

Класс умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ k ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ k. Данная функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ индСкс транспонируСмой ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, число k ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ ch ΠΊΠ»Π°ΡΡΠ° Cache для доступа ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅.

Для умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ k ΡΠΎΠ·Π΄Π°ΡŽΡ‚ся Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ исходной ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Π—Π°Ρ‚Π΅ΠΌ создаСтся пустая врСмСнная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, которая заполняСтся Π² Ρ†ΠΈΠΊΠ»Π΅ for ΠΏΡƒΡ‚Π΅ΠΌ умноТСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ k. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° записываСтся Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ-Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ вывСсти Π½Π° ΡΠΊΡ€Π°Π½.

3.4Класс получСния каноничСского Π²ΠΈΠ΄Π° ΠΈ Ρ€Π°Π½Π³Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Kan.cs)

Π’ Π΄Π°Π½Π½ΠΎΠΌ классС содСрТатся Π΄Π²Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

public void KV (int ind, Cache ch) — функция получСния каноничСского Π²ΠΈΠ΄Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:

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

public int Rang (int ind, Cache ch) — функция получСния Ρ€Π°Π½Π³Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:

Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π½Π³ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ функция Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ получСния каноничСского Π²ΠΈΠ΄Π° Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. И Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ пСрСчислСния каноничСской ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ опрСдСляСтся Ρ€Π°Π½Π³ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΏΡƒΡ‚Π΅ΠΌ подсчСта Π½Π΅ Π½ΡƒΠ»Π΅Π²Ρ‹Ρ… рядов.

3.5Класс чтСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈΠ· Ρ„Π°ΠΉΠ»Π° (Re.cs)

Π’ ΡΡ‚ΠΎΠΌ классС исходная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° считываСтся ΠΈΠ· Ρ„Π°ΠΉΠ»Π°. Для этого:

ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для хранСния ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ раздСлСния элСмСнтов Π² ΡΡ‚Ρ€ΠΎΠΊΠ°Ρ… ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°;

создаСтся Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ для русского тСкста (Encoding en = Encoding. GetEncoding (1251););

БоздаСтся ΠΎΠΊΠ½ΠΎ для Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ ΠΏΡƒΡ‚Π΅ΠΌ пСрСчислСния строк Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ эти строки Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ (List mas = new List ();). ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с Π·Π°ΠΏΠΈΡΡŒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ происходит запись ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ Π°Π²Ρ‚ΠΎΡ€Π° создавшСго эту ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€;

Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ лист строк читаСтся, ΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ строка разбиваСтся Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ. И ΡΡ‚Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° пСрСносится Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π½Π° ΡΠΊΡ€Π°Π½.

3.6Класс записи Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² вычислСний Π² Ρ„Π°ΠΉΠ» (WR.cs)

Ѐункция записи Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ch ΠΊΠ»Π°ΡΡΠ° Cache для доступа ΠΊ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅. БоздаСтся ΠΎΠΊΠ½ΠΎ сохранСния Π΄Π°Π½Π½Ρ‹Ρ… Π³Π΄Π΅ выбираСтся мСсто хранСния Ρ„Π°ΠΉΠ»Π°. ПослС Π²Ρ‹Π±ΠΎΡ€Π° мСста хранСния Π² Ρ„Π°ΠΉΠ» записываСтся Π°Π²Ρ‚ΠΎΡ€ ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° пСрСписанная Π² ΠΌΠ°ΡΡΠΈΠ² строк ().

3.7Класс произвСдСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (Umn.cs)

Ѐункция произвСдСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ch ΠΊΠ»Π°ΡΡΠ° Cache для доступа ΠΊ ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌΡ‹ΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌ. ΠŸΠ΅Ρ€Π΅Π΄ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ провСряСтся условиС равСнства количСства столбцов ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ строкам Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Если это условиС Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся, Ρ‚ΠΎ Π²Ρ‹Π΄Π°Π΅Ρ‚ся сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅. ПослС это ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΡƒΠΌΠ½ΠΎΠΆΠ°ΡŽΡ‚ΡΡ ΠΏΡƒΡ‚Π΅ΠΌ суммирования умноТСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов Π² ΡΡ‚Ρ€ΠΎΠΊΠ°Ρ… ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†Π°Ρ…. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° записываСтся Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π½Π° ΡΠΊΡ€Π°Π½.

3.8Класс слоТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (Plus.cs)

Ѐункция слоТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ch ΠΊΠ»Π°ΡΡΠ° Cache для доступа ΠΊ ΡΠ»Π°ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌ. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΡΠ»Π°ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡƒΡ‚Π΅ΠΌ пСрСчислСния всСх элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ записываСтся Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΡΠΊΡ€Π°Π½. Π’Π°ΠΊΠΆΠ΅ провСряСтся условиС равности Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² слаТиваСмых ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.

3.9Класс ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ (Parol.cs)

Ѐункция ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ строковыС Π΄Π°Π½Π½Ρ‹Π΅ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π»ΠΎΠ³ΠΈΠ½Π° пароля. Π­Ρ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ ΠΏΠΎ Π΄Π²ΡƒΠΌ листам Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π»ΠΎΠ³ΠΈΠ½ΠΎΠ² ΠΈ Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ся ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²Ρ…ΠΎΠ΄Π°.

3.10Класс получСния опрСдСлитСля ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Opr.cs)

Ѐункция создаСт Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° для вычислСния опрСдСлитСля Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Ѐункция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ индСкс ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Cache для доступа ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅. Π—Π°Ρ‚Π΅ΠΌ выбранная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° записываСтся Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠΈ опрСдСлитСля ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Гаусса:

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ пСрСчислСниС листа, Π° Ρ‡ΠΈΡΠ»ΠΎ k ΠΏΡ€ΠΈΡ€Π°Π²Π½ΠΈΠ²Π°Π΅ΠΌ ΠΊ Ρ‡ΠΈΡΠ»Ρƒ i;

Π§Π΅Ρ€Π΅Π· Π²Ρ‚ΠΎΡ€ΠΎΠ΅ пСрСчислСниС провСряСм, ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠ· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… чисСл Π² ΡΠΎΡΠ΅Π΄Π½ΠΈΡ… рядах большС, Ссли ΠΏΠ΅Ρ€Π²ΠΎΠ΅ — число k ΠΏΡ€ΠΈΡ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ся ΠΊ Ρ‡ΠΈΡΠ»Ρƒ j.

Если Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число мСньшС установлСнной точности ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ обнуляСтся.

ВызываСтся функция пСрСстановки строк мСстами (Swap (ref M, i, k););

ПослС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… условий ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ умноТаСтся Π½Π° ΠΌΠΈΠ½ΡƒΡ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΈΠ»ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ элСмСнт.

Π¦ΠΈΠΊΠ» повторяСтся Π΄ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ возвращаСтся Π² Π²Ρ‹Π·Π²Π°Π²ΡˆΠΈΠΉ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ.

3.11Класс получСния разности ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Minus.cs)

Ѐункция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Cache для доступа ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌ. ПослС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ равности ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΏΡƒΡ‚Π΅ΠΌ пСрСчислСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π΄Π²Π° ΠΎΡ‚Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΎΠ΄ΠΈΠ½. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ записываСтся Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π½Π° ΡΠΊΡ€Π°Π½.

3.12Класс получСния ΠΌΠΈΠ½ΠΎΡ€Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Mab.cs)

Ѐункция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ индСкс ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ вычисляСмого ΠΌΠΈΠ½ΠΎΡ€Π° ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Cache для доступа ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅. Π‘ΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½Π° врСмСнная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ строкой, ΠΈ Π²Ρ‚орая с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΌ столбцом. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΡƒΡŽΡΡ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ записываСм Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ подсчСта опрСдСлитСля Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Opr.cs. Если сумма Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² строки ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†Π° чСтная — ΠΌΠΈΠ½ΠΎΡ€ Ρ€Π°Π²Π΅Π½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŽ, Ссли нСчСтная — ΠΌΠΈΠ½ΠΎΡ€ Ρ€Π°Π²Π΅Π½ минус ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŽ. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΈΠ½ΠΎΡ€ возвращаСтся Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΅Π³ΠΎ Π²Ρ‹Π·Π²Π°Π²ΡˆΠΈΠΉ.

3.13Класс копирования Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ (Copir.cs)

Ѐункция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ индСкс ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Cache для доступа ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅. Выбранная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΏΡ€ΠΈΡ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ свои значСния ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅-Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ послС вычислСний.

3.14 Класс хранСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (Cache.cs)

Класс содСрТит ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для хранСния ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΈΡ… Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠΉ. Π’Π°ΠΊΠΆΠ΅ класс ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для записи этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° чтСния Ρ„Π°ΠΉΠ»Π° (Re.cs).

4.ОписаниС интСрфСйса

4.1Π€ΠΎΡ€ΠΌΠ° Π²Ρ…ΠΎΠ΄Π° (рис. 3)

Рис. 3. Π€ΠΎΡ€ΠΌΠ° Π²Ρ…ΠΎΠ΄Π° На Ρ„ΠΎΡ€ΠΌΠ΅ Π²Ρ…ΠΎΠ΄Π° располоТСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты:

ВСкстовый Π±Π»ΠΎΠΊ «Π›ΠΎΠ³ΠΈΠ½», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ свой Π»ΠΎΠ³ΠΈΠ½, ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ фокус ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅.

Π€ΠΎΡ€ΠΌΠ° для Π²Π²ΠΎΠ΄Π° пароля, Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π­Ρ‚Π° Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ фокус ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши Enter Π² ΠΏΠΎΠ»Π΅ «Π›ΠΎΠ³ΠΈΠ½». ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши Enter Π² ΡΡ‚ΠΎΠΌ ΠΏΠΎΠ»Π΅ вызываСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ наТатия клавиши «Π’ΠΎΠΉΡ‚ΠΈ».

Клавиша «Π’ΠΎΠΉΡ‚ΠΈ». ΠŸΡ€ΠΈ Π΅Π΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ выполняСтся Π²Ρ…ΠΎΠ΄ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ (ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…).

4.2 Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ (рис. 4)

Рис. 4. Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π΄Π°Π½Π½Ρ‹Π΅ интСрфСйс Π’ Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ располоТСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты:

Π’ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части располоТСно мСню ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, содСрТащСС мСню «Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚», «Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ» ΠΈ «Π‘ΠΏΡ€Π°Π²ΠΊΠ°»:

МСню «Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚» (рис. 5) содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты: «ΠΠΎΠ²Ρ‹ΠΉ» — ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ; «ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ» — позволяСт ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΈΠ»ΠΈ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Π°ΠΆΠ΅Π½ порядок ΠΌΠ°Ρ‚Ρ€ΠΈΡ†; «Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ…» — позволяСт ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ мСста хранСния ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Ρ„Π°ΠΉΠ»Π°; «Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ» — Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ вычислСния; «Π’Ρ‹Ρ…ΠΎΠ΄» — Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

МСню «Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ» (рис. 6) содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты: ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†: «Π’Ρ€Π°Π½ΡΠΏΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ» — ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ транспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹; «Π£ΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ k» — ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ k; «ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ» — вычислСниС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹; «ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ» — вычислСниС опрСдСлитСля ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹; «ΠœΠΈΠ½ΠΎΡ€» — вычислСниС ΠΌΠΈΠ½ΠΎΡ€Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΏΠΎ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ числам a ΠΈ b; «Π Π°Π½Π³» — подсчСт Ρ€Π°Π½Π³Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹; «ΠšΠ°Π½ΠΎΠ½ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Π²ΠΈΠ΄» — ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ каноничСского Π²ΠΈΠ΄Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹; «ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°» — Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вычислСний.

А Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΌΠ΅Π½ΡŽ «Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ» ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты ΠΊΠ°ΠΊ «Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅» — слоТСниС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†, «Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅» — Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠΉ, «ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅» — ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° Π²Ρ‚ΠΎΡ€ΡƒΡŽ, «Π§Π°ΡΡ‚Π½ΠΎΠ΅» — Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° Π²Ρ‚ΠΎΡ€ΡƒΡŽ.

МСню «Π‘ΠΏΡ€Π°Π²ΠΊΠ°» (рис. 7) содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты: «Πž ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅» — Π²Ρ‹Π·ΠΎΠ² ΠΎΠΊΠ½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ (рис. 8); «Π‘ΠΏΡ€Π°Π²ΠΊΠ°» — Π²Ρ‹Π·ΠΎΠ² справки ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ (рис. 9).

Рис. 5. МСню «Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚»

Рис. 6. МСню «Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ»

Рис. 7. МСню «Π‘ΠΏΡ€Π°Π²ΠΊΠ°»

Рис. 8. О ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Рис. 9. Π‘ΠΏΡ€Π°Π²ΠΊΠ° ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ НиТС располоТСна панСль Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (рис. 10), которая ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ повторяСт мСню «Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ» плюс Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ примСняСтся дСйствиС ΠΈ ΠΏΠΎΠ»Ρ для Π²Π²ΠΎΠ΄Π° чисСл a, b, k. Вся панСль Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ прСдставлСна Π² Π³Ρ€Π°Ρ„ичСском Π²ΠΈΠ΄Π΅.

Рис. 10. ПанСль Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π’ ΡΡ€Π΅Π΄Π½Π΅ΠΉ части располоТСны Π±Π»ΠΎΠΊΠΈ отобраТСния исходных ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.

Π’ Π½ΠΈΠΆΠ½Π΅ΠΉ части располоТСны поля «Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚» Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выводятся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ подсчСта опрСдСлитСля, ΠΌΠΈΠ½ΠΎΡ€Π° ΠΈ Ρ€Π°Π½Π³Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

5. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выполнСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (рис. 11);

Рис. 11. ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π”Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (рис. 12);

ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° плюс ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ (рис. 13) ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Рис. 12. Π”Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Рис. 13. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ плюс обратная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»Π° создана ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° названная «ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° 1.0» — Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ. Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° плюс авторство Ρ„Π°ΠΉΠ»Π°. ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊΠ°ΠΊ транспонированиС, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ k, подсчСт ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ, ΠΌΠΈΠ½ΠΎΡ€, Ρ€Π°Π½Π³, каноничСский Π²ΠΈΠ΄, ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, слоТСниС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ Ρ‡Π°ΡΡ‚Π½ΠΎΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†. Π’Π°ΠΊΠΆΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ содСрТится ΠΎΠΊΠ½ΠΎ «Πž ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅» ΠΈ ΡΠΏΡ€Π°Π²ΠΊΠ° ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π‘Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„ункциями, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, массивами. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ содСрТит Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ Ρ„ΠΎΡ€ΠΌ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Windows Presentation Foundation. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° отличаСтся простотой интСрфСйса, ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятным мСню ΠΈ Π»Ρ‘Π³ΠΊΠΎΡΡ‚ΡŒΡŽ управлСния.

1.C#: ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ курс. Π“Π΅Ρ€Π±Π΅Ρ€Ρ‚ Π¨ΠΈΠ»Π΄Ρ‚. — Π‘Пб.: ΠŸΠΈΡ‚Π΅Ρ€; К.: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ Π³Ρ€ΡƒΠΏΠΏΠ° BHV, 2011. — 512с.

2.ΠœΡΡ‚ΡŒΡŽ Мак-Π”ΠΎΠ½Π°Π»ΡŒΠ΄ WPF: Windows Presentation Foundation Π² .NET 4.0 с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Π½Π° C# 2010 для профСссионалов = Pro WPF in C# 2010: Windows Presentation Foundation with .NET 4.0. — Πœ.: «Π’ΠΈΠ»ΡŒΡΠΌΡ», 2011. — Π‘. 1024.

3.Π‘# 2008: ускорСнный курс для профСссионалов. Π’Ρ€Π΅ΠΉ НСш. — ΠžΠžΠž «Π˜Π” Π’ΠΈΠ»ΡŒΡΠΌΡ», 2008. — 576с.

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