ΠΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΡΡΡ Ρ#
Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°ΠΊΡΠ΅ΡΡΠΎΡΠ° set ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° «Π·Π°Π³Π»ΡΡΠΊΠ°». Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° add (U a, U Π¬) Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ Π΅Ρ-ΠΊΠΎΠ΄ΠΎΠ² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ ToStringO ΠΈ GetHashCodeQ ΠΏΡΠΈΡΡΡΠΈ Π²ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ ΡΠ·ΡΠΊΠ° Π‘#, ΡΠΎ Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΡΡΡ Ρ# (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ ΡΠ»Π΅Π½Π°ΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΠ²ΠΎΠΉΡΡΠ², ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡΠΎΠ², ΡΠΎΠ±ΡΡΠΈΠΉ. Π ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΡΠΈΠΏΠΈΠ·ΠΈΡΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΈΠΏΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠ»Π΅Π½ΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΡΡΡΡΠΊΡΡΡ, ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΠΏΠΈΠ·ΠΈΡΡΡΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² Π΅Π³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ. Π’ΠΈΠΏΠΈΠ·ΠΈΡΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ — ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΡΡΠΌΠΈ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ Π² ΡΠ³Π»ΠΎΠ²ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ. ΠΡΠΈΠΌΠ΅Ρ:
public interface IExample.
{ // ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
char this[T index] {get; set;} // ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡΠ° int add (T x, T Ρ); // ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΠΌΠ΅ΡΠΎΠ΄Π°
}
Π ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ IExample ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΏΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΠ½ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΡΠΈΠΏ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡΠ°, Π° Π΄Π»Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ° ΠΌΠ΅ΡΠΎΠ΄Π° — ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΠΏΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
ΠΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌ, ΡΠ°ΠΊ ΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΌ ΡΠΈΠΏΠΎΠΌ. ΠΡΠΈΠΌΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ:
// ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ class real: IExample.
{.
public char this[U r].
{.
get {return r. ToString ()[0]; }.
set{}.
}
public int add (U a, U b).
{return a. GetHashCode () + b. GetHashCode ();}.
}
Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°ΠΊΡΠ΅ΡΡΠΎΡΠ° set ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° «Π·Π°Π³Π»ΡΡΠΊΠ°». Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° add (U a, U Π¬) Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ Π΅Ρ-ΠΊΠΎΠ΄ΠΎΠ² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ ToStringO ΠΈ GetHashCodeQ ΠΏΡΠΈΡΡΡΠΈ Π²ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ ΡΠ·ΡΠΊΠ° Π‘#, ΡΠΎ Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΈΠΏΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ.
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° real ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
class Program.
{
static void MainQ.
{
var tempi = new real ();
var temp2 = new real ();
Console.WriteLine (templ[655]);
Console.WriteLine (tempi.add (950, 6));
Console.WriteLine (temp2[155]);
Console.WriteLine (temp2.add (34, 6));
} }
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: Π±.
- 956
- 1
- 40
Π Π΅Π³ΡΠ»ΡΡΠ½ΡΠΉ ΡΠΈΠΏ (ΠΊΠ»Π°ΡΡ ΠΈΠ»ΠΈ ΡΡΡΡΠΊΡΡΡΠ°) ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ±ΡΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Ρ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ ΡΠ»Π΅Π½ΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²:
struct Realization: IExample, IExample.
{
public char this[string st].
{ get { return } set { } }.
public int add (string si, string s2).
{ return -135; }.
public char this[double d].
{ get { return (char)d; } set { } } public int add (double dl, double d2).
{ return (int)(dl — d2); }.
}
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° struct Realization ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π΄Π²Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° IExample. ΠΡΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΡΡΡΠΊΡΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ add () ΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡΡ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΡΡΠΊΡΡΡΡ Realization ΠΈ Π΄Π»Ρ Π½Π΅Π³ΠΎ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ add () ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡ.
static void Main ().
{
Realization exemplar = new Realization ();
Console.WriteLine (exemplar.add (5.6, 3.3));
Console.WriteLine (exemplar.add («123», «abc»));
Console.WriteLine (exemplar[5.6]);
Console.WriteLine (exemplar[" screb" ]);
}
Π ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
- 2
- -135
#.
ΠΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌ ΡΠΈΠΏΠΎΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΠ»ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΡΡΡΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π² ΡΡΠΎΠΌ ΡΠΈΠΏΠ΅.
ΠΡΠΈΠΌΠ΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ:
public class Example: IExample, IExample.
Π ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΈΠΏ (ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ) IExample ΠΈ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IExample Ρ ΡΠΈΠΏΠΈΠ·ΠΈΡΡΡΡΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π. ΠΡΠ»ΠΈ ΠΏΡΠΈ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° Example Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»Π΅Π½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ char, Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π΄Π²Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.