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

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

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

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Width: 5

Length: 10

Area: 50


Π’ строкС 2 содСрТится Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° прСпроцСссора include, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°ΡΠ±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ iostream, которая обСспСчиваСт Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²Ρ‹Π²ΠΎΠ΄Π° cout. БобствСнно, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² строкС 4.

Π’ строкС 6 пСрСмСнная Width опрСдСляСтся для хранСния значСния Ρ‚ΠΈΠΏΠ° unsigned short int, ΠΈ Ρ‚ΡƒΡ‚ ΠΆΠ΅ выполняСтся инициализация этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ числом 5. Π’ этой ΠΆΠ΅ строкС опрСдСляСтся Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° пСрСмСнная Length Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°, Π½ΠΎ Π±Π΅Π· ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ строкС 7 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Length присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 10.

Π’ строкС 11 опрСдСляСтся пСрСмСнная Area Ρ‚ΠΈΠΏΠ° unsigned short int, которая Ρ‚ΡƒΡ‚ ΠΆΠ΅ инициализируСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ умноТСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Width ΠΈ Length. Π’ строках 13β€”15 значСния всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выводятся Π½Π° экран. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ для Ρ€Π°Π·Ρ€Ρ‹Π²ΠΎΠ² строк ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ endl.


ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово typedef

ΠŸΠΎΡ€ΠΎΠΉ ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ скучно ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ запись Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов, ΠΊΠ°ΠΊ unsigned short int. (ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² этих Ρ‚Ρ€Π΅Ρ… словах Π½Π΅ΠΌΡƒΠ΄Ρ€Π΅Π½ΠΎ Π½Π°Π΄Π΅Π»Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΈ ΠΊΡƒΡ‡Ρƒ ошибок.) Π’ языкС C++ прСдусмотрСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания псСвдонима для этой Ρ„Ρ€Π°Π·Ρ‹ ΠΏΡƒΡ‚Π΅ΠΌ использования ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова typedef, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°.

ΠŸΡ€ΠΈ создании псСвдонима Π²Π°ΠΆΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΎΡ‚ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° (ΠΎΠ± этом ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ Π½Π° занятии 6). Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ псСвдоним Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, сначала записываСтся ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово typedef, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ, Π° Π·Π° Π½ΠΈΠΌ Π½ΠΎΠ²ΠΎΠ΅ имя с символом Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой. НапримСр, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ строки

typedef unsigned short int USHORT;

создаСтся Π½ΠΎΠ²ΠΎΠ΅ имя USHORT, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° unsigned short int. Листинг 3.3 ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Π½ ΠΈΠ· листинга 3.2 с использованиСм псСвдонима USHORT вмСсто слов unsigned short int.

Листинг 3.3. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ опрСдСлСния Ρ‚ΠΈΠΏΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ typedef 

1: // * * * * * * * * * * * * * * * * *

2: // ΠŸΡ€ΠΈΠΌΠ΅Ρ€ опрСдСлСния Ρ‚ΠΈΠΏΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ typedef

3: #include <iostream.h>

4:

5: typedef unsigned short int USHORT; //ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ псСвдонима

6:

7: int main()

8: {

9:    USHORT Width = 5;

10:   USHORT Length;

11:   Length = 10;

12:   USHORT Area = Width * Length;

13:   cout << "Width:" << Width << "\n";

14:   cout << "Length: " << Length << endl;

15:   cout << "Area: " << Area << endl;

16:   return 0;

17: }


Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Width: 5

Length: 10

Area: 50


Π’ строкС 5 ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ USHORT с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова typedef ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΠΊ псСвдоним Ρ‚ΠΈΠΏΠ° unsigned short int. Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ, прСдставлСнной Π² листингС 3.2, Π΄Π° ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ±Π΅ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚.

Π’ ΠΊΠ°ΠΊΠΈΡ… случаях слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ short ΠΈ long

ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ программистам часто Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с использованиСм Ρ‚ΠΈΠΏΠ° long, Π° ΠΊΠΎΠ³Π΄Π° β€” с использованиСм Ρ‚ΠΈΠΏΠ° short. ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ довольно простоС: Ссли сущСствуСт Ρ…ΠΎΡ‚ΡŒ малСйший шанс, Ρ‡Ρ‚ΠΎ вашС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ слишком большим для ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΈΠΏ с большим Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² Ρ‚Π°Π±Π». 3.1 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° unsigned short int, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€, Ρ€Π°Π²Π½Ρ‹ΠΉ Π΄Π²ΡƒΠΌ Π±Π°ΠΉΡ‚Π°ΠΌ, ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰Π΅Π΅ 65 535. Π—Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ Ρ†Π΅Π»Ρ‹Π΅ дСлят свой Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ числами, поэтому ΠΈΡ… максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π΄Π²ΠΎΠ΅ мСньшС, Ρ‡Π΅ΠΌ Ρƒ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ.

Π₯отя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° unsigned long int ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ большоС число (4 294 967 295), ΠΎΠ½ΠΎ всС-Ρ‚Π°ΠΊΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΅Ρ‰Π΅ большими числами, придСтся ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ использованию Ρ‚ΠΈΠΏΠΎΠ² float ΠΈΠ»ΠΈ double, Π½ΠΎ ΠΏΡ€ΠΈ этом Π²Ρ‹ нСсколько ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π΅Ρ‚Π΅ Π² точности. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° float ΠΈ double ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ большиС числа, Π½ΠΎ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΌΠΈ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 7 ΠΈΠ»ΠΈ 19 Ρ†ΠΈΡ„Ρ€, Ρ‚.Π΅. послС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ количСства Ρ†ΠΈΡ„Ρ€ число округляСтся.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с мСньшим Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ мСньший объСм памяти. Π’ наши Π΄Π½ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ становится всС дСшСвлС, Π° Тизнь Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ Π΄Π»ΠΈΠ½Π½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π΅Π΅ Π½Π° экономию памяти. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΡ‚Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΡƒ int, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π±Π°ΠΉΡ‚Π°.

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ†Π΅Π»Ρ‹Ρ…

Π§Ρ‚ΠΎ случится, Ссли ΠΏΡ€ΠΈ использовании Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Ρ… Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Ρ†Π΅Π»Ρ‹Ρ… ΠΏΡ€Π΅Π²Ρ‹ΡΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ максимум?

Когда Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ достигаСт своСго максимального значСния, ΠΏΡ€ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΌ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π΅ ΠΎΠ½ΠΎ сбрасываСтся Π² Π½ΡƒΠ»ΡŒ ΠΈ отсчСт начинаСтся сначала, ΠΊΠ°ΠΊ Π² Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΎΠΌ ΠΎΠ΄ΠΎΠΌΠ΅Ρ‚Ρ€Π΅. Π’ листингС 3.4 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ слишком большоС число Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° short.

Листинг 3.4. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ пСрСполнСния Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠΉ Ρ†Π΅Π»ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

1: #include <iostream.h>

2: int main()

3: {

4:    unsigned short int smallNumber;

5:    smallNumber = 65535;

6:    cout << "small number:" << smallNumber << endl;

7:    smallNumber++;

8:    cout << "small number:" << smallNumber << endl;

9:    smallNumber++;

10:   cout << "small number:" << smallNumber << endl;

11:   return 0;

12: }


Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

small number:65535

small number:0

small numbar:1


ΠΠΠΠ›Π˜Π—: Π’ строкС 4 ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ пСрСмСнная smallNumber Ρ‚ΠΈΠΏΠ° unsigned short int, которая Π½Π° ΠΌΠΎΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ являСтся Π΄Π²ΡƒΡ…Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΉ, способной Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ 0 ΠΈ 65 535. Π’ строкС 5 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ smallNumber присваиваСтся максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² строкС 6 выводится Π½Π° экран.

Π’ строкС 7 пСрСмСнная smallNumber увСличиваСтся Π½Π° 1. ΠŸΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄ Π΄Π²ΡƒΡ… символов плюс (++). Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ smallNumber Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡ‚Π°Ρ‚ΡŒ 65 536. Однако пСрСмСнная Ρ‚ΠΈΠΏΠ° unsigned short int Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ число, большСС 65 535, поэтому Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сбрасываСтся Π² 0, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ выводится Π² строкС 8.

Π’ строкС 9 пСрСмСнная smallNumber вновь увСличиваСтся Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, послС Ρ‡Π΅Π³ΠΎ Π΅Π΅ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выводится Π½Π° экран.

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π½Π°ΠΊΠΎΠ²Ρ‹Ρ… цСлочислСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Π—Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρ†Π΅Π»Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° этих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ всСго Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° β€” ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа. ΠŸΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ максимального ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния пСрСмСнная ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ минимальноС ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ листингС 3.5 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ происходит, Ссли Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ числу, хранящСмуся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° short int.

Листинг 3.5. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ пСрСполнСния Π·Π½Π°ΠΊΠΎΠ²ΠΎΠΉ Ρ†Π΅Π»ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

1: #include <iostream.h>

2: int main()

3: {

4:    short int smallNumber;

5:    smallNumber = 32767;

6:    cout << "small number:" << smallNumber << endl;

7:    smallNumber++;

8:    cout << "small number:" << smallNumber << endl;

9:    smallNumber++;

10:   cout << "small number:" << smallNumber << endl;

11:   return 0;

12:}


Анализ: Π’ строкС 4 пСрСмСнная smallNumber ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π½Π° этот Ρ€Π°Π· ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ Ρ†Π΅Π»ΠΎΠΉ (short int) со Π·Π½Π°ΠΊΠΎΠΌ (Ссли Π² объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово unsigned отсутствуСт, Ρ‚.Π΅. эта пСрСмСнная явно Π½Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠΉ, Ρ‚ΠΎ подразумСваСтся Π΅Π΅ использованиС со Π·Π½Π°ΠΊΠΎΠΌ). Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выполняСт Ρ‚Π΅ ΠΆΠ΅ дСйствия, Ρ‡Ρ‚ΠΎ ΠΈ прСдыдущая, Π½ΠΎ Π½Π° экран выводятся совсСм Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹. Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ числа со Π·Π½Π°ΠΊΠΎΠΌ Π² Π΄Π²ΡƒΡ…Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΌ Ρ†Π΅Π»ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ.

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² случаС приращСния максимального ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа со Π·Π½Π°ΠΊΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ Π½Π΅ Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (ΠΊΠ°ΠΊ Π² случаС с Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ Ρ†Π΅Π»Ρ‹ΠΌΠΈ), Π° минимальноС ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число.

Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ (Ρ‚ΠΈΠΏΠ° char) ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚, этого достаточно для хранСния 256 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌΡ‹Ρ… символов (см. ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π’). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° char ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ число Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 0β€”255, ΠΈΠ»ΠΈ символ ASCII. Набор символов ASCII ΠΈ Π΅Π³ΠΎ эквивалСнт ISO (International Standards Organization β€” ΠœΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Π°Ρ организация ΠΏΠΎ стандартизации) ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой способ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ всСх Π±ΡƒΠΊΠ², Ρ†ΠΈΡ„Ρ€ ΠΈ Π·Π½Π°ΠΊΠΎΠ² прСпинания.

НапримСр, Π² ΠΊΠΎΠ΄Π΅ ASCII английской строчной Π±ΡƒΠΊΠ²Π΅ "Π°" присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 97. ВсСм прописным ΠΈ строчным Π±ΡƒΠΊΠ²Π°ΠΌ, всСм Ρ†ΠΈΡ„Ρ€Π°ΠΌ ΠΈ Π·Π½Π°ΠΊΠ°ΠΌ прСпинания присвоСны значСния ΠΎΡ‚ 1 Π΄ΠΎ 128. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ 128 Π·Π½Π°ΠΊΠΎΠ² ΠΈ символов Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ возмоТностСй ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, хотя Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ символов IBM стал ΡƒΠΆΠ΅ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ стандарта.


ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:ASCII ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ произносится ΠΊΠ°ΠΊ "аскСй".


ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΠΈ малСйшСго понятия, Π½ΠΈ ΠΎ ΠΊΠ°ΠΊΠΈΡ… Π±ΡƒΠΊΠ²Π°Ρ…, Π·Π½Π°ΠΊΠ°Ρ… прСпинания ΠΈΠ»ΠΈ прСдлоТСниях. ВсС ΠΎΠ½ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ числа. Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΆΠ΅ ΠΎΠ½ΠΈ ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ элСктричСскиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… своих схСм. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π²Ρ‹ΡˆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ³ΠΎΠ²ΠΎΡ€Π΅Π½Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΎΠ½ΠΎ прСдставляСтся Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ ΠΊΠ°ΠΊ 1, Ссли Π½Π΅Ρ‚ β€” ΠΊΠ°ΠΊ 0. ΠŸΡƒΡ‚Π΅ΠΌ группирования Π½ΡƒΠ»Π΅ΠΉ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ способСн Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ числа, Π° Ρ‚Π΅, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π±ΡƒΠΊΠ²Π°ΠΌ ΠΈ Π·Π½Π°ΠΊΠ°ΠΌ прСпинания.