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

Π Π°Π±ΠΎΡ‚Π° с цСлочислСнными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Metrowerks CodeWarrior

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

ΠžΠΏΠ΅Ρ€Π°Π½Π΄1 + ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2; // слоТСниС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 — ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2; // Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 * ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2; // ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 / ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2; // Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1% ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2; // остаток ΠΎΡ‚ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ Ρ‚ΠΈΠΏΠ° int слСдуСт ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ пСрСполнСния ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Если ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ…… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π±ΠΎΡ‚Π° с цСлочислСнными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Metrowerks CodeWarrior (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠΠ°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ тСхничСский унивСрситСт Π£ΠΊΡ€Π°ΠΈΠ½Ρ‹

«ΠšΠΈΠ΅Π²ΡΠΊΠΈΠΉ политСхничСский институт»

ΠšΠ°Ρ„Π΅Π΄Ρ€Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Лабораторная Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΊΡƒΡ€ΡΡƒ: «ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ систСм с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ»

«Π Π°Π±ΠΎΡ‚Π° с Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Metrowerks CodeWarrior»

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»: Π—Ρ‹ΠΊΠΈΠΉ О.О.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»: ΠšΠ°Ρ€ΠΏΠ° Π’.М.

КиСв 2012

1. ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Metrowerks CodeWarrior

Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» прСдставляСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Metrowerks CodeWarrior (Π² Ρ‡Π°ΡΡ‚ности, ΠΎΠ± Π°Ρ€ΠΈΡ„мСтичСских опСрациях, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎ ΠΏΠ΅Ρ€Π΅ΡΡ‹Π»ΠΊΠ΅, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ, сохранСнии Π΄Π°Π½Π½Ρ‹Ρ…).

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Metrowerks CodeWarrior ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ‚ΠΈΠΏ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ [= Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅];

ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки Π² Π΄Π°Π½Π½ΠΎΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ присутствиС части выраТСния, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ Π² Π½ΠΈΡ…, Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Π² Metrowerks CodeWarrior ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° нСпосрСдствСнно ΠΏΡ€ΠΈ Π΅Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΠΈ. ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΡΡ€Π΅Π΄Π΅ Metrowerks CodeWarrior для эффСктивной Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ main (). Волько Π² ΡΡ‚ΠΎΠΌ случаС Π² ΠžΠ—Π£ М68НБ12 ΠΏΠΎΠ΄ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти.

2. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² C++ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π° Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹:

— Π΄Π°Π½Π½Ρ‹Π΅ цСлочислСнного Ρ‚ΠΈΠΏΠ°

— Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° float (с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ) К Π΄Π°Π½Π½Ρ‹ΠΌ цСлочислСнного Ρ‚ΠΈΠΏΠ° относятся Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠΎΠ², названия ΠΈ Ρ…арактСристики ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 1.

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Ρ‚ΠΈΠΏΠΎΠ² unsigned ΠΈ signed ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для опрСдСлСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° прСдставлСния Π΄Π°Π½Π½Ρ‹Ρ… (Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΈ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ прСдставлСниС). Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ 1, ΠΎΠ½ΠΈ Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ выдСляСмых областСй памяти.

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚ΠΈΠΏΠ° signed ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния. ΠŸΡ€ΠΈ этом самый Π»Π΅Π²Ρ‹ΠΉ Π±ΠΈΡ‚ области памяти, выдСляСмой для хранСния значСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для прСдставлСния Π·Π½Π°ΠΊΠ°.

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚ΠΈΠΏΠ° unsigned ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ пСрСмСнная ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния. ΠŸΡ€ΠΈ этом самый Π»Π΅Π²Ρ‹ΠΉ Π±ΠΈΡ‚ области памяти, выдСляСмой для хранСния значСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для прСдставлСния значСния.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

unsigned char a1 = `c'; //инициализированная пСрСмСнная Ρ‚ΠΈΠΏΠ° unsigned char

signed long d1, d2,d3; //Ρ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° signed long

int i; //пСрСмСнная Ρ‚ΠΈΠΏΠ° int

ЦСлочислСнныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ Π² Ρ‚Ρ€Π΅Ρ… Π²ΠΈΠ΄Π°Ρ…:

— Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄

— 16-Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄,

— 8-Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄ ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚Π°ΠΊΠΎΠ³ΠΎ прСдставлСния Π΄Π°Π½Π½Ρ‹Ρ…:

a = 16; // дСсятичный

b = 0×0032; // 16-Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ, Π° = 032; // 8-Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ

3. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора — это инструкции, записанныС Π² Ρ‚СкстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ наряду с ΠΊΠΎΠ΄ΠΎΠΌ Π‘++ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹Π΅ Π΄ΠΎ Ρ‚рансляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НазначСниС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² прСпроцСссора:

— Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠΎΠ΄Π° Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ модуля;

— Π·Π°ΠΌΠ΅Π½Π° лСксСм тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ;

— ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссом трансляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Ρ‚. Π΄.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ со Π·Π½Π°ΠΊΠ° #. ПослС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² прСпроцСссора Ρ‚ΠΎΡ‡ΠΊΠ° с Π·Π°ΠΏΡΡ‚ΠΎΠΉ Π½Π΅ ΡΡ‚авятся. Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎ синтаксис Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

#Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°_прСпроцСссора ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€1 … ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€_N

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #include. НазначСниС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #include — Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² Ρ‚Скст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠΎΠ΄Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ модуля (Ρ„Π°ΠΉΠ»Π°). Бинтаксис этой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π΅ Ρ„ΠΎΡ€ΠΌΡ‹:

#include «ΠΈΠΌΡ_модуля»

#include <�имя_модуля>

Имя модуля Π² Π΄Π°Π½Π½ΠΎΠΌ случаС зависит ΠΎΡ‚ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Ρ… для компилятора ΠΏΡƒΡ‚Π΅ΠΉ поиска Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ Π»ΠΈΠ±ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° (Ссли Ρ„Π°ΠΉΠ» находится ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΠΏΡ€ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 2-я Ρ„ΠΎΡ€ΠΌΠ° синтаксиса), Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 1-я Ρ„ΠΎΡ€ΠΌΠ° синтаксиса). Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС поиск Ρ„Π°ΠΉΠ»Π° осущСствляСтся ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ ΠΈΠ»ΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ (ΠΏΡ€ΠΈ отсутствии ΠΏΡƒΡ‚ΠΈ). Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС поиск Ρ„Π°ΠΉΠ»Π° производится Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠ°Ρ… компилятора.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #define

ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #define — Π·Π°ΠΌΠ΅Π½Π° часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ…ΡΡ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ (ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ константами ΠΈΠ»ΠΈ макроопрСдСлСниями).

Бинтаксис Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #define Π΄Π²Π΅ Ρ„ΠΎΡ€ΠΌΡ‹:

#define ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ тСкст

#define ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (список_ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²) тСкст Π­Ρ‚Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° замСняСт всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ вхоТдСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π° Ρ‚Скст. ВСкст ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой любой Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π‘++ ΠΈΠ»ΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π²ΠΎΠΉ синтаксичСской Ρ„ΠΎΡ€ΠΌΡ‹:

#define Big 80 //Π·Π°ΠΌΠ΅Π½Π° слова Big Π½Π° 10

#define Very_Big (20*Big) //замСна слова Very_Big на

//Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (10*20)

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ синтаксичСской Ρ„ΠΎΡ€ΠΌΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #define присутствуСт список Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Он ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ #define:

#define Sum (a, b) (a+b) //Π·Π°ΠΌΠ΅Π½Π° выраТСния Sum (a, b) Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ (a+b)

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #undef

НазначСниС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #undef — Π°Π½Π½ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ опрСдСлСния констант ΠΈ ΠΌΠ°ΠΊΡ€ΠΎΡΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #define. Бинтаксис этой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

#undef ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° отмСняСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ #define для ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

#undef Big

#undef Very_Big

4. АссСмблСрныС вставки Π² ΠΊΠΎΠ΄ Π‘++

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

Бинтаксис Ρ‚Π°ΠΊΠΎΠΉ вставки ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

__asm

{

Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° АссСмблСра

}

Одним ΠΈΠ· ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ компилятора Metrowerks CodeWarrior ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… компиляторов Π‘++ являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ наличия Π΄Π²ΡƒΡ… символов подчСркивания ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом asm. ΠŸΡ€ΠΈ использовании Ρ‚Π°ΠΊΠΎΠΉ вставки Π² ΡΡ€Π΅Π΄Π΅ Metrowerks Code Warrior ΠΌΠΎΠΆΠ½ΠΎ нСпосрСдствСнно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ АссСмблСр для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° НБ12, Ρ‚. Π΅. ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°ΠΌΠΈ, ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ, ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ НБ12 ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Однако ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ сущСствСнноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ синтаксисами АссСмблСров, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΡΠΈΠΌΡƒΠ»ΡΡ‚ΠΎΡ€Π΅ НБ12 ΠΈ ΡΡ€Π΅Π΄Π΅ программирования Metrowerks Code Warrior ΠΏΡ€ΠΈ использовании ΠΌΠ΅Ρ‚ΠΊΠΈ. ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ синтаксисов Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ:

— ΡΠΈΠΌΡƒΠ»ΡΡ‚ΠΎΡ€ НБ12: <οΏ½ΠΌΠ΅Ρ‚ΠΊΠ°> <οΏ½ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹>

— Metrowerks Code Warrior: <οΏ½ΠΌΠ΅Ρ‚ΠΊΠ°>: <οΏ½ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹>

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования вставки:

int a, b, c; //объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… — слагаСмых ΠΈ ΡΡƒΠΌΠΌΡ‹

void main (void)

{

a=0×03; //инициализация 1-Π³ΠΎ слагаСмого

__asm

{

STD $ 0809 //сохранСниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ

}

b=0x0E; //инициализация 2-Π³ΠΎ слагаСмого

c=a+b; //ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ суммы

}

цСлочислСнный прСпроцСссор арифмСтичСский присваиваниС Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, ассСмблСрныС вставки Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π‘++ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выглядят вСсьма Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого уровня (Π² Π½Π°ΡˆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ являСтся Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ адрСсу).

5. АрифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны основныС арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Π‘++ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ цСлочислСнного Ρ‚ΠΈΠΏΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, связанныС с Π°Ρ€ΠΈΡ„мСтичСскими дСйствиями.

По ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Ρƒ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² рассматриваСмыС Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ дСлятся Π½Π° ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (соотвСтствСнно ΠΎΠ΄ΠΈΠ½ ΠΈ Π΄Π²Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°). Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся условная опСрация, относящаяся ΠΊ Ρ‚Π΅Ρ€Π½Π°Ρ€Π½Ρ‹ΠΌ опСрациям (Ρ‚.Π΅. с Ρ‚рСмя ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ). Рассмотрим ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Π£Π½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ К ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΌ опСрациям относят ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ прСобразования Π·Π½Π°ΠΊΠ° (ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ минус ΠΈ ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ плюс), ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° ΠΈ Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°.

Бинтаксис ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ прСобразования Π·Π½Π°ΠΊΠ° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

— ΠΎΠΏΠ΅Ρ€Π°Π½Π΄

+ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠžΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ арифмСтичСского Ρ‚ΠΈΠΏΠ°. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ «Π£Π½Π°Ρ€Π½Ρ‹ΠΉ минус» ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ «Π£Π½Π°Ρ€Π½Ρ‹ΠΉ плюс» фактичСски Π½Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°/Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° соотвСтствСнно ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚/ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Π½Π° 1. Π’ Π‘++ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ ΠΏΡ€Π΅Ρ„ΠΈΠΊΡΠ½ΡƒΡŽ ΠΈ ΠΏΠΎΡΡ‚Ρ„ΠΈΠΊΡΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ использования Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Бинтаксис этих Π΄Π²ΡƒΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² ΠΏΡ€Π΅Ρ„иксной Ρ„ΠΎΡ€ΠΌΠ΅ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

+ + ΠΎΠΏΠ΅Ρ€Π°Π½Π΄

— - ΠΎΠΏΠ΅Ρ€Π°Π½Π΄, А Π²ΠΎΡ‚ Ρ‚Π°ΠΊ выглядит синтаксис этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² ΠΏΠΎΡΡ‚фиксной Ρ„ΠΎΡ€ΠΌΠ΅:

ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ + +

ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ — ;

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ этими Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ использования ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании прСфиксной Ρ„ΠΎΡ€ΠΌΡ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅/ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ значСния ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° происходит Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ значСния выраТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ опСрация ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ; Π° ΠΏΡ€ΠΈ постфиксной — послС опрСдСлСния значСния этого выраТСния.

Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ К Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌ опСрациям относят ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ слоТСния, вычитания, умноТСния, дСлСния ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ получСния остатка ΠΎΡ‚ Π΄Π΅Π»Π΅Π½ΠΈΡ, Π° Ρ‚Π°ΠΊΠΆΠ΅ опСрация присваивания.

АрифмСтичСскиС Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π’ ΡΡ‚ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ рассматриваСтся, ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ арифмСтичСскиС дСйствия Π½Π°Π΄ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ цСлочислСнного Ρ‚ΠΈΠΏΠ°. Бинтаксис этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 + ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2; // слоТСниС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 — ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2; // Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 * ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2; // ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 / ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2; // Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1% ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2; // остаток ΠΎΡ‚ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ Ρ‚ΠΈΠΏΠ° int слСдуСт ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ пСрСполнСния ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Если ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° unsigned int, ΠΈ ΡΡ‚ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ прСвосходит 65 535, Ρ‚ΠΎ ΠΏΡ€ΠΈ записи Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½ ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±Π°ΠΉΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, ΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ утСряны. Π’ ΡΡ‚ΠΎΠΌ случаС для сохранСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° long.

Π’Π°ΠΊΠΆΠ΅ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ дСлСния для ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² цСлочислСнного Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π΄Π΅Π»ΡΡ‚ся Π½Π°Ρ†Π΅Π»ΠΎ, ΠΏΡ€ΠΈ записи Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° дСлСния Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ цСлочислСнного Ρ‚ΠΈΠΏΠ° происходит отбрасываниС Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° дСлСния.

ΠžΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ получСния остатка ΠΎΡ‚ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ выраТСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ цСлочислСнного Ρ‚ΠΈΠΏΠ°. ΠŸΡ€ΠΈ Π½Π΅ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°Ρ… остаток ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π·Π½Π°ΠΊ остатка опрСдСляСтся Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ присваивания Бинтаксис ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ присваивания ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 = ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2

Π­Ρ‚ΠΎ простая Ρ„ΠΎΡ€ΠΌΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ присваивания. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° 2 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ присваивания ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ любоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° 2 присваиваСтся ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρƒ 1. НС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° 2. ΠžΠΏΠ΅Ρ€Π°Π½Π΄ 2 ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, соСдинСнных опСрациями присвоСния:

ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 = ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2 = … ΠΎΠΏΠ΅Ρ€Π°Π½Π΄N-1 = ΠΎΠΏΠ΅Ρ€Π°Π½Π΄N

Π³Π΄Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1, ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2 … ΠΎΠΏΠ΅Ρ€Π°Π½Π΄N-1 Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ составными выраТСниями. Π­Ρ‚ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния <οΏ½ΠΎΠΏΠ΅Ρ€Π°Π½Π΄N.

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ присваивания. Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ трансляции Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΡ‚Π°ΠΏΠ΅ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° транслятор строит ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ², Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡΡ… дСйствия. НапримСр, ΠΏΡ€ΠΈ трансляции выраТСния

A = A + 125

транслятор, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ для вычислСния значСния выраТСния A + 125 ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ A. ΠŸΡ€ΠΈ этом Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‰ΠΈΠΉ адрСс ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ A Π΄Π²Π°ΠΆΠ΄Ρ‹ Π²ΠΎΠΉΠ΄Ρ‘Ρ‚ Π²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ процСссора, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… это Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

Π’ Ρ†Π΅Π»ΡΡ… упрощСния структуры ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² C++ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ (ΠΈΠ»ΠΈ сокращённыС) Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² присваивания. Π­Ρ‚ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ для всСх ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² присваивания. Бинтаксис ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ присваивания ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 + = ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2

ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 — = ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2

ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 * = ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2

ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 / = ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2

ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1% = ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2

Вакая Ρ„ΠΎΡ€ΠΌΠ° записи эквивалСнтна соотвСтствСнно ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ выраТСниям:

ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 = ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 + ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2

ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 = ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 — ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2

ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 = ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 * ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2

ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 = ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 / ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2

ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 = ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1% ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2

ΠŸΡ€ΠΈ этом ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2 ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ составным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ‚. Π΅. Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΡΠ΅Π±Ρ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ присвоСния ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ структуру Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ создаваСмый транслятором ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ адрСс Π»Π΅Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° выраТСния встрСчаСтся Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ мноТСствС ΠΊΠΎΠΌΠ°Π½Π΄ процСссора лишь ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

Условная опСрация Условная опСрация — СдинствСнная Π² C++ опСрация с Ρ‚рСмя ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ. Бинтаксис этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

(ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ 1)? ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2: ΠΎΠΏΠ΅Ρ€Π°Π½Π΄3

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ располагаСтся слСва ΠΎΡ‚ Π·Π½Π°ΠΊΠ° «?» ΠΈ ΡΠ²Π»ΡΠ΅Ρ‚ся условиСм. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ располагаСтся ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π½Π°ΠΊΠ°ΠΌΠΈ «?» ΠΈ «:». Оно выполняСтся Π² Ρ‚ΠΎΠΌ случаС, Ссли условиС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 истинно, Ρ‚. Π΅. Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’Ρ€Π΅Ρ‚ΡŒΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ находится справа ΠΎΡ‚ Π·Π½Π°ΠΊΠ° «:» ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся Π² Ρ‚ΠΎΠΌ случаС, Ссли условиС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 Π»ΠΎΠΆΠ½ΠΎ, Ρ‚. Π΅. Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

6. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ К ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡΠΌ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈΡ‡ΠΈΡΠ»ΡΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

— «Π±ΠΎΠ»ΡŒΡˆΠ΅» (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ — «>»)

— «ΠΌΠ΅Π½ΡŒΡˆΠ΅» (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ — «<οΏ½»)

— «Π±ΠΎΠ»ΡŒΡˆΠ΅ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ» (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ — «> =»)

— «Π±ΠΎΠ»ΡŒΡˆΠ΅ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ» (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ — «< =»)

— «Ρ€Π°Π²Π½ΠΎ» (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ — «= =»)

— «Π½Π΅ Ρ€Π°Π²Π½ΠΎ» (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ — «! =»)

Π”Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Ρ‚Π°ΠΊΠΈΡ… срСдствах управлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, ΠΊΠ°ΠΊ условный ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅. Π’Π°ΠΊΠΆΠ΅ эти ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΈ использовании условной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (см. ΠΏ. 5.3) Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ-ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1.

Π”Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ относят ΠΊ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌ опСрациям ΠΈ ΠΈΡ… ΠΎΠ±Ρ‰ΠΈΠΉ синтаксис ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

ΠžΠΏΠ΅Ρ€Π°Π½Π΄ 1 О ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ 2

Π³Π΄Π΅ О — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ.

7. ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ К Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΈΠΌ опСрациям относятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

— ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ логичСского И (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ — «&&»)

— ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ логичСского Π˜Π›Π˜ (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ — «||»).

ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ относят ΠΊ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌ опСрациям, ΠΈ ΠΈΡ… ΠΎΠ±Ρ‰ΠΈΠΉ синтаксис Π½Π΅ ΠΎΡ‚личаСтся ΠΎΡ‚ ΡΠΈΠ½Ρ‚аксиса ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ. Однако ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для образования Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с Π±ΠΎΠ»ΡŒΡˆΠΈΠΌ числом ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°:

ΠΎΠΏΠ΅Ρ€Π°Π½Π΄1 О ΠΎΠΏΠ΅Ρ€Π°Π½Π΄2 О ΠΎΠΏΠ΅Ρ€Π°Π½Π΄3 О… О ΠΎΠΏΠ΅Ρ€Π°Π½Π΄N

ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ стандартных арифмСтичСских ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ. Они ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π΅Π³ΠΎ эквивалСнтности Π½ΡƒΠ»ΡŽ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ логичСской ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ являСтся 0 ΠΈΠ»ΠΈ 1, Ρ‚ΠΈΠΏ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° int.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ логичСского И (&&) Π²Ρ‹Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1, Ссли ΠΎΠ±Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ значСния. Если ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² Ρ€Π°Π²Π΅Π½ 0, Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π²Π΅Π½ 0. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Ρ€Π°Π²Π½ΠΎ 0, Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ Π½Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΠ΅Ρ‚ся. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ логичСского Π˜Π›Π˜ (||) выполняСт Π½Π°Π΄ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ Π˜Π›Π˜. Она Π²Ρ‹Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0, Ссли ΠΎΠ±Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0, Ссли ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π²Π΅Π½ 1. Если ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ Π½Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΠ΅Ρ‚ся.

7. Π˜Π½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΡƒΡŽ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 5 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… соотвСтствСнным количСством чисСл Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ F0 … F4 (Ρ‚.Π΅. ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ‡Π»Π΅Π½ являСтся суммой Π΄Π²ΡƒΡ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ…: 0,1,1,2,3,…), Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ 5 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… — F4 … F4 + 5

Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

int a, b, c, d, e, f, g, h, k, l;

void main (void)

{

a=0;

b=1;

c=a+b;

d=b+c;

e=c+d;

f=e+1;

g=e+2;

h=e+3;

k=e+4;

l=e+5;

}

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Π’Ρ‹Π²ΠΎΠ΄Ρ‹ Π’ Π΄Π°Π½Π½ΠΎΠΉ Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++ Π±Ρ‹Π»Π° написана ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая заполняСт ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 5 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… числами Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ (каТдая ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ пСрСмСнная ровняСтся суммС Π΄Π²ΡƒΡ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ…), Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ 5 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… числами, f5… f4+5. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±Ρ‹Π» прСдставлСн Π² Π²ΠΈΠ΄Π΅ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π° с Metrowerks CodeWarrior.

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