Π”ΠΈΠΏΠ»ΠΎΠΌ, курсовая, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°
ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚

Π―Π·Ρ‹ΠΊΠΈ программирования

Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ°ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

АрхитСктура Π“Π°Ρ€Π²Π°Ρ€Π΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ нСдостаток — Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ. ΠŸΡ€ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΊΡ€ΠΈΡΡ‚Π°Π»Π»Π΅ процСссора послСдний Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ Π²Π΄Π²ΠΎΠ΅ большС Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ шина адрСса ΠΈ ΡˆΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² микропроцСссора. Бпособом Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ стала идСя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ ΡˆΠΈΠ½Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡˆΠΈΠ½Ρƒ адрСса для всСх Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π―Π·Ρ‹ΠΊΠΈ программирования (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

1. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ развития срСдств Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π­Ρ‚Π°ΠΏΡ‹ развития

— Π Π°Π½Π½ΠΈΠΉ (домСханичСский) (Π΄ΠΎ 1642 Π³.)

— ΠœΠ΅Ρ…аничСский (1642 — сСрСдина 19 Π²Π΅ΠΊΠ°)

1642 — машина Π‘Π»Π΅Π·Π° Паскаля, пСрвая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вычислСния

1654 — логарифмичСская Π»ΠΈΠ½Π΅ΠΉΠΊΠ°, ΠΏΠ΅Ρ€Π²ΠΎΠ΅ устройство, сдСлавшСС вычислСния быстрыми

1801 — появлСниС ΠΏΠ΅Ρ€Ρ„ΠΎΠΊΠ°Ρ€Ρ‚

1820-Π΅ Π³ΠΎΠ΄Ρ‹ — Π°Ρ€ΠΈΡ„ΠΌΠΎΠΌΠ΅Ρ‚Ρ€ Вомаса, ΠΏΠ΅Ρ€Π²ΠΎΠ΅ мСханичСскоС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ устройство

1822−1838 — Разностная машина Π§Π°Ρ€Π»ΡŒΠ·Π° БэббидТа, пСрвая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ устройство

— Π­Π»Π΅ΠΊΡ‚ромСханичСский (сСрСдина 19 Π²Π΅ΠΊΠ° — 2000 Π³.)

1888 — ΠŸΠ΅Ρ€Π²Π°Ρ счСтная машина, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ элСктричСскоС Ρ€Π΅Π»Π΅

1906 — Π“. Π‘эббидТ построил Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ модСль аналитичСской ΠΌΠ°ΡˆΠΈΠ½Ρ‹ 1940;1948 — Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Клода Π¨Π΅Π½Π½ΠΎΠ½Π°

1938 Π³. ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Z1 — ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° c ΠΌΠ΅Ρ…аничСскими модулями памяти сСрСдина 1940;Ρ… — Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Ρ„ΠΎΠ½ НСймана

1946 Π³. — ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ЭНИАК

1947 Π³. — ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠ³ΠΎ транзисторного усилитСля

1958 Π³ — созданиС ΠΏΠ΅Ρ€Π²ΠΎΠΉ элСктронной микросхСмы

1954 — ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ язык программирования высокого уровня — Fortran

1963 Π³ — пСрвая ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΌΡ‹ΡˆΡŒ

1966 Π³. — ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Intel

1969 — созданиС ΠΏΡ€ΠΎΠΎΠ±Ρ€Π°Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° (APARnet)

1975, 1976 — созданиС Microsoft ΠΈ Apple

— Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ (2000 Π³. — …)

2. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ управлСния Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Ρ„ΠΎΠ½ НСймана. ВсС вычислСния, прСдусмотрСнныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ прСдставлСны Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, состоящСй ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… слов — ΠΊΠΎΠΌΠ°Π½Π΄. КаТдая ΠΊΠΎΠΌΠ°Π½Π΄Π° прСдписываСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ машиной. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ хранятся Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ячСйках памяти Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ся Π² Π΅ΡΡ‚СствСнной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² ΠΏΠΎΡ€ΡΠ΄ΠΊΠ΅ ΠΈΡ… ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ΠŸΡ€ΠΈ нСобходимости, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, эта ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π°.

3, 4, 5. Машина Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅, свойства. ДСтСрминированная машина Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°. НСдСтСрминированная машина Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π° Машина Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π° (МВ) — матСматичСская абстракция, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°. Π‘Ρ‹Π»Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Аланом Π’ΡŒΡŽΡ€ΠΈΠ½Π³ΠΎΠΌ Π² 1936 Π³ΠΎΠ΄Ρƒ для Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ понятия Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. Машина Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π° являСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½Π° ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ, дСйствиС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ дискрСтного состояния ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ.

Бвойства ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π° ΠΊΠ°ΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°:

Π”ΠΈΡΠΊΡ€Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ. Машина Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΡˆΠ°Π³Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС выполнСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шага, Ρ‚. ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ шаг опрСдСляСт, ΠΊΠ°ΠΊΠΈΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг.

ΠŸΠΎΠ½ΡΡ‚Π½ΠΎΡΡ‚ΡŒ. На ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС Π² ΡΡ‡Π΅ΠΉΠΊΡƒ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ символ ΠΈΠ· Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ (Π›, П, Н), ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π° Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Ρ… состояний.

Π”Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π° записан лишь ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ дСйствия. Если машинС Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π° Π½Π° Π²Ρ…ΠΎΠ΄ ΠΏΠΎΠ΄Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ΅ слово, Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ΅ слово ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ написанная машина Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π° Π·Π° ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ число шагов даст ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π²ΠΎΠΏΡ€ΠΎΡ Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠœΠ°ΡΡΠΎΠ²ΠΎΡΡ‚ΡŒ. КаТдая машина Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π½Π°Π΄ всСми допустимыми символами ΠΈΠ· Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°.

ДСтСрминированная машина Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π° ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, которая ΠΏΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π½Π° Π»Π΅Π½Ρ‚Π΅ опрСдСляСт Ρ‚Ρ€ΠΈ Π²Π΅Ρ‰ΠΈ: символ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ записан Π½Π° Π»Π΅Π½Ρ‚Π΅, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ смСщСния Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΏΠΎ Π»Π΅Π½Ρ‚Π΅ ΠΈ Π½ΠΎΠ²ΠΎΠ΅ состояниС ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π°. НапримСр, X Π½Π° Π»Π΅Π½Ρ‚Π΅ Π² ΡΠΎΡΡ‚оянии 3 ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ опрСдСляСт ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² ΡΠΎΡΡ‚ояниС 4, запись Π½Π° Π»Π΅Π½Ρ‚Ρƒ символа Y ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π²Π»Π΅Π²ΠΎ.

Π’ ΡΠ»ΡƒΡ‡Π°Π΅ Π½Π΅Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°, комбинация Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π½Π° Π»Π΅Π½Ρ‚Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ². НапримСр, X Π½Π° Π»Π΅Π½Ρ‚Π΅ ΠΈ ΡΠΎΡΡ‚ояниС 3 допускаСт ΠΊΠ°ΠΊ состояниС 4 с Π·Π°ΠΏΠΈΡΡŒΡŽ Π½Π° Π»Π΅Π½Ρ‚Ρƒ символа Y ΠΈ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π²ΠΏΡ€Π°Π²ΠΎ, Ρ‚Π°ΠΊ ΠΈ ΡΠΎΡΡ‚ояниС 5 с Π·Π°ΠΏΠΈΡΡŒΡŽ Π½Π° Π»Π΅Π½Ρ‚Ρƒ символа Z ΠΈ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π²Π»Π΅Π²ΠΎ.

6. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ развития ΠŸΠš Π’ 1969 Π³ΠΎΠ΄Ρƒ компания Honeywell выпускаСт «ΠšΡƒΡ…ΠΎΠ½Π½Ρ‹ΠΉ ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€» H316 — ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ домашний ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ (ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ 10 600 $).

Π’ 1974 Π³ΠΎΠ΄Ρƒ Ρ„ΠΈΡ€ΠΌΠ° MITS Π½Π°Ρ‡Π°Π»ΠΎ производство ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Altair 8800, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠ°ΠΊ считаСтся, ΠΏΠΎΠ»ΠΎΠΆΠΈΠ» Π½Π°Ρ‡Π°Π»ΠΎ всСм Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌ.

Π’ 1976 Π³ΠΎΠ΄Ρƒ начался кустарный выпуск Apple I — ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ послуТил ΠΏΡ€Π΅Π΄Ρ‚Π΅Ρ‡Π΅ΠΉ развития ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², Apple Computer.

Π’ ΠΈΡŽΠ½Π΅ 1977 Π³ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ сСрийно Π²Ρ‹ΠΏΡƒΡΠΊΠ°Π²ΡˆΠΈΠΉΡΡ Apple II ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ, Ρ†Π²Π΅Ρ‚Π½ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ, Π·Π²ΡƒΠΊ, пластиковый корпус ΠΈ Π²ΠΎΡΠ΅ΠΌΡŒ слотов Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ. «Apple II» ΠΏΠΎΠ»ΠΎΠΆΠΈΠ» Π½Π°Ρ‡Π°Π»ΠΎ Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΈ Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ²: это Π±Ρ‹Π»Π° машина для масс, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ, ΡƒΡ‡Ρ‘Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ².

Π’ ΠΈΡŽΠ½Π΅ 1981 Π³ΠΎΠ΄Π° Π±Ρ‹Π» Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ Texas Instruments TI-99/4A — ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ домашний ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ с 16-разрядным процСссором Texas Instruments TMS9900.

12 Π°Π²Π³ΡƒΡΡ‚Π° 1981 Π³ΠΎΠ΄Π° Ρ„ΠΈΡ€ΠΌΠ° IBM прСдставила ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ΅ ΠΏΠ΅Ρ€Π²ΡƒΡŽ модСль ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° IBM PC 5150, ΡΡ‚Π°Π²ΡˆΡƒΡŽ фактичСским Ρ€ΠΎΠ΄ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΈΠΊΠΎΠΌ соврСмСнных ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Intel x86.

Π’ ΡΠ½Π²Π°Ρ€Π΅ 1984 Π³ΠΎΠ΄Π° — ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΉ сСрийно выпускаСмый ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ с ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΡΡ‚ΠΎΡ€ΠΎΠΌ Ρ‚ΠΈΠΏΠ° «ΠΌΡ‹ΡˆΡŒ» ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ графичСским интСрфСйсом, Π½Π°Π·Π²Π°Π½Π½Ρ‹ΠΉ Apple Macintosh.

3 Π°ΠΏΡ€Π΅Π»Ρ 1986 Π³ΠΎΠ΄Π° — ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊ IBM PC Convertible ΠΎΡ‚ Ρ„ΠΈΡ€ΠΌΡ‹ IBM.

1990 Π³ΠΎΠ΄ — Ρ„ΠΈΡ€ΠΌΠ° Microsoft выпустила Windows 3.0.

1992 Π³ΠΎΠ΄ — появилась пСрвая бСсплатная опСрационная систСма с Π±ΠΎΠ»ΡŒΡˆΠΈΠΌΠΈ возмоТностями — Linux.

1993 Π³ΠΎΠ΄ — Ρ„ΠΈΡ€ΠΌΠ° Intel выпустила 32-разрядный микропроцСссор Pentium, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ состоял ΠΈΠ· 3,1 ΠΌΠ»Π½ транзисторов ΠΈ ΠΌΠΎΠ³ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ 112 ΠΌΠ»Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² ΡΠ΅ΠΊΡƒΠ½Π΄Ρƒ.

1995 Π³ΠΎΠ΄ — появилась опСрационная систСма Windows 95.

7. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Алгоримтм — Π½Π°Π±ΠΎΡ€ инструкций, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… порядок дСйствий исполнитСля для достиТСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Π·Π° ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ число дСйствий. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° относится ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ, основным, базисным понятиям ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

Бвойства Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°: Π΄ΠΈΡΠΊΡ€Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ, Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ (ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ), ΠΏΠΎΠ½ΡΡ‚Π½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ.

8. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π­Ρ‚ΠΎ Π»ΡŽΠ±Ρ‹Π΅ выраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с Π·Π°ΠΏΡΡ‚ΠΎΠΉ.

i++;

a=cos (b * 5);

9. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π΄Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния, имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΈΠΏΡ‹ ΠΈ Ρ‡ΠΈΡΠ»ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Ρ‚Π΅Π»ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ дСйствиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

int rus (unsigned char r)

{ if (r>='А' && c<=' ')

return 1;

else

return 0;

}

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

1. ВыраТСния Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΈ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°ΡŽΡ‚ся ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ арифмСтичСским прСобразованиям. Π—Π°Ρ‚Π΅ΠΌ Ρ‚ΠΈΠΏ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° сравниваСтся с Ρ‚ΠΈΠΏΠΎΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Если ΠΎΠ½ΠΈ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚, Ρ‚ΠΎ Π»ΠΈΠ±ΠΎ производится ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ², Π»ΠΈΠ±ΠΎ формируСтся сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅.

2. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ присваиваниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ фактичСских ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ.

3. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

4. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° return Π² Ρ‚Π΅Π»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. ΠŸΡ€ΠΈ отсутствии ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° return ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ возвращаСтся послС выполнСния послСднСго ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ.

10. ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ — пустой ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ (;). Он Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ. Но ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° синтаксис Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ присутствия ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π΅ Π½ΡƒΠΆΠ΅Π½.

11. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if.

If — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ условия.

if (условиС)

{ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹1}

else

{ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹2}

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ условия ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ любоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся булСвским (Ρ‚.Π΅. «Π΄Π°» ΠΈΠ»ΠΈ «Π½Π΅Ρ‚», «ΠΏΡ€Π°Π²Π΄Π°» ΠΈΠ»ΠΈ «Π»ΠΎΠΆΡŒ», true ΠΈΠ»ΠΈ false).

Полная Ρ„ΠΎΡ€ΠΌΠ° — с else, сокращСнная — Π±Π΅Π· else.

12. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ switch.

Switch — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° (ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ). ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ выполняСт ΠΎΠ΄ΠΈΠ½ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ вычисляСмого ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ выраТСния. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ ΠΎΡ‚ if ΡΠ²Π»ΡΠ΅Ρ‚ся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ switch Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅, Π° Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ сСкция default («ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ»), ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ выраТСния отличаСтся ΠΎΡ‚ Π²ΡΠ΅Ρ… ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ….

int a;

scanf («%d», &a);

switch (a)

{

case 1:

printf («Apple»);

break;

case 2:

printf («Banana»);

break;

default:

printf («Orange»);

break;

}

13. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ break.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ break Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ блиТайшСго внСшнСго ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° do, for, switch ΠΈΠ»ΠΈ while, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ Π½Π°Ρ…одится. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ располоТСн послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

14. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for.

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° for происходит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

1. ВычисляСтся Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

2. ВычисляСтся условноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Ρ‚Ρ€ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°:

— Π•ΡΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ условного выраТСния «ΠΈΡΡ‚ΠΈΠ½Π°», Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€. ΠŸΡ€ΠΎΡ†Π΅ΡΡ начинаСтся снова с Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ условного выраТСния.

— Π•ΡΠ»ΠΈ условноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ, Ρ‚ΠΎ ΡΡ‡ΠΈΡ‚аСтся, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «ΠΈΡΡ‚ΠΈΠ½Π°» ΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡ выполнСния ΠΏΡ€ΠΎΡ‚Π΅ΠΊΠ°Π΅Ρ‚ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ это описано Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС.

— Π•ΡΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ условного выраТСния «Π»ΠΎΠΆΡŒ», Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°

for прСкращаСтся ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

#include

int main (void)

{

int i;

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

printf («%dn», i);

return 0;

}

15. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π° while.

Π’Π΅Π»ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° while выполнится Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ выраТСния Π½Π΅ ΡΡ‚Π°Π½Π΅Ρ‚ «Π»ΠΎΠΆΡŒ». ΠŸΡ€ΠΎΡ†Π΅ΡΡ выполнСния ΠΏΡ€ΠΎΡ‚Π΅ΠΊΠ°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

1. ВычисляСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния.

2. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния Π΅ΡΡ‚ΡŒ «Π»ΠΎΠΆΡŒ», Ρ‚ΠΎ Ρ‚Π΅Π»ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° while Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся, ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ while ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

3. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния Π΅ΡΡ‚ΡŒ «ΠΈΡΡ‚ΠΈΠ½Π°», Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся Ρ‚Π΅Π»ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡ повторяСтся с ΡˆΠ°Π³Π° 1.

float x, a;

scanf_s («%f», &x); scanf_s («%f», &a);

while (x < a)

{

x += 0.5;

printf («%fn», x);

}

16. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π° do while.

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ происходит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

1. ВыполняСтся Ρ‚Π΅Π»ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

2. ВычисляСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Если Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «Π»ΠΎΠΆΡŒ», Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° do Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ся ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Если Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «ΠΈΡΡ‚ΠΈΠ½Π°» (Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅), Ρ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡ повторяСтся, начиная с ΡˆΠ°Π³Π° 1. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° do ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Ρ€Π²Π°Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° break, goto ΠΈΠ»ΠΈ return Π² Ρ‚Π΅Π»Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° do.

int i, j;

float x, a;

scanf_s («%f», &x); scanf_s («%f», &a);

do

{

printf («%f %fn», x, a);

x += 0.5;

}

while (x > a);

return 0;

17. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue Ρ‚ΠΎΠΆΠ΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для прСрывания Ρ†ΠΈΠΊΠ»Π°, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ for, while, do… while. Но Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° break, ΠΎΠ½ Π½Π΅ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ дальнСйшСС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π°, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°, Π² Ρ‚Π΅Π»Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ ΠΎΠΊΠ°Π·Π°Π»ΡΡ. Он ΠΊΠ°ΠΊ Π±Ρ‹ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π°, Π½ΠΎ Π½Π΅ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ самого Ρ†ΠΈΠΊΠ»Π°.

int a, b;

for (a=1,b=0; a<100; b+=a, a++)

{ if (b%2) continue;

/* ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… сумм */

return 0;

18. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ goto.

Return Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнт управлСния Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, возобновляСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ сразу послС Π²Ρ‹Π·ΠΎΠ²Π°.

int sum (int a, int b)

{renurn (a+b);}

Goto — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΉ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ строки Π»ΠΈΠ±ΠΎ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ.

for (){

goto exit;

}

exit: printf («Π‘ыстрый Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ²»);

19. ΠžΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠžΠΏΠ΅Ρ€Π°Π½Π΄ — это константа, пСрСмСнная, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ² ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π›ΡŽΠ±ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ константноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ‚ΠΈΠΏ. ЦСлая константа ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΈΠΏΠ° int, long, unsigned int, unsigned long, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ ΠΈ ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΡ‹ записи. Бимвольная константа ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ int. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ всСгда ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ double. Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π» состоит ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚авляСтся Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΊΠ°ΠΊ массив элСмСнтов Ρ‚ΠΈΠΏΠ° char.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ — это нСкоторая функция, которая выполняСтся Π½Π°Π΄ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ ΠΈ ΠΊΠΎΡ‚орая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ вычислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ — Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. КаТдой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² Π‘ΠΈ ΡΠΎΠΎΡ‚вСтствуСт свой Π·Π½Π°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ — ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²ΠΈΠ΄Π° [Π·Π½Π°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ] [ΠΎΠΏΠ΅Ρ€Π°Π½Π΄]

Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ — [ΠΎΠΏΠ΅Ρ€Π°Π½Π΄] [Π·Π½Π°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ] [ΠΎΠΏΠ΅Ρ€Π°Π½Π΄]

ΠΈ Ρ‚Π΅Ρ€Π½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ — [условиС]? [Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1]: [Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2].

20. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ нСявными, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΈΠ»ΠΈ явными, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ привСдСния Ρ‚ΠΈΠΏΠΎΠ².

Для прСобразования числа Π² ΡΡ‚Ρ€ΠΎΠΊΡƒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ, совмСстимой со ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΎΠΌ, являСтся использованиС стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sprintf.

Ѐункция itoa ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π² Ρ‡ΠΈΡΠ»ΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ корня. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ число записываСтся Π² Π±ΡƒΡ„Π΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π° buffer.

Ѐункция atoi ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ строки Π² Ρ‡ΠΈΡΠ»ΠΎΠ²ΠΎΠΉ Π²ΠΈΠ΄.

21. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ sizeof

Sizeof — это ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ Π΄Π»ΠΈΠ½Ρƒ Π² Π±Π°ΠΉΡ‚Π°Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠ° ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π² ΡΠΊΠΎΠ±ΠΊΠΈ. ИспользованиС sizeof ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ пСрСносимый ΠΊΠΎΠ΄ для Ρ‚Π΅Ρ… случаСв, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ зависит ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° стандартных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π‘.

float f;

printf («%f «, sizeof f);

printf («%d», sizeof (int));

22. ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. АддитивныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ *, / ΠΈ % Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. Π’Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ арифмСтичСскиС прСобразования.

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ * Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ / Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ % Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ АддитивныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ + ΠΈ — Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. Π’Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ арифмСтичСскиС прСобразования.

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ + Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ — Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

23. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сдвига ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сдвига << ΠΈ >> Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. ΠŸΡ€ΠΎΠ²ΠΎΠ΄ΡΡ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ арифмСтичСскиС прСобразования ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ цСлочислСнного Ρ‚ΠΈΠΏΠ°. Π—Π°Ρ‚Π΅ΠΌ ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ прСобразуСтся ΠΊ Ρ‚ΠΈΠΏΡƒ int; Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, Ссли ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»Π΅Π½ ΠΈΠ»ΠΈ большС, Ρ‡Π΅ΠΌ Π΄Π»ΠΈΠ½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Π±ΠΈΡ‚Π°Ρ….

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ << Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ >> Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ выраТСния Π΅1<<οΏ½Π΅2 являСтся Π΅1, сдвинутоС Π²Π»Π΅Π²ΠΎ Π½Π° Π΅2 Π±ΠΈΡ‚ΠΎΠ²; ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π±ΠΈΡ‚Ρ‹ Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½ΡƒΠ»Π΅ΠΌ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ выраТСния Π΅1>>Π΅2 являСтся Π΅1, сдвинутоС Π²ΠΏΡ€Π°Π²ΠΎ Π½Π° Π΅2 Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ.

24. ΠŸΠΎΡ€Π°Π·Ρ€ΡΠ΄Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠŸΠΎΡ€Π°Π·Ρ€ΡΠ΄Π½Ρ‹Π΅ (ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ цСлочислСнными ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π°ΠΌΠΈ. Π­Ρ‚ΠΈ дСйствия Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ° float, double ΠΈΠ»ΠΈ long double. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. К ΠΏΠΎΡ€Π°Π·Ρ€ΡΠ΄Π½Ρ‹ΠΌ опСрациям относятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

& (ΠΈΠ»ΠΈ and),

| (ΠΈΠ»ΠΈ OR),

^ (ΠΈΠ»ΠΈ XOR),

— (ΠΈΠ»ΠΈ NOT),

сдвиг Π²Π»Π΅Π²ΠΎ, сдвиг Π²ΠΏΡ€Π°Π²ΠΎ.

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

25. ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ || Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ || группируСтся слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. Она Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 1, Ссли ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΎΡ‚Π»ΠΈΡ‡Π΅Π½ ΠΎΡ‚ Π½ΡƒΠ»Ρ, ΠΈ 0 Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ | опСрация || Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ вычислСниС слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ; Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ссли ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΎΡ‚Π»ΠΈΡ‡Π΅Π½ ΠΎΡ‚ Π½ΡƒΠ»Ρ, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΠ΅Ρ‚ся. ΠžΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Π»ΠΈΠ±ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ всСгда ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ int.

26. Условная опСрация Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅? Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅: Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ УсловныС выраТСния Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. ВычисляСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ выраТСния, ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ Π½ΡƒΠ»Ρ, Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ выраТСния; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ выраТСния. Если это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, проводятся ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ арифмСтичСскиС прСобразования, с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ привСсти Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ выраТСния ΠΊ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ Ρ‚ΠΈΠΏΡƒ; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, Ссли ΠΎΠ±Π° выраТСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ указатСлями ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏ.

27. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ увСличСния ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ ΠžΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ 1-Π³ΠΎ значСния прСфиксной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ++, увСличиваСтся. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ++Ρ… эквивалСнтно Ρ…+=1.

ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ постфиксной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ — ΠΊ l-ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся l-Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ принят ΠΊ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡŽ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠ»ΡƒΡ‡Π°Π΅ прСфиксной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏ, Ρ‡Ρ‚ΠΎ ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ l-Π³ΠΎ значСния.

28. ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ присваиваниС

l-Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Когда производится простоС присваиваниС с '=', Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния замСняСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ссылаСтся l-Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если ΠΎΠ±Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° ΠΈΠΌΠ΅ΡŽΡ‚ арифмСтичСский Ρ‚ΠΈΠΏ, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ присваиваниСм ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ прСобразуСтся ΠΊ Ρ‚ΠΈΠΏΡƒ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°.

29. ВСория Ρ‚ΠΈΠΏΠΎΠ². Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ВСория Ρ‚ΠΈΠΏΠΎΠ² — какая-Π»ΠΈΠ±ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ систСма, ΡΠ²Π»ΡΡŽΡ‰Π°ΡΡΡ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ Π½Π°ΠΈΠ²Π½ΠΎΠΉ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ мноТСств, сопровоТдаСмая классификациСй элСмСнтов Ρ‚Π°ΠΊΠΎΠΉ систСмы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΈΠΏΠΎΠ², ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΡ… Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ.

ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° — ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ устройств для хранСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

ВнутрСнняя ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для хранСния ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ Π΅Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ микропроцСссором. Π’Π½Π΅ΡˆΠ½ΡΡ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ хранСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈΠ»ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

ЭнСргозависимой называСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ, которая стираСтся ΠΏΡ€ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. ЭнСргонСзависимой называСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ, которая Π½Π΅ ΡΡ‚ираСтся ΠΏΡ€ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

Устройства памяти с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ доступом ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌΡƒ Π±Π»ΠΎΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π·Π° ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ врСмя доступа. Устройства памяти с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ доступом ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚. Π΅. для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ памяти, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ всС ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ.

30. ВСория ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² ANSI C

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Π² ΡΠ·Ρ‹ΠΊΠ΅ C — это имСнованная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ содСрТится ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ: Ρ‚ΠΈΠΏ: Ρ€Π°Π·ΠΌΠ΅Ρ€ выдСляСмой памяти (цСлочислСнныС — int, char, long ΠΈ Π²Π΅Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ — float, double, long double); имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ: любоС английскоС Π½Π°Π·Π²Π°Π½ΠΈΠ΅; Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€) ΠΌΠΎΠΆΠ½ΠΎ сразу ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для нашСй ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

ВсС Π΄Π°Π½Π½Ρ‹Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹: константы ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. К ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ относятся Π΄Π°Π½Π½Ρ‹Π΅, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ своСго значСния Π² Ρ…ΠΎΠ΄Π΅ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π΄Π°Π½Π½Ρ‹Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ своС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ схСмой.

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ (скалярныС) Ρ‚ΠΈΠΏΡ‹: Ρ†Π΅Π»Ρ‹Π΅, вСщСствСнныС, ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, пСрСчислимый Ρ‚ΠΈΠΏ. БоставныС (структурированныС) Ρ‚ΠΈΠΏΡ‹: массив, структура, объСдинСниС.

31, 32, 33. ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠ°Ρ ΠΈ Π³Π°Ρ€Π²Π°Ρ€Π΄ΡΠΊΠ°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. ΠŸΠΎΠ½ΡΡ‚ΠΈΡ, свойства. ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π“Π°Ρ€Π²Π°Ρ€Π΄Π°.

Гарвардская Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° — Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π­Π’Πœ, ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

1. Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ инструкций ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Ρ€Π°Π·Π½Ρ‹Π΅ физичСскиС устройства.

2. Канал инструкций ΠΈ ΠΊΠ°Π½Π°Π» Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°ΠΊΠΆΠ΅ физичСски Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹.

АрхитСктура Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π“ΠΎΠ²Π°Ρ€Π΄ΠΎΠΌ Π­ΠΉΠΊΠ΅Π½ΠΎΠΌ Π² ΠΊΠΎΠ½Ρ†Π΅ 1930;Ρ… Π³ΠΎΠ΄ΠΎΠ² Π² Π“арвардском унивСрситСтС.

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠ°Ρ гарвардская Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (слоТСниС ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅) Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΎΡ‚ Π»ΡŽΠ±ΠΎΠ³ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ устройства Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… дСйствий: Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ Π΄Π²ΡƒΡ… ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ², Π²Ρ‹Π±ΠΎΡ€ инструкции ΠΈ Π΅Ρ‘ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, сохранСниС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Π’ Π³Π°Ρ€Π²Π°Ρ€Π΄ΡΠΊΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ характСристики устройств памяти для инструкций ΠΈ ΠΏΠ°ΠΌΡΡ‚ΠΈ для Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ. Π’ Ρ‡Π°ΡΡ‚ности, ΡˆΠΈΡ€ΠΈΠ½Π° слова, Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, тСхнология Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° адрСсов памяти ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ.

АрхитСктура Π“Π°Ρ€Π²Π°Ρ€Π΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ нСдостаток — Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ. ΠŸΡ€ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΊΡ€ΠΈΡΡ‚Π°Π»Π»Π΅ процСссора послСдний Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ Π²Π΄Π²ΠΎΠ΅ большС Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ шина адрСса ΠΈ ΡˆΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² микропроцСссора. Бпособом Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ стала идСя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ ΡˆΠΈΠ½Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡˆΠΈΠ½Ρƒ адрСса для всСх Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ процСссора ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠΈΠ½Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΡˆΠΈΠ½Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π΄Π²Π΅ ΡˆΠΈΠ½Ρ‹ адрСса. Π’Π°ΠΊΡƒΡŽ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ стали Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ гарвардской Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ. Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ шин Π² ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ гарвардской структурС осущСствляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… сигналов: чтСния, записи ΠΈΠ»ΠΈ Π²Ρ‹Π±ΠΎΡ€Π° области памяти. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ примСняСтся Π² ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹Ρ… процСссорах.

34. АрхитСктура Π€ΠΎΠ½ НСймана.

АрхитСктура Ρ„ΠΎΠ½ НСймана — ΡˆΠΈΡ€ΠΎΠΊΠΎ извСстный ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ совмСстного хранСния ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС, ΠΊΠΎΠ³Π΄Π° говорят ΠΎΠ± Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Ρ„ΠΎΠ½ НСймана, ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΉ памяти. Π”Π°Ρ‚Π° создания — 1946 Π³ΠΎΠ΄.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ„ΠΎΠ½ НСймана

1) ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ однородности памяти ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ хранятся Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ памяти ΠΈ Π²Π½Π΅ΡˆΠ½Π΅ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ Π½Π΅Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΌΡ‹. Π Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΡΠΏΠΎΡΠΎΠ±Ρƒ использования (ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΡΡ‡Π΅ΠΉΠΊΠ΅ памяти ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΈ ΠΊΠ°ΠΊ адрСс Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ лишь ΠΎΡ‚ ΡΠΏΠΎΡΠΎΠ±Π° обращСния ΠΊ Π½Π΅ΠΌΡƒ).

2) ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ адрСсности Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΠΎ основная ΠΏΠ°ΠΌΡΡ‚ΡŒ состоит ΠΈΠ· ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ячССк, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ процСссору Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ доступна любая ячСйка. Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… хранятся Π² ΡΡ‡Π΅ΠΉΠΊΠ°Ρ… памяти, Π° Π΄Π»Ρ доступа ΠΊ Π½ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½ΠΎΠΌΠ΅Ρ€Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ячССк — адрСса.

3) ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ управлСния ВсС вычислСния, прСдусмотрСнныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ прСдставлСны Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, состоящСй ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… слов — ΠΊΠΎΠΌΠ°Π½Π΄. КаТдая ΠΊΠΎΠΌΠ°Π½Π΄Π° прСдписываСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ машиной.

4) ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ кодирования Вся информация, ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ 0 ΠΈ 1. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ прСдставляСтся Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ свой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΠΈΡ‚ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΈΠΌΠ΅ΡŽΡ‰Π°Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ смысл, называСтся ΠΏΠΎΠ»Π΅ΠΌ.

35. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ динамичСской ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ДинамимчСская пСрСмСмнная — пСрСмСнная Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, мСсто Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΏΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ выдСляСтся Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. По ΡΡƒΡ‚ΠΈ, ΠΎΠ½Π° являСтся Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° ΡƒΡ‡Π°ΡΡ‚ΠΊΠΎΠΌ памяти, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ систСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ.

Π’Π°ΠΊ ΠΊΠ°ΠΊ динамичСская пСрСмСнная создаётся Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρƒ Π½Π΅Ρ‘ Π½Π΅Ρ‚ собствСнного ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. Π Π°Π±ΠΎΡ‚Π° с Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ вСдётся косвСнно, Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ участка памяти с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ malloc. Π­Ρ‚Π° функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ адрСс Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ назначаСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ. ПослС окончания Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄ Π½Π΅Ρ‘ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ — для этого Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ функция free.

void *malloc (int size);

// Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π² size Π±Π°ΠΉΡ‚ΠΎΠ² ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ адрСс

void free (void *p);

// ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ p

void *realloc (void *p, int size);

// Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти Π΄ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° size, ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ адрСса ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ староС содСрТимоС Π±Π»ΠΎΠΊΠ°

36. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ указатСля Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ — пСрСмСнная, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ состоит ΠΈΠ· Π°Π΄Ρ€Π΅ΡΠΎΠ² ячССк памяти ΠΈΠ»ΠΈ Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ адрСса. ПослСднСС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для указания Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ‚Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ. Π’ΠΈΠΏ указатСля опрСдСляСт Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ.

int i; // цСлая пСрСмСнная

const int ci = 1; // цСлая константа

int* pi; // ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ†Π΅Π»ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ

const int * pci; // ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ†Π΅Π»ΡƒΡŽ константу

37. ДинамичСский массив ДинамичСским называСтся массив, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ДинамичСскиС массивы Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π΅ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΎΠ±ΡŠΡ‘ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива Π² ΡΠΎΠΎΡ‚вСтствии с Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ ΠΎΠ±ΡŠΡ‘ΠΌΠ°ΠΌΠΈ. ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ динамичСского массива ΠΎΡ‚ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ являСтся автоматичСскоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ².

int *mas = malloc (sizeof (int) * 10);

38. ΠžΠ±ΠΌΠ΅Π½Π½Ρ‹Π΅ сортировки: сортировка ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠΌ Алгоритм состоит ΠΈΠ· ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌΡƒ массиву. Π—Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ элСмСнты ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠΏΠ°Ρ€Π½ΠΎ ΠΈ, Ссли порядок Π² ΠΏΠ°Ρ€Π΅ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ, выполняСтся ΠΎΠ±ΠΌΠ΅Π½ элСмСнтов. ΠŸΡ€ΠΎΡ…ΠΎΠ΄Ρ‹ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρƒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ Π½Π΅ ΠΎΠΊΠ°ΠΆΠ΅Ρ‚ся, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΠΌΠ΅Π½Ρ‹ большС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ — массив отсортирован. ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌΡƒ Ρ†ΠΈΠΊΠ»Ρƒ, ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ наибольший элСмСнт массива ставится Π½Π° ΡΠ²ΠΎΡ‘ мСсто Π² ΠΊΠΎΠ½Ρ†Π΅ массива рядом с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ «Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠΈΠΌ элСмСнтом», Π° Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΠΉ элСмСнт пСрСмСщаСтся Π½Π° ΠΎΠ΄Π½Ρƒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ массива («Π²ΡΠΏΠ»Ρ‹Π²Π°Π΅Ρ‚» Π΄ΠΎ Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΊΠ°ΠΊ ΠΏΡƒΠ·Ρ‹Ρ€Ρ‘ΠΊ Π² Π²ΠΎΠ΄Π΅, ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°). Для понимания ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этот Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ — ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ, Π½ΠΎ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΎΠ½ Π»ΠΈΡˆΡŒ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов.

39. ΠžΠ±ΠΌΠ΅Π½Π½Ρ‹Π΅ сортировки: быстрая сортировка Быстрая сортировка — Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортировки, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ английским ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΌ Π§Π°Ρ€Π»ΡŒΠ·ΠΎΠΌ Π₯ΠΎΠ°Ρ€ΠΎΠΌ Π² 1960 Π³ΠΎΠ΄Ρƒ. Из-Π·Π° наличия ряда нСдостатков Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ°ΠΌΠΈ.

Алгоритм:

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠΏΠΎΡ€Π½Ρ‹ΠΌ элСмСнтом.

Π Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ массив Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС элСмСнты со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ мСньшим ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Ρ‹ΠΌ ΠΎΠΏΠΎΡ€Π½ΠΎΠΌΡƒ элСмСнту, оказались слСва ΠΎΡ‚ Π½Π΅Π³ΠΎ, Π° Π²ΡΠ΅ элСмСнты, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΎΠΏΠΎΡ€Π½Ρ‹ΠΉ — справа ΠΎΡ‚ Π½Π΅Π³ΠΎ. ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

РСкурсивно упорядочиваСм подмассивы, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ слСва ΠΈ ΡΠΏΡ€Π°Π²Π° ΠΎΡ‚ ΠΎΠΏΠΎΡ€Π½ΠΎΠ³ΠΎ элСмСнта. Π‘Π°Π·ΠΎΠΉ рСкурсии ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°Π±ΠΎΡ€Ρ‹, состоящиС ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π΄Π²ΡƒΡ… элСмСнтов. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ возвращаСтся Π² ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ, ΠΏΡ€ΠΈ нСобходимости, сортировка сводится ΠΊ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ΅ Π΄Π²ΡƒΡ… элСмСнтов. Π”Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Ρ€Π΅Π·ΠΊΠΈ ΡƒΠΆΠ΅ упорядочСны Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ раздСлСния.

40. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° вставками Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° вставками — ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортировки с Π²Ρ‹ΡΠΎΠΊΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. На ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²ΡΡ‚авляСм Π΅Π³ΠΎ Π½Π° Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π² ΡƒΠΆΠ΅ отсортированном спискС, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π°Π±ΠΎΡ€ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ исчСрпан. Как ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π±ΠΎΡ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ практичСски любой Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π²Ρ‹Π±ΠΎΡ€Π°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ элСмСнты Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎ ΠΏΠΎΡ€ΡΠ΄ΠΊΡƒ ΠΈΡ… ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌ массивС.

41. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π¨Π΅Π»Π»Π° Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π¨Π΅Π»Π»Π° — Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортировки, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ сортировки вставками. ИдСя ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π¨Π΅Π»Π»Π° состоит Π² ΡΡ€Π°Π²Π½Π΅Π½ΠΈΠΈ элСмСнтов, стоящих Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ рядом, Π½ΠΎ ΠΈ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ расстоянии Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°.

ΠŸΡ€ΠΈ сортировкС Π¨Π΅Π»Π»Π° сначала ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ собой значСния, стоящиС ΠΎΠ΄ΠΈΠ½ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ расстоянии d. ПослС этого ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° повторяСтся для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ΅Π½ΡŒΡˆΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ d, Π° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ся сортировка Π¨Π΅Π»Π»Π° упорядочиваниСм элСмСнтов ΠΏΡ€ΠΈ d=1. Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ сортировки Π¨Π΅Π»Π»Π° Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… случаях обСспСчиваСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ элСмСнты «Π±Ρ‹ΡΡ‚Ρ€Π΅Π΅» Π²ΡΡ‚Π°ΡŽΡ‚ Π½Π° ΡΠ²ΠΎΠΈ мСста (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ²ΠΎΠΉ, каТдая пСрСстановка Π΄Π²ΡƒΡ… элСмСнтов ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ количСство инвСрсий Π² ΡΠΏΠΈΡΠΊΠ΅ максимум Π½Π° 1, Π° ΠΏΡ€ΠΈ сортировкС Π¨Π΅Π»Π»Π° это число ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ большС).

42. Алгоритм BogoSort

Bogosort (Ρ‚Π°ΠΊΠΆΠ΅ случайная сортировка, сортировка Ρ€ΡƒΠΆΡŒΡ ΠΈΠ»ΠΈ обСзьянья сортировка) являСтся ΠΎΡ‡Π΅Π½ΡŒ нСэффСктивным Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ сортировки. Π•Ρ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… цСлях, противопоставляя Π΄Ρ€ΡƒΠ³ΠΈΠΌ, Π±ΠΎΠ»Π΅Π΅ рСалистичным Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ. Если bogosort ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для сортировки ΠΊΠΎΠ»ΠΎΠ΄Ρ‹ ΠΊΠ°Ρ€Ρ‚, Ρ‚ΠΎ ΡΠ½Π°Ρ‡Π°Π»Π° Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π»Π΅ΠΆΠ°Ρ‚ Π»ΠΈ всС ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΏΠΎ ΠΏΠΎΡ€ΡΠ΄ΠΊΡƒ, ΠΈ Π΅ΡΠ»ΠΈ Π½Π΅ Π»Π΅ΠΆΠ°Ρ‚, Ρ‚ΠΎ ΡΠ»ΡƒΡ‡Π°ΠΉΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ Π΅Ρ‘, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π»Π΅ΠΆΠ°Ρ‚ Π»ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ всС ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΏΠΎ ΠΏΠΎΡ€ΡΠ΄ΠΊΡƒ, ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ процСсс, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡ‚сортируСтся ΠΊΠΎΠ»ΠΎΠ΄Π°.

Колода Π² 32 ΠΊΠ°Ρ€Ρ‚Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ, Π² ΡΡ€Π΅Π΄Π½Π΅ΠΌ, Π»Π΅Ρ‚.

43. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ ΠΎΡ†Π΅Π½ΠΊΠΈ слоТности Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° БущСствуСт нСсколько способов измСрСния слоТности Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ — трСбования ΠΊ ΠΎΠ±ΡŠΡ‘ΠΌΡƒ памяти, свободному мСсту Π½Π° Π΄ΠΈΡΠΊΠ΅. ИспользованиС быстрого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ, Ссли для Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ понадобится большС памяти, Ρ‡Π΅ΠΌ Π΅ΡΡ‚ΡŒ Ρƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

Основной ΠΎΡ†Π΅Π½ΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ слоТности Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° f (n) являСтся ΠΎΡ†Π΅Π½ΠΊΠ°. Π—Π΄Π΅ΡΡŒ n — Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° ΠΎΠ±ΡŠΡ‘ΠΌΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π΄Π»ΠΈΠ½Π° Π²Ρ…ΠΎΠ΄Π°. ΠœΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΡ†Π΅Π½ΠΊΠ° слоТности Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

Ссли ΠΏΡ€ΠΈ g > 0 ΠΏΡ€ΠΈ n > 0 ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ с1, с2, n0, Ρ‚Π°ΠΊΠΈΠ΅, Ρ‡Ρ‚ΠΎ:

ΠΏΡ€ΠΈ n > n0, ΠΈΠ½Π°Ρ‡Π΅ говоря, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ с1 ΠΈ c2, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ достаточно Π±ΠΎΠ»ΡŒΡˆΠΈΡ… n f (n) Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΌΠ΅ΠΆΠ΄Ρƒ

ΠΈ .

Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС говорят Π΅Ρ‰Ρ‘, Ρ‡Ρ‚ΠΎ функция g (n) являСтся асимптотичСски Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΎΡ†Π΅Π½ΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f (n), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ функция f (n) Π½Π΅ ΠΎΡ‚личаСтся ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ g (n) с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ ΠΏΠΎΡΡ‚оянного мноТитСля.

44. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ — абстрактный Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚, число Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… состояний ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° опрСдСляСтся ΠΏΠΎ Π΅Π³ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ.

ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² ΡΠΎΡΡ‚оянии q0, считывая ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ символу Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ. Π‘Ρ‡ΠΈΡ‚Π°Π½Π½Ρ‹ΠΉ символ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ Π² Π½ΠΎΠ²ΠΎΠ΅ состояниС Π² ΡΠΎΠΎΡ‚вСтствии с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ². Читая Π²Ρ…ΠΎΠ΄Π½ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ x ΠΈ Π΄Π΅Π»Π°Ρ ΠΎΠ΄ΠΈΠ½ Ρ‚Π°ΠΊΡ‚ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚, послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ послСднюю Π±ΡƒΠΊΠ²Ρƒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ, окаТСтся Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ состоянии q'. Если это состояниС являСтся Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΡΡ‚, Ρ‡Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ допустил Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ x. ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρ‹ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΡΠΈΠ½Ρ‚аксичСских ΠΈ Π»Π΅ΠΊΡΠΈΡ‡Π΅ΡΠΊΠΈΡ… Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°Ρ…, тСстировании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.

45. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ — систСма ΠΊΠΎΠΌΠ°Π½Π΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, которая интСрпрСтируСтся нСпосрСдствСнно процСссором ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ этой Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. КаТдая инструкция выполняСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ дСйствиС, Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ опСрация с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ участку ΠΊΠΎΠ΄Π°. КаТдая исполнимая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° состоит ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚Π°ΠΊΠΈΡ… инструкций. ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ язык программирования ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ самый Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ прСдставлСния скомпилированных ΠΈΠ»ΠΈ ассСмблированных ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π₯отя Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прямо Π² ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, сСйчас это дСлаСтся Ρ€Π΅Π΄ΠΊΠΎ Π² ΡΠΈΠ»Ρƒ громоздкости ΠΊΠΎΠ΄Π° ΠΈ Ρ‚рудоёмкости управлСния рСсурсами процСссора, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ситуаций, ΠΊΠΎΠ³Π΄Π° трСбуСтся ΡΠΊΡΡ‚Ρ€Π΅ΠΌΠ°Π»ΡŒΠ½Π°Ρ оптимизация.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ — Π½Π΅ΠΊΠΈΠΉ тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанный Π±Π΅Π· спСцифичСских для ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ языка программирования ΠΊΠΎΠΌΠ°Π½Π΄, Π½ΠΎ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ оставлСны названия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, названия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, позволяСт Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ ΠΊ Π½Π΅ΠΌΡƒ ΠΈΠ· Π»ΡŽΠ±ΠΎΠ³ΠΎ языка программирования. Π‘Π±ΠΎΡ€ΠΊΠ° (компиляция) слоТных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ происходит Π² Π΄Π²Π° этапа — сначала ΠΈΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап (написаниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°), Π° Π·Π°Ρ‚Π΅ΠΌ ΡƒΠΆΠ΅ ΠΈΠ΄Π΅Ρ‚ компиляция, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ исполняСмый Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π£ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ прСимущСство — Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ сто Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‚ компиляции. ΠŸΡ€ΠΈ запускС компиляции Π²Ρ‹ Π²Π΄Ρ€ΡƒΠ³ Π·Π°ΠΌΠ΅Ρ‡Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² происходит ошибка. Π’ ΡΡ‚ΠΎΠΌ случаС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот Ρ„Π°ΠΉΠ», ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π½Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π·Π°Π½ΠΎΠ²ΠΎ ΠΈ Π·Π°Ρ‚Π΅ΠΌ пСрСсобираСтС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС сто Ρ„Π°ΠΉΠ»ΠΎΠ² Π·Π°Π½ΠΎΠ²ΠΎ.

Π˜ΡΡ…ΠΎΠΌΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ — тСкст ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ языкС программирования ΠΈΠ»ΠΈ языкС Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡Ρ‚Ρ‘Π½ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ транслируСтся Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Π΄ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ компилятора, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ сразу ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для получСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π»ΠΈΠ±ΠΎ выполняСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ. ИзмСнСния Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ся Π½Π°Π΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π΄ исходным, с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ. Π”Ρ€ΡƒΠ³ΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ исходного ΠΊΠΎΠ΄Π° — Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ описания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. По Ρ‚Сксту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Π΅Ρ‘ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ. Для облСгчСния понимания исходного ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

46. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ компилятора ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Ρ‰ΠΈΠΊΠ° ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ выполняСт Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ (ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, составлСнной Π½Π° ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΌ языкС высокого уровня, Π² ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌ языкС, Π±Π»ΠΈΠ·ΠΊΠΎΠΌ ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ (Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π° ΡΠ·Ρ‹ΠΊ ассСмблСра). Π’Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ для компилятора (исходный ΠΊΠΎΠ΄) являСтся описаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ языкС, Π° Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ компилятора — эквивалСнтноС описаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ языкС (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄).

Π›ΠΈΠ½ΠΊΠΎΠ²Ρ‰ΠΈΠΊ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠΎ Π½ΠΈΠΌ исполнимый ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Для связывания ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π»ΠΈΠ½ΠΊΠΎΠ²Ρ‰ΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ символов, созданныС компилятором Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π’Π°ΠΊΠΆΠ΅ Π»ΠΈΠ½ΠΊΠΎΠ²Ρ‰ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ.

47. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ стСка Π‘Ρ‚Π΅ΠΊ (Π°Π½Π³Π». стопка) — структура Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ собой список элСмСнтов, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ LIFO (Π°Π½Π³Π». last in — first out, «ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΏΡ€ΠΈΡˆΡ‘Π» — ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅Π»»). Π§Π°Ρ‰Π΅ всСго ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ стСка ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ со ΡΡ‚ΠΎΠΏΠΊΠΎΠΉ Ρ‚Π°Ρ€Π΅Π»ΠΎΠΊ: Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π·ΡΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΡƒΡŽ свСрху, Π½ΡƒΠΆΠ½ΠΎ ΡΠ½ΡΡ‚ΡŒ Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ стСка являСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ стСка. Если стСк пуст, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ указатСля Ρ€Π°Π²Π½ΠΎ NULL.

struct stack

{

char *data;

struct stack *next;

};

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Ρ‚Ρ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со ΡΡ‚Π΅ΠΊΠΎΠΌ: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнта (push), ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта (pop) ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠ³ΠΎ элСмСнта (peek). ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ (push) указываСтся Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ Π±Ρ‹Π²ΡˆΠΈΠΉ Π΄ΠΎ ΡΡ‚ΠΎΠ³ΠΎ самым Π²Π΅Ρ€Ρ…Π½ΠΈΠΌ. Новый элСмСнт Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ становится Π³ΠΎΠ»ΠΎΠ²Π½Ρ‹ΠΌ. ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ элСмСнта убираСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ, Π° Π³ΠΎΠ»ΠΎΠ²Π½Ρ‹ΠΌ становится Ρ‚ΠΎΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Ρƒ ΡΡ‚ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт).

48. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ Π΄Π΅ΠΊΠ° Π”Π΅ΠΊ (двухсторонняя ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ) — структура Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ элСмСнты ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊ Π² Π½Π°Ρ‡Π°Π»ΠΎ, Ρ‚Π°ΠΊ ΠΈ Π² ΠΊΠΎΠ½Π΅Ρ†, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ дисциплинами обслуТивания ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ FIFO ΠΈ LIFO.

push_front (Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π½Π°Ρ‡Π°Π»ΠΎ Π΄Π΅ΠΊΠ° Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт)

push_back (Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ½Π΅Ρ† Π΄Π΅ΠΊΠ° Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт)

pop_front (Π˜Π·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· Π΄Π΅ΠΊΠ° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт)

pop_back (Π˜Π·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· Π΄Π΅ΠΊΠ° послСдний элСмСнт)

front (Π£Π·Π½Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта (Π½Π΅ ΡƒΠ΄Π°Π»ΡΡ сам элСмСнт))

back (Π£Π·Π½Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ послСднСго элСмСнта (Π½Π΅ ΡƒΠ΄Π°Π»ΡΡ сам элСмСнт))

size (Π£Π·Π½Π°Ρ‚ΡŒ количСство элСмСнтов Π² Π΄Π΅ΠΊΠ΅)

clear (ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄Π΅ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ)

49. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠžΠΌΡ‡Π΅Ρ€Π΅Π΄ΡŒ — структура Π΄Π°Π½Π½Ρ‹Ρ… с Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½ΠΎΠΉ доступа ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ «ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΡˆΡ‘Π» — ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅Π»» (FIFO, First In — First Out). Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнта (enqueue) Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ лишь Π² ΠΊΠΎΠ½Π΅Ρ† ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° — Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Π½Π°Ρ‡Π°Π»Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ (dequeue), ΠΏΡ€ΠΈ этом Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ элСмСнт ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ удаляСтся.

БущСствуСт нСсколько способов Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π² ΡΠ·Ρ‹ΠΊΠ°Ρ… программирования. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ способ прСдставляСт ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π² Π²ΠΈΠ΄Π΅ массива ΠΈ Π΄Π²ΡƒΡ… цСлочислСнных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… start ΠΈ end. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ start ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π³ΠΎΠ»ΠΎΠ²Ρƒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, end — Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ заполнится, ΠΊΠΎΠ³Π΄Π° Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π²ΠΎΠΉΠ΄Ρ‘Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт. ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ элСмСнта Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π² q[end] записываСтся Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, Π° end ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ end становится мСньшС 1, Ρ‚ΠΎ ΠΌΡ‹ ΠΊΠ°ΠΊ Π±Ρ‹ цикличСски ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ массив ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ становится Ρ€Π°Π²Π½Ρ‹ΠΌ n. Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ производится Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ: послС извлСчСния элСмСнта q[start] ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ пСрСмСнная start ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π½Π° 1.

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

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ основан Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ прСдставляСтся Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ списка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅/ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов ΠΈΠ΄Π΅Ρ‚ строго с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ†ΠΎΠ². ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ лишь ΠΎΠ±ΡŠΡ‘ΠΌΠΎΠΌ памяти. НСдостатки: слоТнСС Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅; трСбуСтся большС памяти; Ρ€Π°Π±ΠΎΡ‚Π° с ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒΡŽ нСсколько ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅.

50. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²Π° ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π”Π΅Ρ€Π΅Π²ΠΎ — структура Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅, ΡΠΌΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡƒΡŽ структуру Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡ€Π° связанных ΡƒΠ·Π»ΠΎΠ². ЯвляСтся связанным Π³Ρ€Π°Ρ„ΠΎΠΌ, Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΠΈΠΌ Ρ†ΠΈΠΊΠ»Ρ‹.

ΠšΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΡƒΠ·Π΅Π» — самый Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ·Π΅Π» Π΄Π΅Ρ€Π΅Π²Π° (ΡƒΠ·Π΅Π» 2 Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅).

ΠšΠΎΡ€Π΅Π½ΡŒ — ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½.

Лист — ΡƒΠ·Π΅Π», Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… элСмСнтов (ΡƒΠ·Π»Ρ‹ 2, 4, 5, 11).

Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΡƒΠ·Π΅Π» — любой ΡƒΠ·Π΅Π» Π΄Π΅Ρ€Π΅Π²Π°, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² (7, 5, 6, 9).

ΠŸΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ — Ρ‡Π°ΡΡ‚ΡŒ Π΄Ρ€Π΅Π²ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠΉ структуры Π΄Π°Π½Π½Ρ‹Ρ…, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСна Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°.

Π’Π°Π±Π»ΠΈΡ†Π° — Π²Π΅ΠΊΡ‚ΠΎΡ€, элСмСнтами ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ записи. Π₯Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎΠΉ логичСской ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‚Π°Π±Π»ΠΈΡ† являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ доступ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ производится Π½Π΅ ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ (индСксу), Π° ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ. ΠšΠ»ΡŽΡ‡ — это свойство, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ Π΄Π°Π½Π½ΡƒΡŽ запись Π²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… записСй. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΊ ΠΊΠ»ΡŽΡ‡Ρƒ ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅. ΠšΠ»ΡŽΡ‡ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² ΡΠΎΡΡ‚Π°Π² записи ΠΈ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΅Π΅ ΠΏΠΎΠ»Π΅ΠΉ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² Π·Π°ΠΏΠΈΡΡŒ, Π° Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒΡΡ ΠΏΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ записи. Π’Π°Π±Π»ΠΈΡ†Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.

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

51. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ структуры ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π² ΡΠ·Ρ‹ΠΊΠ΅ ANSI C

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° — это ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ структур ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² ΡΠΌΠ΅ΠΆΠ½Ρ‹Ρ… полях связанныС ΠΌΠ΅ΠΆΠ΄Ρƒ собой элСмСнты ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ОбъявлСниС структуры создаСт шаблон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит структура, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‡Π»Π΅Π½Π°ΠΌΠΈ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ‡Π»Π΅Π½Ρ‹ структуры связаны Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΠΎ ΡΠΌΡ‹ΡΠ»Ρƒ. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово struct сообщаСт компилятору, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ структура.

ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ структуры ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

struct str_name

{

int member1;

float member2;

char member3[256];

}

ОбъСдинСниС — структура Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Π»Π΅Π½Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ располоТСны ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ адрСсу. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€ объСдинСния Ρ€Π°Π²Π΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ Π΅Π³ΠΎ наибольшСго Ρ‡Π»Π΅Π½Π°. Π’ Π»ΡŽΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ объСдинСниС Ρ…Ρ€Π°Π½ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ‡Π»Π΅Π½ΠΎΠ². ОбъСдинСния часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ нСобходимости прСобразования Ρ‚ΠΈΠΏΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, хранящимся Π² ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ, ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами.

union union_type {

int i; char ch;

};

52. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ — пСрСмСнная, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ состоит ΠΈΠ· Π°Π΄Ρ€Π΅ΡΠΎΠ² ячССк памяти ΠΈΠ»ΠΈ Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ адрСса. ПослСднСС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для указания Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ‚Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ. Π’ΠΈΠΏ указатСля опрСдСляСт Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ.

int i; // цСлая пСрСмСнная

const int ci = 1; // цСлая константа

int* pi; // ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ†Π΅Π»ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ

const int * pci; // ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ†Π΅Π»ΡƒΡŽ константу

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

54. ДинамичСскоС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти. Π£Ρ‚Π΅Ρ‡ΠΊΠΈ памяти Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ситуации, ΠΊΠΎΠ³Π΄Π° Π·Π°Ρ€Π°Π½Π΅Π΅ Π½Π΅ ΠΈΠ·Π²Π΅ΡΡ‚Π½ΠΎ, сколько Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Π’ ΡΡ‚ΠΎΠΌ случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ динамичСскоС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ занимаСтся ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ‚ся Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΈ использовании динамичСской памяти (Π”ΠŸ) ΠΎΡ‚ΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ для хранСния Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ динамичСской ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ — это ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ для Π΅Π³ΠΎ хранСния Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΈ динамичСском Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ памяти для хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти — «ΠΊΡƒΡ‡Π°» (heap). ОбъСм «ΠΊΡƒΡ‡ΠΈ» ΠΈ Π΅Π΅ ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ зависят ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ памяти, которая опрСдСляСт Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

float*a = (float *)malloc (n*sizeof (float));

printf («Π²Π²Π΅Π΄ΠΈΡ‚Π΅ элСмСнты массива»);

for (i=0;i

printf («ΠΌΠ°ΡΡΠΈΠ²»);

for (i=0;i

free (a);

return 0;}

Π£Ρ‚Π΅ΠΌΡ‡ΠΊΠ° паммяти — процСсс Π½Π΅ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ ΠΎΠ±ΡŠΡ‘ΠΌΠ° свободной ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, связанный с ΠΎΡˆΠΈΠ±ΠΊΠ°ΠΌΠΈ Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, воврСмя Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ участки памяти, ΠΈΠ»ΠΈ с ΠΎΡˆΠΈΠ±ΠΊΠ°ΠΌΠΈ систСмных слуТб контроля памяти. Π£Ρ‚Π΅Ρ‡ΠΊΠΈ памяти приводят ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π½Π΅ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎ возрастаСт, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Π²ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ ограничСния Π­Π’Πœ, ΠΈ Ρ‚ΠΎΠ³Π΄Π° Π½ΠΎΠ²ΠΎΠ΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти становится Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ. Π’ ΡΡ‚ΠΎΠΉ ситуации Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, которая Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ происходит аварийная остановка. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎ ΡΡ‚Π΅Ρ‡Π΅Π½ΠΈΡŽ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π² ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, подвСрТСнная ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ, ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚ всю ΠΏΠ°ΠΌΡΡ‚ΡŒ Π­Π’Πœ.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы прСдотвращСния ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ памяти:

ΠžΡ‚ΠΊΠ°Π· ΠΎΡ‚ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ памяти.

Π’Π»Π°Π΄Π΅ΡŽΡ‰ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ (ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Ρ‚ΡŒ врСмя ΠΆΠΈΠ·Π½ΠΈ указатСля ΠΈ Π²Ρ€Π΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ ΡΡΡ‹Π»Π°Π΅Ρ‚ся).

Π‘Π±ΠΎΡ€ΠΊΠ° мусора (срСдства, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ автоматичСски ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ‚ΡŒ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ).

ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (ΠΊΠΎΠ΄, ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½Ρ‹ΠΉ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Π° ΡΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚).

55. ДинамичСскиС списки Бписком называСтся структура Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ посрСдством указатСля связываСтся со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ элСмСнтом.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт связанного списка Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π° Π½ΠΈΠΌ элСмСнт. Бписок ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ записью, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ располагаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ — ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ запись Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°. Вакая запись называСтся Π·Π²Π΅Π½ΠΎΠΌ, Π° ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… записСй называСтся списком ΠΈΠ»ΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ. Π›ΠΈΡˆΡŒ Π½Π° ΡΠ°ΠΌΡ‹ΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт списка (Π³ΠΎΠ»ΠΎΠ²Ρƒ) имССтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ. ПослСдний элСмСнт списка Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚.

56. ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ΠžΠ±Π»Π°ΡΡ‚ΠΈ видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ — ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ срСдство (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Ρ€.) раздСляСтся Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ сущности, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ модулями. ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ часто являСтся срСдством упрощСния Π·Π°Π΄Π°Ρ‡ΠΈ проСктирования Π˜Π‘ ΠΈ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π˜Π‘ ΠΌΠ΅ΠΆΠ΄Ρƒ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ΠŸΡ€ΠΈ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠΈ Π˜Π‘ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ модуля указываСтся рСализуСмая ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ связи с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ модулями.

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ часто разбиваСтся Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… компилируСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…. Вакая ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° позволяСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ врСмя пСрСкомпиляции ΠΏΡ€ΠΈ измСнСниях, вносимых лишь Π² Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΎΠ΅ количСство исходных Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. Π’Π°ΠΊΠΆΠ΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, Π±Π΅Π· нСобходимости пСрСсборки всСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости — ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связанным с ΡΡ‚ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π΅Ρ‘ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π—Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ области видимости Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связан с Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π»ΠΈΠ±ΠΎ Π±Ρ‹Ρ‚ΡŒ свободным. ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ опрСдСляСтся мСстом Π΅Ρ‘ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡ.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π° Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΏΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΠΈ видимости:

Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ — ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π½Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹ снаруТи Π½Π΅Ρ‘;

Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ — ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π½Π΅ всСх Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹ ΠΎΡ‚ΠΎΠ²ΡΡŽΠ΄Ρƒ.

#include

int a = 0; // глобальная пСрСмСнная

int main ()

{

printf («%d», a); // Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ число 0

{

int a = 1; // объявлСна локальная пСрСмСнная Π°, глобальная пСрСмСнная a Π½Π΅ Π²ΠΈΠ΄Π½Π°

printf («%d», a); // Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ число 1

{

int a = 2; // Π΅Ρ‰Π΅ локальная пСрСмСнная Π² Π±Π»ΠΎΠΊΠ΅, глобальная пСрСмСнная a Π½Π΅ Π²ΠΈΠ΄Π½Π°, Π½Π΅ Π²ΠΈΠ΄Π½Π° ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ локальная пСрСмСнная

printf («%d», a); // Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ число 2 }}}

57. ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Π° ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ инструмСнт, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ компиляции ΠΈ ΡΠ±ΠΎΡ€ΠΊΠΈ. Π’Π°ΠΆΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ примСнСния прСпроцСссоров Π² Π‘ΠΈ ΡΠ²Π»ΡΠ΅Ρ‚ся условная компиляция. ΠŸΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ситуации (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ процСссора). ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ языка Π‘ΠΈ — Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ½ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ исходный тСкст Π² ΡΠΎΠΎΡ‚вСтствии с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ, установлСнными ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²ΠΈΡΠ½ΡƒΡ‚ΡŒ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅.

#include <…>

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° прСпроцСссора — строка Π² ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, которая начинаСтся с ΡΠΈΠΌΠ²ΠΎΠ»Π° # ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π·Π° Π½ΠΈΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова прСпроцСссора. Бписок ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов:

Β· define — Π·Π°Π΄Π°Ρ‘Ρ‚ ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (макрос) ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ константу

Β· undef — отмСняСт ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅

Β· include — вставляСт тСкст ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°

Β· if — осущСствляСт ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΏΡ€ΠΈ истинности константного выраТСния

Β· ifdef — осущСствляСт ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΏΡ€ΠΈ опрСдСлённости символичСской константы

Β· ifndef — осущСствляСт ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΏΡ€ΠΈ нСопрСдСлённости символичСской константы

Β· else — Π²Π΅Ρ‚ΠΊΠ° условной компиляции ΠΏΡ€ΠΈ лоТности выраТСния

Β· elif — Π²Π΅Ρ‚ΠΊΠ° условной компиляции, образуСмая слияниСм else ΠΈ if

Β· endif — ΠΊΠΎΠ½Π΅Ρ† Π²Π΅Ρ‚ΠΊΠΈ условной компиляции

Β· line — прСпроцСссор измСняСт Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки ΠΈ ΠΈΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°

Β· error — Π²Ρ‹Π΄Π°Ρ‡Π° диагностичСского сообщСния

Β· pragma — дСйствиС, зависящСС ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ компилятора

Β· пустоС слово — пустоС дСйствиС.

58. ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΡŒΡŽΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠ΅ ПО — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС.

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

C — кроссплатформСнный язык Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ компиляции, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ для Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ компиляторы ΠΏΠΎΠ΄ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚ΠΎ позволяСт Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ основной Π΄Π²ΠΈΠΆΠΎΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ особыС систСмозависимыС части.

На Ρ€Π°Π·Π½Ρ‹Ρ… ΠžΠ‘ стандартныС элСмСнты интСрфСйса ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ простоС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ элСмСнтов интСрфСйса Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ — ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠžΠ‘ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Π»Π΅Π·Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°. БущСствуСт нСсколько ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ²:

Β· Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ, ΠΎΠ±Ρ‰ΠΈΠΉ для всСх ΠžΠ‘ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выглядят ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΠΏΠΎΠ΄ всСми ОБ).

Β· ΡΠ°ΠΌΠΎΠ°Π΄Π°ΠΏΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ интСрфСйс, ΠΏΠΎΠ΄ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ сСтку ΠΏΠΎΠ΄ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ элСмСнтов управлСния.

59. ΠžΡΠ½ΠΎΠ²Ρ‹ ООП ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (ООП) — это способ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΡƒΡ‚Π΅ΠΌ Π΅Π³ΠΎ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ООП позволяСт Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ вмСстС с Ρ‡Π°ΡΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ функциями ΠΈΠ»ΠΈ дСйствиями, связанными с ΡΡ‚ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. Π­Ρ‚ΠΈ элСмСнты ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½ элСмСнт, Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ вмСстС эти значСния ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π°Π΅Ρ‚ нСсколько прСимущСств. НапримСр, Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π° Π½Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ; ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вмСстС связанныС ΠΌΠ΅ΠΆΠ΄Ρƒ собой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ; ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ структуру ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° большС соотвСтствовала Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ потрСбностям.

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ дСлится Π½Π° Π΄Π²Π΅ части. Одна Ρ‡Π°ΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ стратСгии ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Вторая Ρ‡Π°ΡΡ‚ΡŒ ООП — это собствСнно структуры программирования, доступныС Π² Π΄Π°Π½Π½ΠΎΠΌ языкС программирования для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°.

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