Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»Π° Π»ΠΎΠ³ΠΈΡΡΠΈΠΊΠΈ Π½Π°Π±ΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΡΠ°ΠΌΠΈ
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ 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++)
{