β ΠΡΠ½ΠΎΠ²Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΊΠΎΠ΄Π°ΠΌΠΈ Π² ΡΡΠ΅Π΄Π΅ .NET Compact Framework
An Introduction to P/Invoke and Marshalling on the Microsoft .NET Compact Framework
ΠΠ²ΡΠΎΡΡ: Jon Box, Dan Fox; Quilogy
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetcomp/html/netcfintrointerp.asp
β Π’ΠΎΠ½ΠΊΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΊΠΎΠ΄Π°ΠΌΠΈ Π² ΡΡΠ΅Π΄Π΅ .NET Compact Framework
Advanced P/Invoke on the Microsoft .NET Compact Framework
ΠΠ²ΡΠΎΡΡ: Jon Box, Dan Fox; Quilogy
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetcomp/html/netcfadvinterop.asp
β ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ .NET Compact Framework
Asynchronous Callbacks from Native Win32 Code ΠΠ²ΡΠΎΡ: Maarten Struys; PTS Software
http://msdn.microsoft.corn/library/default.asp?url=/library/en-us/dnnetcomp/html/AsynchCallbacks.asp
Π Π°Π±ΠΎΡΠ° Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΠ΅ΡΠ΅ΠΉ
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Microsoft ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΠΎ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°Ρ , ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΠ΅ΡΠ΅ΠΉ.
β Π‘ΠΎΠΊΡΠ°ΡΠ΅Π½Π½Π°Ρ ΡΡΡΠ»ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΡΠ΅Ρ Π²Π°Ρ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π΄Π°Π»Π΅Π΅:
Π‘ΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΉ URL-Π°Π΄ΡΠ΅Ρ Mobile2Market
http://www.mobile2market.com
β Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΎΡ Mobile2Market ΠΈ ΠΌΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³ΠΎΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
http://msdn.microsoft.com/mobility/windowsmobile/partners/mobile2market/default.aspx
β Π‘ΠΏΠΈΡΠΎΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΠ΅ΡΠ΅ΠΉ, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌ ΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
http://msdn.microsoft.com/mobility/windowsmobile/partners/mobile2market/smartphoneapps/default.aspx
Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ, ΠΈ ΡΠΎ, ΠΊΠ°ΠΊΡΡ ΠΈΠ· Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΈΠΏΠ° ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π²ΠΈΠ΄Π° ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΊΠΎΠ΄Π°ΠΌΠΈ, Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΠ·ΡΡΠ°ΡΡ ΡΠΎ, ΡΡΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ .
ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ .NET Compact Framework Ρ ΠΎΡΠΎΡΠΎ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΡ MSDN, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Visual Studio .NET. Π‘ Π½Π΅ΠΏΠ»ΠΎΡ ΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ±ΡΠ°Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ: Visual Studio .NETβDeveloping with Visual Studio .NETβDesigning Distributed ApplicationsβDeveloping for DevicesβSamples and WalkthroughsβSmart Device WalkthroughsβGenerating Custom CAB Files for Device Projects (Visual Studio .NETβΠ Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Visual Studio .NETβΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉβΠ Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ²βΠΡΠΈΠΌΠ΅ΡΡ ΠΈ Π°Π½Π°Π»ΠΈΠ·βΠΠ½Π°Π»ΠΈΠ· ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²βΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ CAB-ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°).
β ΠΠΎΡΠ°Π³ΠΎΠ²ΡΠΉ ΡΠ°Π·Π±ΠΎΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Pocket PC
Developing and Deploying Pocket PC Setup Applications
ΠΠ²ΡΠΎΡ: Ralph Arvesen; Vertigo Software, Inc.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetcomp/html/netcfdeployment.asp
β ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ .NET Compact Framework Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ Π½Π° ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π²Π°ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ
Creating an MSI Package That Detects and Updates the .NET Compact Framework
ΠΠ²ΡΠΎΡ: Stan Adermann; Microsoft Corporation
http://msdn.microsoft.com/library/default.asp?url=/library/ en-us/dnnetcomp/html/netcfdepl.asp
ΠΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΎΠ½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»ΠΈ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΎΠ½Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² Π΄Π»Ρ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΡΠ°ΡΡΠΈΡΠΈΠ»ΠΈ ΡΠ²ΠΎΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ½Π΅ Π²ΡΡΠΊΠΎΠ³ΠΎ ΡΠΎΠΌΠ½Π΅Π½ΠΈΡ, Π²Π°ΠΌ ΡΡΠΎΠΈΡ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ InstallShield Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²,
http://www.installshield.com
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. Π― ΡΠΊΠ°Π·Π°Π» Π·Π΄Π΅ΡΡ InstallShield, ΡΡΠΈΡΡΠ²Π°Ρ ΡΠΈΡΠΎΠΊΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎ, Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, Π²Π°ΠΌ ΡΡΠΎΠΈΡ ΠΏΠΎΡΠ΅ΡΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Web-ΡΠ°ΠΉΡΡ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΊΠ°ΠΊΠΈΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
Π ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ ΡΡΠ°ΡΡΠ΅ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠΎΠ²Π΅ΡΡ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ .NET Compact Framework, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠ° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠΎΡ ΡΠ°Π½ΡΡΡ "Π΄ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ" Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
β Developing Well-Performing .NET Compact Framework Applications
ΠΠ²ΡΠΎΡΡ: Dan Fox, Jon Box; Quilogy
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetcomp/html/netcfperf.asp
ΠΠ ΠΠΠΠΠΠΠΠ Π
ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° ΡΠ·ΡΠΊΠ΅ Visual Basic .NET
ΠΠΎΡΠ΅ΠΌΡ ΠΈΠΌΠ΅Π½Π½ΠΎ VB.NET ΠΈ Π‘#?
Π‘ΠΏΠΎΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° ΡΠ·ΡΠΊΠ°Ρ VB.NET ΠΈ Π‘# Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ, ΠΈ ΡΡΠΎ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ! ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»ΡΠΌ ΠΎΠ±ΠΎΠΈΡ Π»Π°Π³Π΅ΡΠ΅ΠΉ Π΅ΡΡΡ ΡΠ΅ΠΌΡ ΠΏΠΎΡΡΠΈΡΡΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³Π°. Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΌΠ΅Π½Ρ, ΡΠΎ, ΠΏΠΎΡΠ°Π±ΠΎΡΠ°Π² Ρ ΠΎΠ±ΠΎΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ Π»Π΅Ρ, ΠΈ Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΈΠΌΠ΅Ρ ΠΎΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Π² ΡΠΎΡΡΠ°Π²Π΅ Π³ΡΡΠΏΠΏΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π° Visual Basic, ΠΌΠΎΠ³Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡΠΌΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΡΠ±ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ β Π²ΡΠ΅ Π΄Π΅Π»ΠΎ Π² Π°ΠΊΡΠ΅Π½ΡΠ°Ρ . Π― ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ Visual Basic .NET Ρ Π΅Π³ΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌ Π΄Π»Ρ Visual Basic Π°ΠΊΡΠ΅Π½ΡΠΎΠΌ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½ΠΎ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π»Π΅Π½ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ Π‘# ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π³ΠΎ ΡΡΡΠΎΠ³ΠΎΡΡΡ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π»Π΅Π½Π½ΡΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΡΠΊΠ°ΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎ Π²ΡΠ΅ΠΉ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΠΎΠ±Π° ΡΠ·ΡΠΊΠ° Π² ΡΠ°Π²Π½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Ρ ΠΎΡΠΎΡΠΎ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π»Π΅Π½Ρ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΎΠ±ΡΠΈΡΠ½ΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ±Π° ΡΠ·ΡΠΊΠ° ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΎΠΏΡΠΈΠΈ, ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ±Π»ΠΈΠΆΠ°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ . Π’Π°ΠΊ, Π² Visual Basic .NET ΠΈΠΌΠ΅Π΅ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Option Strict On, ΠΊΠΎΡΠΎΡΡΡ Ρ Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ Π² Π½Π°ΡΠ°Π»Π΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ΅ΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ Π²ΡΠ»Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²ΠΈΠ΄Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ, ΠΎΠ±Π° ΡΠ·ΡΠΊΠ° ΡΡΠ°ΡΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³Π°, Π·Π°ΠΈΠΌΡΡΠ²ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Ρ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π½Π΅ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅, ΡΡΠΎ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ Π±ΡΠ»ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π² Π΄ΡΡΠ³ΠΎΠΌ ΡΠ·ΡΠΊΠ΅; ΡΡΠΎ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅Ρ Ρ ΠΎΡΠΎΡΠΈΠΉ Π΄ΡΡ ΡΠΎΠΏΠ΅ΡΠ½ΠΈΡΠ΅ΡΡΠ²Π° ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΡ ΡΠ·ΡΠΊΠ°ΠΌΠΈ.
Π Visual Basic .NET ΠΌΠ½Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½ΡΠ°Π²ΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ; ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° AddHandler ΠΈ Handles (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Π°Ρ ) Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»Π΅Π³Π°Π½ΡΠ½Ρ ΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½Ρ, ΡΠ΅ΠΌ ΠΈΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² Π‘#. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ²ΡΡΠ½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ» Π² Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ VB.NET-Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Ρ Π»ΠΈΡΡΠΈΠ½Π³ΠΎΠ², ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΊΠ½ΠΈΠ³ΠΈ.
ΠΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΈΡΡΠΈΠ½Π³ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅, Π»ΠΈΠ±ΠΎ Π² ΡΠΈΠ»Ρ ΠΌΠ°Π»ΠΎΡΡΠΈ ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°, Π»ΠΈΠ±ΠΎ Π² ΡΠΈΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ½ΡΡΠ½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΌ Π»ΡΠ±ΠΎΠΌΡ Π»Π°Π³Π΅ΡΡ, Π°Π²ΡΠΎΡ ΡΡΠ΅Π» ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ, ΡΡΠΎΠ±Ρ ΡΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΈΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ. ΠΠ΅Π·Π΄Π΅, Π³Π΄Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎΠ±Π»ΡΠ΄Π°Π΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π·Π°ΠΏΠΈΡΠΈ ΠΊΠΎΠ΄Π°, ΠΏΡΠΈΠ½ΡΡΠ°Ρ Π² Visual Basic, Π² ΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΏΡΡΠΌΠΎΠΉ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠ·ΡΠΊΠ΅ C#, Π° ΡΠΊΠΎΡΠ΅Π΅ Π΅Π³ΠΎ "VB-Π²Π΅ΡΡΠΈΠ΅ΠΉ"; Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΎΠ±Π° Π²ΠΈΠ΄Π° ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ, ΠΈ ΡΠ΅ΠΌ, Π΄Π»Ρ ΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ·ΡΠΊΠΎΠ² Visual Basic ΠΈ C#, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ Π΄Π»Ρ ΡΠ΅Π±Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ Π²ΡΠ±ΡΠ°ΡΡ, ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½Π΅ ΡΠΎΡΡΠ°Π²ΠΈΡ ΡΡΡΠ΄Π°. Π£Π΄Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ!
ΠΡΠΈΠΌΠ΅ΡΡ ΠΊ Π³Π»Π°Π²Π΅ 5 (ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΡ)
Option Explicit On
Class MyStateMachineClass
Private Enum GameState
StartScreen
AskQuestion
CongratulateUser
ScoldUser
End Enum
Private m_CurrentGameStateAs GameState
'---------------------------------------------------------------------
'ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ, Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠΉ Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ
'ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ
'ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠ΅ΠΆΠΈΠΌΠΎΠΌ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
'---------------------------------------------------------------------
Private Sub StateChangeForGame(ByVal newGameUIState _
As GameState)
'ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π² ΠΊΠ°ΠΊΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Select Case (newGameUIState)
Case GameState.StartScreen
'ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π² Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ,
'Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠΎ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ, Π²ΠΎΠ·Π±ΡΠ΄ΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
If ((m_CurrentGameState <> GameState.CongratulateUser) _
AndAlso (m_CurrentGameState <> GameState.ScoldUser)) Then
Throw New System.Exception("ΠΠ°ΠΏΡΠ΅ΡΡΠ½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ!")
End If
'Π§Π’Π Π‘ΠΠΠΠΠ’Π¬: ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΡΠ΄Π° ΠΊΠΎΠ΄, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
' 1. Π‘ΠΊΡΡΡΠΈΠ΅ (Hide), ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (Show) ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ (Move)
' ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°