Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «Освой ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π‘++ Π·Π° 21 дСнь.Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 166

Автор ДТСсс Π›ΠΈΠ±Π΅Ρ€Ρ‚ΠΈ

6. ΠšΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²Ρ€Π°ΡˆΠ°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π²ΠΎΠ΄Π°?

Бсылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ istream.

7. ΠšΠ°ΠΊΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ принимаСтся конструктором ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ofstream?

Имя ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

8. Π§Ρ‚оустанавливаСтаргумСнт ios::ate?

АргумСнт ios::ate ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Π²ΠΎΠ΄Π° Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² любом мСстС Ρ„Π°ΠΉΠ»Π°.

 Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΡ

 1. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΡƒΡŽ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ стандартных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса iostream β€” cin, cout, cerr ΠΈ clog.

1: #include <iostream.h>

2: int main()

3: {

4:    int x;

5:    cout << "Enter Π° nurober; ";

6:    cin >> x;

7:    cout << "You entered: " << x << endl;

8:    cerr << "Uh oh, this to cerr!" << endl;

9:    clog << "Ouh oh, this to clog!" << endl;

10:   return 0;

11: }

2. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ввСсти своС ΠΏΠΎΠ»Π½ΠΎΠ΅ имя с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ этого ΠΈΠΌΠ΅Π½ΠΈ Π½Π° экран.

1: #include <iostream.h>

2: int main()

3: {

4:    char name[80];

5:    cout << "Enter your full name: ";

6:    cin.getline(name,80);

7:    cout << "\nYou entered: " << name << endl;

8:    return 0;

9: }

3. ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡˆΠΈΡ‚Π΅ листинг 16.9, ΠΎΡ‚ΠΊΠ°Π·Π°Π²ΡˆΠΈΡΡŒ ΠΎΡ‚ использования ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² putback() ΠΈ ignore().

1: // Листинг 16.9. Π˜Π·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ

2: #include <iostream.h>

3:

4: int main()

5: {

6:    char ch;

7:    cout << "enter Π° phrase: ";

8:    while ( cin.get(ch) );

9:    {

10:      switch (ch)

11:      {

12:         case '!':

13:            cout << '$';

14:            break:

15:         case '#':

16:            break;

17:         default:

18:            cout << ch;

19:            break;

20:      }

21:   }

22:   return 0;

23: }

4. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ имя Ρ„Π°ΠΉΠ»Π° Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ Ρ„Π°ΠΉΠ» для чтСния. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π°Π½Π°Π»ΠΈΠ·Π° всСх символов, хранящихся Π² Ρ„Π°ΠΉΠ»Π΅, ΠΈ Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Π½Π° экран Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкстовыС символы ΠΈ Π·Π½Π°ΠΊΠΈ прСпинания (пропускайтС всС Π½Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌΡ‹Π΅ символы). Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

1: #include <fstream.h>

2: enum BOOL { FALSE, TRUE };

3:

4: int main(int argc, char**argv) // Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 1 Π² случаС ошибки

5: {

6:

7:    if (argc != 2)

8:    {

9:       cout << "Usage: argv[0] <infile>\n";

10:      return(1);

11:   }

12:

13:   // ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎΡ‚ΠΎΠΊ Π²Π²ΠΎΠ΄Π°

14:   ifstream fin (argv[1],ios::binary);

15:   if (!fin)

16:   {

17:      cout << "Unable to open " << argv[1] << " for reading.\n";

18:      return(1);

19:   }

20:

21:   char ch;

22:   while ( fin.get(ch))

23:      if ((ch > 32 && ch < 127) || ch == '\n' || ch = '\t')

24:         cout << ch;

25:   fin.close();

26: }

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ„Π°ΠΌΠΌΡƒ, которая Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС, отбросив имя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

1: #include <fstream.h>

2:

3: int main(int argc, char**argv) // Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 1 Π² случаС ошибки

4: {

5:    for (int ctr = argc-1; ctr ; ctr--)

6:       cout << argv[ctr] << " ";

7:    return 0;

8: }

Π”Π΅Π½ΡŒ 17

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ вопросы 

 1. ΠœΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π² пространствС ΠΈΠΌΠ΅Π½, Π±Π΅Π· примСнСния ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова using?

Π”Π°, ΠΈΠΌΠ΅Π½Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² пространствС ΠΈΠΌΠ΅Π½, ΠΌΠΎΠΆΠ½ΠΎ свободно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Ссли ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ пространства ΠΈΠΌΠ΅Π½.

2. ΠΠ°Π·ΠΎΠ²ΠΈΡ‚Π΅ основныС отличия ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ пространствами ΠΈΠΌΠ΅Π½.

НСимСнованныС пространства ΠΈΠΌΠ΅Π½ компилятор рассматриваСт Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΊ Π½ΠΈΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±Ρ‹Π» ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ using. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈΠΌΠ΅Π½Π° Π² Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° пространства ΠΈΠΌΠ΅Π½. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ доступными ΠΈΠΌΠ΅Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… пространств ΠΈΠΌΠ΅Π½, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½ΠΈΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° пространства ΠΈΠΌΠ΅Π½, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ using ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово using Π² объявлСнии пространства ΠΈΠΌΠ΅Π½.

ИмСна, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ пространствС ΠΈΠΌΠ΅Π½, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½Π΅ модуля трансляции, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ объявлСно Π΄Π°Π½Π½ΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½. ИмСна, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΌ пространствС ΠΈΠΌΠ΅Π½, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚ΠΎΠ³ΠΎ модуля трансляции, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ объявлСно Π΄Π°Π½Π½ΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½.

3. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ стандартноС пространство ΠΈΠΌΠ΅Π½ std?

Π”Π°Π½Π½ΠΎΠ΅ пространство ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ C++ (C++ Standard Library) ΠΈ содСрТит объявлСния всСх классов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

 Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΡ

1. Π–ΡƒΡ‡ΠΊΠΈ: Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅:

#include <iostream>

int main()

{

   cout << "Hello world!" << endl;

   return 0;

}

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° C++ iostream ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ cout ΠΈ endl Π² пространствС ΠΈΠΌΠ΅Π½ std. Π˜Ρ… нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½Π΅ стандартного пространства ΠΈΠΌΠ΅Π½ std Π±Π΅Π· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.

2. ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅ Ρ‚Ρ€ΠΈ способа устранСния ошибки, Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΉ Π² ΠΊΠΎΠ΄Π΅ упраТнСния 1.

β€’ using namespace std;

β€’ using std::cout;

  using std::endl;

β€’ std::cout << "Hello world!" << std::endl;

Π”Π΅Π½ΡŒ 18

 ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ вопросы

1. ΠšΠ°ΠΊΠ°Ρ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ?

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ опираСтся Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΡ‚Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Ρ‚Π°ΠΊΠΎΠΌ понятии, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈ фокусируСт Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° взаимодСйствии ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

2. ΠšΠ°ΠΊΠΎΠ²Ρ‹ этапы ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ проСктирования?

Π°) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ;

Π±) Π°Π½Π°Π»ΠΈΠ·;

Π²) ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅;

r) рСализация;

Π΄) Ρ‚СстированиС;

Π΅) Π²ΠΎΠ·Π²Ρ€Π°ΡˆΠ΅Π½ΠΈΠ΅.

3. Как связанны Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ сотрудничСства?

Π­Ρ‚ΠΎ Π΄Π²Π° Π²ΠΈΠ΄Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ взаимодСйствий классов. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ опрСдСляСт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ событий Π·Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° сотрудничСства β€” ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ взаимодСйствия классов. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ сотрудничСства ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ прямо ΠΈΠ· Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠ³ΠΎ срСдства, ΠΊΠ°ΠΊ Rational Rose.

УпраТнСния 

 1. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ ΡƒΠ»ΠΈΡ†Ρ‹ с двусторонним Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ, свСтофорами ΠΈ ΠΏΠ΅ΡˆΠ΅Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°ΠΌΠΈ. НуТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ модСль, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ частоты ΠΏΠΎΠ΄Π°Ρ‡ΠΈ сигнала свСтофора ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄ΠΎΡ€ΠΎΠΆΠ½ΠΎΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌ.

КакиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ классы ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΈ этой ситуации?

Автомобили, ΠΌΠΎΡ‚ΠΎΡ†ΠΈΠΊΠ»Ρ‹, Π³Ρ€ΡƒΠ·ΠΎΠ²ΠΈΠΊΠΈ, вСлосипСды, ΠΏΠ΅ΡˆΠ΅Ρ…ΠΎΠ΄Ρ‹ ΠΈ ΡΠΏΠ΅Ρ†ΠΌΠ°ΡˆΠΈΠ½Ρ‹ β€” всС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ этот пСрСкрСсток. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, сущСствуСт СшС свСтофор, Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ пСрСкрСстку.

НуТно Π»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² модСль ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π΄ΠΎΡ€ΠΎΠ³ΠΈ? БСзусловно, качСство Π΄ΠΎΡ€ΠΎΠ³ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ сущСствСнноС влияниС Π½Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ транспорта, ΠΎΠ΄Π½Π°ΠΊΠΎ для упрощСния Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· рассмотрСния этот Ρ„Π°ΠΊΡ‚ΠΎΡ€.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚ сам пСрСкрСсток. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ пСрСкрСстка Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ списками Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ сигнала свСтофора Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ списками ΠΏΠ΅ΡˆΠ΅Ρ…ΠΎΠ΄ΠΎΠ², ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… возмоТности ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρƒ. Для этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, позволяюшиС Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ ΠΈ ΠΏΠ΅ΡˆΠ΅Ρ…ΠΎΠ΄Ρ‹ пСрСсСкут этот пСрСкрСсток ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ количСствС.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ рассматриваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ пСрСкрСсток, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°Π»ΠΎΡΡŒ созданиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ экзСмпляра этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (подсказка: вспомнитС ΠΎ статичСских ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΌ доступС ΠΊ Ρ‡Π»Π΅Π½Π°ΠΌ).

Как ΠΏΠ΅ΡˆΠ΅Ρ…ΠΎΠ΄Ρ‹, Ρ‚Π°ΠΊ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ пСрСкрСстка. Они ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ характСристиками. НапримСр, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π² любоС врСмя, ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ сигнала свСтофора (хотя ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… линиях). Π­Ρ‚Π° "ΠΎΠ±Ρ‰Π½ΠΎΡΡ‚ΡŒ" являСтся прСдпосылкой Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ стоит Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс для ΠΏΠ΅ΡˆΠ΅Ρ…ΠΎΠ΄ΠΎΠ² ΠΈ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ.

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π² модСль пСрСкрСстка Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ классы:

class Entity; // ΠΊΠ»ΠΈΠ΅Π½Ρ‚ пСрСкрСстка


// Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс для всСх Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ, Π³Ρ€ΡƒΠ·ΠΎΠ²ΠΈΠΊΠΎΠ², вСлосипСдов ΠΈ ΡΠΏΠ΅Ρ†ΠΌΠ°ΡˆΠΈΠ½

class Vehicle : Entity ...;

// Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс для ΠΏΠ΅ΡˆΠ΅Ρ…ΠΎΠ΄ΠΎΠ²

class Pedestrian : Entity ...;

class C.;r : public Vehicle...;

class Truck . public Vehicle...;

class Motorcycle : public Vehicle...;

class Bicycle : public Vehicle...;

class Emergency_Vehicle : public Vehicle...;

// класс списка Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ ΠΈ людСй, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… двиТСния

class Intersection;

2. УслоТним ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΠΈΠ· упраТнСния 1. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Π²ΠΈΠ΄Π° Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ: таксисты, ΠΏΠ΅Ρ€Π΅Π΅Π·ΠΆΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° красный свСт; ΠΈΠ½ΠΎΠ³ΠΎΡ€ΠΎΠ΄Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Π΄ΡƒΡ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΈ остороТно; ΠΈ частники, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Π΄ΡƒΡ‚ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ, Π² зависимости ΠΎΡ‚ прСдставлСний ΠΎ своСй "ΠΊΡ€ΡƒΡ‚ΠΈΠ·Π½Π΅".

Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΏΠ΅ΡˆΠ΅Ρ…ΠΎΠ΄ΠΎΠ²: мСстныС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ пСрСходят ΡƒΠ»ΠΈΡ†Ρƒ, Π³Π΄Π΅ ΠΈΠΌ заблагорассудится, ΠΈ туристы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ пСрСходят ΡƒΠ»ΠΈΡ†Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π·Π΅Π»Π΅Π½Ρ‹ΠΉ свСт.

А ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΅ΡΡ‚ΡŒ СшС вСлосипСдисты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Π΄ΡƒΡ‚ сСбя Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠ΅ΡˆΠ΅Ρ…ΠΎΠ΄Ρ‹, Ρ‚ΠΎ ΠΊΠ°ΠΊ Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ.

Как эти сообраТСния измСнят модСль?