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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² срСдС WindowsΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 127

Автор ДТонсон Π₯Π°Ρ€Ρ‚

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²

Основной ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ носит Π½Π°Π·Π²Π°Π½ΠΈΠ΅ WindowsSmpEd3 (ΠΎΡ‚ Windows Sample Programs, Edition 3). Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Π»Π°Π²Ρ‹ прСдусмотрСн ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. ВсС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ находятся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Include, Π° Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Utilities содСрТатся Ρ‚Π°ΠΊΠΈΠ΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ ReportError ΠΈΠ»ΠΈ PrintStrings. Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Projects6 ΠΈ Projects7 (для Visual C++ 6.0 ΠΈ 7.0 соотвСтствСнно). Π˜ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ DLL для всСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² хранятся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… run6 ΠΈ run7. Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ TimeTest содСрТатся Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для тСстирования ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, описанного Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π’. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ приступим ΠΊ описанию содСрТимого ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² WindowsSmpEd3, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ содСрТимоС Web-сайта.

Π£Ρ‡Π΅Π±Π½Ρ‹Π΅ пособия (слайды)

Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Overheads содСрТатся слайды Power Point. Π‘Π»Π°ΠΉΠ΄Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ для удобства ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΊΠΎΠ»Π»Π΅Π΄ΠΆΠ΅ΠΉ ΠΈ унивСрситСтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ захотят Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠΌ ΠΊΠ½ΠΈΠ³ΠΈ Π² курсах своих Π»Π΅ΠΊΡ†ΠΈΠΉ. Π‘Π»Π°ΠΉΠ΄Ρ‹ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для коммСрчСского использования.

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ Utility

Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Utility Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ сСмь Ρ„Π°ΠΉΠ»ΠΎΠ² с исходными ΠΊΠΎΠ΄Π°ΠΌΠΈ слуТСбных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

1. Π€Π°ΠΉΠ» ReprtErr.с содСрТит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ReportError (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 2.2) ΠΈ ReportException (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 4.1). Π—Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ grep ΠΈ wc, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² Π³Π»Π°Π²Π΅ 1, каТдая ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, запускаСмых Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ процСсс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², нуТдаСтся Π² этом Ρ„Π°ΠΉΠ»Π΅.

2. Π€Π°ΠΉΠ» PrintMsg.c содСрТит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ PrintStrings, PrintMsg ΠΈ ConsolePrint (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 2.1). Π’Π°ΠΊ ΠΊΠ°ΠΊ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ReprtErr.с, Ρ‚ΠΎ этот исходный Ρ„Π°ΠΉΠ» Ρ‚Π°ΠΊΠΆΠ΅ трСбуСтся ΠΏΠΎΡ‡Ρ‚ΠΈ Π²ΠΎ всСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

3. Π€Π°ΠΉΠ» Options.с содСрТит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, начиная с Π³Π»Π°Π²Ρ‹ 2. Π’ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ этот исходный Ρ„Π°ΠΉΠ» Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ любой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ листинг ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ А.7.

4. Π€Π°ΠΉΠ» Wstrings.с содСрТит исходный ΠΊΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ wmemchr, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ Options.с. Π’ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ этот Ρ„Π°ΠΉΠ» Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π² соотвСтствии с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹ΠΌΠΈ строками.

5. Π€Π°ΠΉΠ» SkipArg.с обСспСчиваСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΡƒΡ‚Π΅ΠΌ пропуска ΠΎΠ΄Π½ΠΎΠ³ΠΎ поля Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅. Π•Π³ΠΎ листинг ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ А.8.

6. Π€Π°ΠΉΠ» GetArgs.с содСрТит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ строку символов ΠΊ Π²ΠΈΠ΄Ρƒ argc, argv[]. Π­Ρ‚Π° функция ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠ°ΠΊ это дСлаСтся, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² случаС ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΠΎΠΉ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ GetCommandLine, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π² Π³Π»Π°Π²Π΅ 6. Листинг этого Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ А.8.

7. Π€Π°ΠΉΠ» Version.с Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ DllGetVersion для Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ DLL, построСнной ΠΈΠ· этих ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Ρ‚ΡŒ вмСстС с Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ. Однако ΠΏΡ€ΠΎΡ‰Π΅ ΡΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, статичСской ΠΈΠ»ΠΈ динамичСской. Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Utility_3_0 эти Ρ„Π°ΠΉΠ»Ρ‹ с исходными ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для создания Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ DLL, Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ utulityStatic β€” для создания статичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ Include

Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Include описаны многочислСнныС Ρ„Π°ΠΉΠ»Ρ‹. Одни ΠΈΠ· Π½ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΡ‡Ρ‚ΠΈ Π²ΠΎ всСх ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π΄Π²ΡƒΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² приводится Π½ΠΈΠΆΠ΅.

1. EvryThng.h, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ само Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ всС опрСдСлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ…. Π’ частности, ΠΎΠ½ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ Envirmnt.h ΠΈ Support.h. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ листинг ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ А.1.

2.  Exclude.h содСрТит опрСдСлСния ряда ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… прСпроцСссора, ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… опрСдСлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, прСдставлСнных Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅. Π­Ρ‚Π° ΠΌΠ΅Ρ€Π° позволяСт ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилированных Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².

3.  Envirmnt.h содСрТит согласованныС опрСдСлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… прСпроцСссора UNICODE ΠΈ _UNICODE, Π° Ρ‚Π°ΠΊΠΆΠ΅ опрСдСлСния языка ΠΈ ΠΏΠΎΠ΄ΡŠΡΠ·Ρ‹ΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ReportError. Листинг этого Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ A.3.

4. Support.h содСрТит опрСдСлСния ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΎΠ±Ρ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ReportError, Π° Ρ‚Π°ΠΊΠΆΠ΅ ряд часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… символичСских констант. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ листинг прСдставлСн Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ A.3.

5. ClntSrvr.h ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ начиная с Π³Π»Π°Π²Ρ‹ 11. Π’ Π½Π΅ΠΌ содСрТатся опрСдСлСния структур сообщСний, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для запросов ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ опрСдСлСния ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ² сСрвСра ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… ящиков, Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² оТидания ΠΈ Ρ‚.ΠΏ. Π‘ΠΌ. ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ А.5.

6. JobMgt.h ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… управлСния Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ Π³Π»Π°Π²Ρ‹ 6. Π‘ΠΌ. ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ А.5.

РаспрСдСлСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΎ Π³Π»Π°Π²Π°ΠΌ

Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Π»Π°Π²Ρ‹ содСрТатся всС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, относящиСся ΠΊ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Utility), Π° Ρ‚Π°ΠΊΠΆΠ΅ всСвозмоТныС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΡ… ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ, сопровоТдаСмый ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ описаниСм слуТСбных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, прСдставлСн Π½ΠΈΠΆΠ΅. Π’ названиях Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ присутствуСт суффикс "x"; Π² эти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ внСсСны Π΄Π΅Ρ„Π΅ΠΊΡ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ распространСнныС ошибки программирования.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

ИмСна ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ tail ΠΈ touch, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»ΠΈΡΡŒ Π² Π³Π»Π°Π²Π΅ 7, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с названиями ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ UNIX, Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΡŽΡ‚. Π’ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π°Ρ‚ΡŒ этим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°. НСкоторыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡƒΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Ρ‹ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ; Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ lsW ΠΈ cpW. 

Π“Π»Π°Π²Π° 1

β€’ ΡΡ€Π‘.с β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 1.1.

β€’  cpW.c β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 1.2; cpwFA.c β€” Π΅Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π»ΡƒΡ‡ΡˆΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π‘ΠΌ. Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π’.

β€’ cpCF.с β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 1.3.

β€’ Πš числу Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ относятся UNIX-вСрсия этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (cpU.с), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (cpUC.c), скомпонованная с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ совмСстимости UNIX, прСдоставляСмой Visual C++. CpwFA.с β€” Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Cpw.c, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠ΅ быстродСйствиС Π·Π° счСт использования Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² большого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ„Π»Π°Π³ΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊ, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² Π³Π»Π°Π²Π΅ 2.

Π“Π»Π°Π²Π° 2

β€’ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ 2.1 ΠΈ 2.2 находятся Π² упомянутом Ρ€Π°Π½Π΅Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Utility.

β€’ cat.с β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 2.3.

β€’ atou.с β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 2.4.

β€’ Asc2Un.c β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 2.5; Asc2UnFA.c ΠΈ Asc2UnNB.c β€” Π΅Π΅ вСрсии, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π»ΡƒΡ‡ΡˆΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ВсС Ρ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Asc2Un, которая вызываСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ 2.5.

β€’ pwd.c β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 2.6; pwda.c β€” ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ объСма памяти для размСщСния ΠΏΡƒΡ‚ΠΈ доступа.

β€’ cd.c β€” рСализация ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ UNIX, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ; эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ совпадаСт с Ρ‚ΠΎΠΉ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π³Π»Π°Π²Π΅ 2.

Π“Π»Π°Π²Π° 3

β€’ RandomAccess.с β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 3.1.

β€’ lsW.c β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 3.2. rmW.c β€” аналогичная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, прСдназначСнная для удалСния Ρ„Π°ΠΉΠ»ΠΎΠ².

β€’ touch.с β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 3.3.

β€’ getn.c β€” Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для чтСния записСй фиксированной Π΄Π»ΠΈΠ½Ρ‹, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ доступ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈ вычислСниС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² Ρ„Π°ΠΉΠ»Π΅.

β€’ lsReg.с β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 3.4.

β€’ FileSize.с β€” ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π² ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… цСлях Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ для Ρ„Π°ΠΉΠ»Π° пространство Ρ€Π°Π·Ρ€Π΅ΠΆΠ΅Π½Π½Ρ‹ΠΌ.

β€’ TestLock.с β€” осущСствляСт Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°.

β€’ tail.с β€” трСбуСтся ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ упраТнСния 3.3. 

Π“Π»Π°Π²Π° 4

β€’ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 4.1 Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² Ρ„Π°ΠΉΠ» ReprtErr.c, находящийся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Utulity.

β€’ toupper.c β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 4.2. toupperX.c содСрТит ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ внСсСнныС ошибки; ΠΈΡ… устранСниС послуТит для вас Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ΠΌ.

β€’ Exception.с β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 4.3, Π° Ρ‚Π°ΠΊΠΆΠ΅ функция Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 4.4.

β€’ Ctrlc.с β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 4.5.

Π“Π»Π°Π²Π° 5

β€’ sortBT.c β€” прСдставляСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ 5.1 ΠΈ 5.2; sortBTSR.c β€” Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ отсутствуСт опция ΠΎΡ‚ΠΊΠ°Π·Π° ΠΎΡ‚ сСриализации ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для выяснСния влияния этого Ρ„Π°ΠΊΡ‚ΠΎΡ€Π° Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² случаС простых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π§ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹ΠΉ эффСкт являСтся вСсьма Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

β€’ Asc2UnMM.с β€” функция для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ 5.3.

β€’ sortFL.с β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 5.4, a sortHP.с β€” аналогичная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ вмСсто отобраТСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΡ… считываниС Π² Π±ΡƒΡ„Π΅Ρ€, выдСляСмый Π² памяти.

β€’ sortMM.с β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ 5.5 ΠΈ 5.6.

β€’ atouEL.c β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 5.7, a Asc2UnDll.c ΠΈ Asc2UnmmDLL.c β€” исходныС Ρ„Π°ΠΉΠ»Ρ‹ для Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ DLL. Asc2Unmmfl.c β€” Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΎΡ‡ΠΈΡ‰Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ выполнСния, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ замСдлСнию ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ оставляСт систСму Π² бСзопасном состоянии.

β€’ HeapNoSr.c β€” тСстовая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для количСствСнной ΠΎΡ†Π΅Π½ΠΊΠΈ эффСкта использования Ρ„Π»Π°Π³Π° HEAP_NO_SERIALIZE ΠΏΡ€ΠΈ распрСдСлСнии памяти. Π­Ρ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ упраТнСния 5.1.