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

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ классов

Лабораторная Ρ€Π°Π±ΠΎΡ‚Π°ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

B=new float; //динамичСскоС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти для массива b. A=new int; //динамичСскоС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти для массива a. Na ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов Π² Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½ΠΎΠΌ массивС a. Cout << «Π‘Ρ€Π΅Π΄Π½Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ «<< numbers. average_value () << endl; Cout << «Π‘Ρ€Π΅Π΄Π½Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ «<< values. average_value () << endl; Nb ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов Π² Π²Π΅Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠΌ массивС b. A ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ цСлочислСнного… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

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

Π€Π˜ΠΠΠΠ‘ΠžΠ’Π«Π™ Π£ΠΠ˜Π’Π•Π Π‘Π˜Π’ ПРИ ΠŸΠ ΠΠ’Π˜Π’Π•Π›Π¬Π‘Π’Π’Π• Π Π€ ΠšΠ°Ρ„Π΅Π΄Ρ€Π° ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π² ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠ΅

Π›ΠΠ‘ΠžΠ ΠΠ’ΠžΠ ΠΠΠ― Π ΠΠ‘ΠžΠ’Π

ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅: «Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅» Π½Π° Ρ‚Π΅ΠΌΡƒ:

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ²

Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚ Π“. Π . АвтандСлян ΠŸΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ Π›. К. ΠšΡƒΠ·Π½Π΅Ρ†ΠΎΠ² ΠœΠžΠ‘ΠšΠ’Π

ЦСль Ρ€Π°Π±ΠΎΡ‚Ρ‹

ЦСль Ρ€Π°Π±ΠΎΡ‚Ρ‹: ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ прСдставлСниС ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡˆΠ°Π±Π»ΠΎΠ½Π°ΠΌΠΈ Π² Π‘++.

ΠžΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ:

Π¨ Ρ ΠΏΠΎΠ½ΡΡ‚ΠΈΠ΅ΠΌ шаблона Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ;

Π¨ Ρ ΠΏΠΎΠ½ΡΡ‚ΠΈΠ΅ΠΌ шаблона класса;

Π¨ Ρ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ описания шаблонов Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++.

Π˜Π·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ создания ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ шаблонов классов.

ΠΠ°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π² ΡΡ€Π΅Π΄Π΅ программирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, содСрТащиС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ классов.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ практичСскиС Π½Π°Π²Ρ‹ΠΊΠΈ создания шаблонов ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π‘++.

Π—Π°Π΄Π°Π½ΠΈΠ΅ 1

1.1 Π—Π°Π΄Π°Π½ΠΈΠ΅ Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ шаблон Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ square, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅ΠΉ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ работоспособности шаблона Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ функция вызываСтся для Π΄Π°Π½Π½Ρ‹Ρ… Ρ†Π΅Π»ΠΎΠ³ΠΎ, вСщСствСнного ΠΈ Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

1.2 Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

#include

using namespace std;

template

T square (T x)

{return x * x;}

int main ()

{

int i1;

double d1;

long int l1;

cout<<" Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ†Π΅Π»ΠΎΠ΅ число i1 «;

cin>>i1;

cout<<" ΠšΠ²Π°Π΄Ρ€Π°Ρ‚ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа i1 = «<<< endl;

cout<<" Π’Π²Π΅Π΄ΠΈΡ‚Π΅ вСщСствСнноС число d1 «;

cin>>d1;

cout<<" ΠšΠ²Π°Π΄Ρ€Π°Ρ‚ вСщСствСнного числа d1 = «<<< endl;

cout<<" Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число l1 «;

cin>>l1;

cout<<" ΠšΠ²Π°Π΄Ρ€Π°Ρ‚ Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа l1 = «<<< endl;

system («pause»);

return 0;

}

1.3 ВСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

1.4 Π¨Π°Π±Π»ΠΎΠ½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для поиска минимального элСмСнта массива

Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

#include

#include

#include

#include

#include

template

T min (T *a, const int size)

{

T m = a[0];

for (int i = 1; i < size; ++i)

if (a[i] < m)

m = a[i];

return m;

}

int main ()

{

srand (time (NULL)); //Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°

int i, na, nb, mina,*a;

// na ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов Π² Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½ΠΎΠΌ массивС a

// nb ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов Π² Π²Π΅Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠΌ массивС b

// mina ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт массива a

//*a ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ цСлочислСнного массива a

float minb, *b;

//minb ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт массива b

//*b ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ вСщСствСнного массива b

// Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ исходных массивов

cout << «Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство элСмСнтов массива a: «; cin >> na;

a=new int[na]; //динамичСскоС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти для массива a

cout <<" Π‘Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ «<<<» элСмСнта (ΠΎΠ²) массива a: «<< endl;

for (i=0;i

{

//Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π‘Π§ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ -100 Π΄ΠΎ 100

a[i]=rand ()%201−100; //Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π‘Π§ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ -100 Π΄ΠΎ 100

cout << a[i]<<" «;

}

cout << «nΠ’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство элСмСнтов массива b: «; cin >> nb;

b=new float[nb]; //динамичСскоС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти для массива b

cout <<" Π‘Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ «<<<» элСмСнта (ΠΎΠ²) массива b: «<< endl;

for (i=0;i

{

//Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π‘Π§ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ -100.0 Π΄ΠΎ 100.0

b[i]=201.0*rand ()/RAND_MAX-100.0;

cout << b[i]<<" «;

}

mina= min (a, na);

cout <<" nΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт массива a: «<<< endl;

minb= min (b, nb);

cout <<" ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт массива b: «<<< endl;

system («pause»);

delete []a; // освобоТдСниС динамичСской памяти

delete []b;// освобоТдСниС динамичСской памяти

return 0;

}

1.5 ВСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π—Π°Π΄Π°Π½ΠΈΠ΅ 2

2.1 Π—Π°Π΄Π°Π½ΠΈΠ΅

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ шаблон класса массива, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для вычислСния суммы ΠΈ ΡΡ€Π΅Π΄Π½Π΅Π³ΠΎ значСния Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ чисСл.

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ работоспособности шаблона класса Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ шаблон класса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π΄Π°Π½Π½Ρ‹Ρ… Ρ†Π΅Π»ΠΎΠ³ΠΎ ΠΈ Π²Π΅Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ³ΠΎ массивов.

Π”Π°Π½Π½Ρ‹Π΅ для массивов ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° случайных чисСл.

2.2 Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ шаблон функция класс

#include

#include

#include

#include

#include

template

class array

{

public:

array (int size);

T1 sum (void);

T average_value (void);

void show_array (void);

int add_value (T);

private:

T *data;

int size;

int index;

};

template

array:array (int size)

{

data = new T[size];

if (data == NULL)

{

cerr << «ΠΠ΅Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎ памяти — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ» << endl;

exit (1);

}

array:size = size;

array:index = 0;

}

template

T1 array: sum (void)

{

T1 sum = 0;

for (int i = 0; i < index; i++) sum += data[i];

return (sum);

}

template

T array: average_value (void)

{

T1 sum =0;

for (int i = 0; i < index; i++) sum += data[i];

return (sum /index);

}

template

void array: show_array (void)

{

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

cout << data[i] << ««;

cout << endl;

}

template

int array: add_value (T value)

{

if (index == size)

return (-1); // Массив полон

else

{

data[index] = value;

index++;

return (0); // УспСшно

}

}

int main ()

{

srand (time (NULL)); //Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°

// Массив ΠΈΠ· 100 элСмСнтов

array numbers (100);

// Массив ΠΈΠ· 200 элСмСнтов

array values (200);

int i, m;

float a;

//ЦСлочислСнный массив

cout << «Π¦Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹ΠΉ массив 50 элСмСнтов» << endl;

for (i = 0; i < 50; i++)

{m=rand ()%201−100; //Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π‘Π§ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ -100 Π΄ΠΎ 100

numbers.add_value (m);

}

numbers.show_array ();

cout << «Π‘ΡƒΠΌΠΌΠ° чисСл Ρ€Π°Π²Π½Π° «<< numbers. sum () << endl;

cout << «Π‘Ρ€Π΅Π΄Π½Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ «<< numbers. average_value () << endl;

//ВСщСствСнный массив

cout << «Π’СщСствСнный массив 100 элСмСнтов» << endl;

for (i = 0; i < 100; i++)

{a=201.0*rand ()/RAND_MAX-100.0; //Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π‘Π§ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ -100.0 Π΄ΠΎ 100.0

values.add_value (a);

}

values.show_array ();

cout << «Π‘ΡƒΠΌΠΌΠ° чисСл Ρ€Π°Π²Π½Π° «<< values. sum () << endl;

cout << «Π‘Ρ€Π΅Π΄Π½Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ «<< values. average_value () << endl;

system («pause»);

return 0;

}

2.3 ВСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π’Π°ΠΌ срСдства языка C++, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ программисту для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ².

Π’ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния этой ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚ Π’Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ возмоТностями языка Π‘++ ΠΈ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ для сСбя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++.

Π§Π΅ΠΌ Π°ΠΊΡ‚ΠΈΠ²Π½Π΅Π΅ Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΎΠ²Π»Π°Π΄Π΅Π²Π°Ρ‚ΡŒ возмоТностями систСмы программирования Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΈΠΌ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ для Вас Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ всСго Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌΠ°.

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