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

ΠžΡΠ½ΠΎΠ²Ρ‹ C

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‡ΠΊΠ°ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ OTWET ΠΈΠΌΠ΅Π΅Ρ‚ строку замСщСния TRI*TRI ΠΈ Ρ‚. Π΄. КаТдая строка состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… частСй. ΠŸΠ΅Ρ€Π²ΠΎΠΉ стоит Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #define, Π΄Π°Π»Π΅Π΅ ΠΈΠ΄Π΅Ρ‚ ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. ΠœΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹. И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΈΠ΄Π΅Ρ‚ строка (называСмая «ΡΡ‚Ρ€ΠΎΠΊΠΎΠΉ замСщСния»), ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ прСдставляСт ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Когда прСпроцСссор Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠžΡΠ½ΠΎΠ²Ρ‹ C (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠšΠ°Ρ„Π΅Π΄Ρ€Π°: Автоматика ΠΈ Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

ΠžΠ‘ΠΠžΠ’Π« Π‘

Π“Π»Π°Π²Π° 1. ΠžΡΠ½ΠΎΠ²Ρ‹ языка Π‘ΠΈ

1.1. Алфавит

1.2. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ конструкции Π‘ΠΈ

1.3. Π’Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄.

1.3.1. Π’Ρ‹Π²ΠΎΠ΄

1.3.2. Π’Π²ΠΎΠ΄

1.4. Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… языка Π‘ΠΈ

1.4.1. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹.

1.4.2. Π’ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы

1.4.3. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

1.4.3.1. Π¦Π΅Π»Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹

1.4.3.2. ВСщСствСнныС Ρ‚ΠΈΠΏΡ‹

1.4.3.3. Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹

1.4.4. Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… строка

1.4.5. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹

1.4.5.1. ΠœΠ°ΡΡΠΈΠ²Ρ‹

1.4.5.2. Записи

1.4.6 ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΈ Π²Ρ€Π΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

1.5. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

1.6. ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€

1.7. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

1.8. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ

1.9. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

1.10. Π€Π°ΠΉΠ»Ρ‹

1.11. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘ΠΈ

1.11.1. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСобразования

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСобразования ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… строк: atoi (), atof (). 37с.

1.11.3. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ со ΡΡ‚Ρ€ΠΎΠΊΠ°ΠΌΠΈ

1.12. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ программирования Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘ΠΈ

1.12.1. ΠœΠΎΠ΄ΡƒΠ»ΠΈ. ΠœΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

1.12.2. МодСли памяти

1.12.3. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² DOS ΠΈ Windows

1.12.4. ИспользованиС языка ассСмблСра Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° Π‘ΠΈ

Π“Π»Π°Π²Π° 2. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования языка Π‘ΠΈ

2.1. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ°

2.2. РСкурсивныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹

2.3. Π—Π°Π΄Π°Ρ‡Π° «Π₯анойскиС башни»

Π“Π»Π°Π²Π° 3. ΠžΡΠ½ΠΎΠ²Ρ‹ Π‘++

3.1. ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ Π‘++ ΠΎΡ‚ Π‘ΠΈ

3.2. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π‘++

3.2.1. ΠšΠ»Π°ΡΡΡ‹

3.2.2. ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

3.2.3. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹

3.2.4. ДСструкторы

3.2.5. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ

3.2.6.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π² Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅

3.2.7. Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

3.2.8. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π“Π»Π°Π²Π° 4. ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++Builder

4.1. Π₯арактСристика Π‘++Builder

4.2. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ VCL. Бвойства. Бобытия. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

4.2.1. Π’ΠΈΠΏΡ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚

4.2.2. Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ классов VCL

4.3. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π‘++Builder

4.4. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (VCL)

4.5. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ событиями, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

4.6. БтратСгия ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Windows-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

4.7. ИспользованиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ VCL Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

4.8. ГрафичСскиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

4.9. ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°

4.10. Бпрайтовая Π³Ρ€Π°Ρ„ΠΈΠΊΠ°

4.11. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ тСхнология OLE2

4.12. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ DLL.

4.13. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚

4.14.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ CGI

3.15. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….

3.16. ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π° ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ N1

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

Π’ 1890 Π³ΠΎΠ΄Ρƒ Π² Π‘ША ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚Π΅Π»Π΅ΠΌ Π“Π΅Ρ€ΠΌΠ°Π½ΠΎΠΌ Π₯ΠΎΠ»Π»Π΅Ρ€ΠΈΡ‚ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° элСктромСханичСская счСтная машина — табулятор, управляСмая ΠΏΠ΅Ρ€Ρ„ΠΎΠΊΠ°Ρ€Ρ‚Π°ΠΌΠΈ, Π±Ρ‹Π»Π° использована для составлСния Ρ‚Π°Π±Π»ΠΈΡ† с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ пСрСписи насСлСния БША. Основанная Π₯ΠΎΠ»Π»Π΅Ρ€ΠΈΡ‚ΠΎΠΌ Ρ„ΠΈΡ€ΠΌΠ° ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ‚Π²Ρƒ табуляторов впослСдствии ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»Π°ΡΡŒ Π² ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΡŽ International Business Machines (IBM).

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

Π’1941 Π³ΠΎΠ΄Ρƒ Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΈΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ ΠšΠΎΠ½Ρ€Π°Π΄ Π¦ΡƒΠ·Π΅ построил Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Z3, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ использовалась двоичная систСма счислСния. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π»ΠΈΡΡŒ Π½Π° ΠΏΠ΅Ρ€Ρ„ΠΎΠ»Π΅Π½Ρ‚Π΅.

Π’ 1945 Π³ΠΎΠ΄Ρƒ Π² Π²Ρ‹ΡΡˆΠ΅ΠΌ тСхничСском ΡƒΡ‡ΠΈΠ»ΠΈΡ‰Π΅ ПСнсильванского унивСрситСта (БША) Ρ„ΠΈΠ·ΠΈΠΊ Π”ΠΆΠΎΠ½ ΠœΠΎΡ‡Π»ΠΈ ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ ΠŸΡ€ΠΎΡΠΏΠ΅Ρ€ Π­ΠΊΠ΅Ρ€Ρ‚ построили ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ «Π­Π½ΠΈΠ°ΠΊ». Для задания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π»ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ тысячи ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π²ΠΎΡ‚ΠΊΠ½ΡƒΡ‚ΡŒ сотни ΡˆΡ‚Π΅ΠΊΠ΅Ρ€ΠΎΠ² Π² Π³Π½Π΅Π·Π΄Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.

1 ΠΈΡŽΠ½Ρ 1945 Π³ΠΎΠ΄Π° Π±Ρ‹Π» разослан ΠΎΡ‚Ρ‡Π΅Ρ‚ амСриканского ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° вСнгСрского происхоТдСния Π”ΠΆΠΎΠ½Π° Ρ„ΠΎΠ½ НСймана «ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎ ΠΌΠ°ΡˆΠΈΠ½Π΅ Π­Π΄Π²Π°ΠΊ», содСрТащий ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ хранСния ΠΊΠΎΠΌΠ°Π½Π΄ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π² Π΅Π³ΠΎ собствСнной Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ памяти.

21 ΠΈΡŽΠ½Ρ 1948 Π³ΠΎΠ΄Π° Π² ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Срском унивСрситСтС (ВСликобритания) Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π΅ «ΠœΠ°Ρ€ΠΊ-1» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° пСрвая Π² ΠΌΠΈΡ€Π΅ хранимая Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° — поиск наибольшСго сомноТитСля Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ числа.

Π’ 1949 Π³ΠΎΠ΄Ρƒ ΠΏΠΎΠ΄ руководством ΠœΠΎΡ€ΠΈΡΠ° Уилкса создан ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ «Π­Π΄ΡΠ°ΠΊ». ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΈ «Π­Π΄ΡΠ°ΠΊΠ°» Π²Π²Π΅Π»ΠΈ систСму мнСмоничСских ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π³Π΄Π΅ каТдая машинная ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ»Π°ΡΡŒ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡƒΠΊΠ²ΠΎΠΉ, ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ настройку ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ мСсто Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ. ΠœΠΎΡ€ΠΈΡ Уилкс Π½Π°Π·Π²Π°Π» ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ схСму ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‰Π΅ΠΉ систСмой (assembly system) — ΠΎΡ‚ΡΡŽΠ΄Π° слово «Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€» .

Π’ 1949 Π³ΠΎΠ΄Ρƒ Π² Π€ΠΈΠ»Π°Π΄Π΅Π»ΡŒΡ„ΠΈΠΈ (БША) ΠΏΠΎΠ΄ руководством Π”ΠΆΠΎΠ½Π° ΠœΠΎΡ‡Π»ΠΈ создан «ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΊΠΎΠ΄» — ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ языка программирования.

Π’ 1951 Π³ΠΎΠ΄Ρƒ Π² Ρ„ΠΈΡ€ΠΌΠ΅ Remington Rand амСриканская программистка ГрСйс Π₯ΠΎΠΏΠΏΠ΅Ρ€ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π₯ΠΎΠΏΠΏΠ΅Ρ€ Π½Π°Π·Π²Π°Π»Π° Π΅Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ΠΎΠΌ (compiler — ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ).

Π’ 1957 Π³ΠΎΠ΄Ρƒ Π½Π° 20-ΠΌ этаТС ΡˆΡ‚Π°Π±-ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Ρ‹ Ρ„ΠΈΡ€ΠΌΡ‹ IBM Π½Π° ΠœΡΠ΄ΠΈΡΠΎΠ½-авСню Π² ΠΡŒΡŽ-Π™ΠΎΡ€ΠΊΠ΅ родился язык Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ (FORmula TRANslation — трансляция Ρ„ΠΎΡ€ΠΌΡƒΠ»). Π“Ρ€ΡƒΠΏΠΏΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΠ» 30-Π»Π΅Ρ‚Π½ΠΈΠΉ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊ Π”ΠΆΠΎΠ½ Бэкус. Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ — ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· «Π½Π°ΡΡ‚оящих» языков высокого уровня.

Π’ 1972 Π³ΠΎΠ΄Ρƒ 31-Π»Π΅Ρ‚Π½ΠΈΠΉ спСциалист ΠΏΠΎ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈΠ· Ρ„ΠΈΡ€ΠΌΡ‹ Bell Labs ДСннис Π ΠΈΡ‚Ρ‡ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» язык программирования Π‘ΠΈ.

Π’ 1984 Π³ΠΎΠ΄Ρƒ французский ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊ ΠΈ ΡΠ°ΠΊΡΠΎΡ„онист Π€ΠΈΠ»ΠΈΠΏ Кан основываСт Ρ„ΠΈΡ€ΠΌΡƒ Borland International.

Π”Π°Π»Π΅Π΅ появился Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ языка Π‘ΠΈ Ρ„ΠΈΡ€ΠΌΡ‹ Borland.

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π‘ΠΈ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠ°ΠΊ язык для программирования Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Unix.

ВскорС ΠΎΠ½ ΡΡ‚Π°Π» Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒΡΡ для программистов-ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ². Π’ ΠΊΠΎΠ½Ρ†Π΅ 70-Ρ… Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ трансляторы Π‘ΠΈ Π΄Π»Ρ ΠœΠΈΠΊΡ€ΠΎΠ­Π’Πœ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой Π‘Π /M.

ПослС появлСния IBM PC стали ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ Π‘ΠΈ (для этого ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈΡ… ΡΠ΅ΠΉΡ‡Π°Ρ Π±ΠΎΠ»Π΅Π΅ 20).

Π’ 1983 Π³. ΠΠΌΠ΅Ρ€ΠΈΠΊΠ°Π½ΡΠΊΠΈΠΉ Π˜Π½ΡΡ‚ΠΈΡ‚ΡƒΡ‚ Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΎΠ² (ANSI) сформировал ВСхничСский ΠšΠΎΠΌΠΈΡ‚Π΅Ρ‚ X3J11, для создания стандарта языка Π‘ΠΈ. Появившийся Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ язык Π‘ΠΈ++ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΈ Borland подчиняСтся Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ стандарта.

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

Π‘Ρ€Π΅Π΄ΠΈ мноТСства достоинств языка Π‘ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ основныС: — ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π° Π²ΡΠ΅Ρ… ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π­Π’Πœ);

— ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°;

— Π±Ρ‹ΡΡ‚Ρ€ΠΎΡ‚Π° выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ;

— Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ языка;

— Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ.

Π“Π»Π°Π²Π° 1. ΠžΡΠ½ΠΎΠ²Ρ‹ ΡΠ·Ρ‹ΠΊΠ° Π‘ΠΈ

1.1. Алфавит

Алфавит языка состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… символов:

Π—Π°Π³Π»Π°Π²Π½Ρ‹Π΅ ΠΈ ΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅ латинскиС Π±ΡƒΠΊΠ²Ρ‹ A-Z, a-z ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» подчСркивания. Π¦ΠΈΡ„Ρ€ ΠΎΡ‚ 0 Π΄ΠΎ 9. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов + - * / = > <. ;,: [ ] { } () # $.

Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ ΠΏΡ€ΠΎΠ±Π΅Π», табуляция, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки, Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° CΠΈ++ прСдставляСт собой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ACSII-символов, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… собой Π΅Π΅ ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст.

1.2. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ конструкции Π‘ΠΈ

Рассмотрим ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Π½Π° ΡΠΊΡ€Π°Π½Π΅ Ρ„Ρ€Π°Π·Ρ‹ «ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΎΡ‚ Π­Π’Πœ»

#include

main ()

// ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

{

printf («ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΎΡ‚ Π­Π’Πœn»);

}

Рассмотрим структуру ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

CΠΈΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

# Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора

Main

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

Ѐункция 1()

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

Ѐункция n ()

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

Описания

ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

УправлСния

ΠŸΡƒΡΡ‚Ρ‹Π΅

Команда #include ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» stdio. h ΠΊ Π½Π°ΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π’ Ρ„Π°ΠΉΠ»Π΅ содСрТится свСдСния ΠΎ Ρ„ункциях Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°.

Π€Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ stdio. h ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π²Π²ΠΎΠ΄Π΅-Π²Ρ‹Π²ΠΎΠ΄Π΅.

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

Π‘Ρ‚Ρ€ΠΎΠΊΠ° main () содСрТит Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всСгда начинаСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. ΠŸΡƒΡΡ‚Ρ‹Π΅ скобки ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ эта Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ ΠΎΠ½Π° Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

ПослС символов // стоят ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ (для ΠΎΠ΄Π½ΠΎΠΉ строки), (коммСнтариями Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ символы, стоящиС ΠΌΠ΅ΠΆΠ΄Ρƒ /* ΠΈ */).

Π€ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки {} ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† Ρ‚Π΅Π»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Они Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для объСдинСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Π±Π»ΠΎΠΊ.

Π’ ΡΡ‚Ρ€ΠΎΠΊΠ΅ printf («ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΎΡ‚ Π­Π’Πœn») содСрТится стандартная функция ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Π‘ΠΈ. Π‘Ρ‚Ρ€ΠΎΠΊΠ° символов, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ Π² ΡΠΊΠΎΠ±ΠΊΠΈ (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚), являСтся ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ printf () ΠΈΠ· Π½Π°ΡˆΠ΅ΠΉ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main (). Когда Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрнСтся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π‘ΠΈΠΌΠ²ΠΎΠ» n — ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку послС ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ — Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² ΡΠ°Π½Ρ‚ΠΈΠΌΠ΅Ρ‚Ρ€Ρ‹.

#include

#include

main ()

{

int I;

int J;

int C;

printf («M? n»);

scanf («%d» ,&I);

J=100*I;

printf («Π’ %d М ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ΡΡ %d cmn», I, J);

C=getch ();

}

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π΄Π²Π΅ цСлочислСнныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ I ΠΈ J.

Π’Π²Π΅Π΄Π΅Π½Π° функция scanf («%d» ,&I); которая позволяСт Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ дСсятичноС число с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ I, Π΄Π°Π»Π΅Π΅ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ J=100*I; ΠΈΠ΄Π΅Ρ‚ вычислСниС4.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка printf («Π’ %d М ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ΡΡ %d cmn», I, J); ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Ρ„Ρ€Π°Π·Ρƒ. На ΠΌΠ΅ΡΡ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ %d (dцСлая пСрСмСнная) ставится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ I, Π½Π° ΠΌΠ΅ΡΡ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ %d ставится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ J.

Ѐункция getch () позволяСт Π·Π°Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΡ€Π°Π½Π΅ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ любого символа, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Рассмотрим Π΅Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. НапишСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ Π΅Π΅ ΠΈΠ· Π½Π°ΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

#include

#include

supervisor ()

{

printf («Π’Ρ‹ ΠΌΠ΅Π½Ρ Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈ? n»);

}

main ()

{

char C;

printf («Π― Π²Ρ‹Π·Ρ‹Π²Π°ΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ supervisor. n»);

supervisor ();

printf («Π”Π°. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΊΡ‚ΠΎ ΠΈΠ· ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚ΠΎΠ² спит ΠΈ Ρ€Π°Π·Π±ΡƒΠ΄ΠΈΡ‚Π΅ ΠΈΡ…. n»);

C=getch ();

}

Π’Π½Π°Ρ‡Π°Π»Π΅ описываСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ supervisor (), Π° Π·Π°Ρ‚Π΅ΠΌ обращаСмся ΠΊ Π½Π΅ΠΉ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ supervisor ();. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³:

— Π― Π²Ρ‹Π·Ρ‹Π²Π°ΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ supervisor.

— Π’Ρ‹ ΠΌΠ΅Π½Ρ Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈ?

— Π”Π°. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΊΡ‚ΠΎ ΠΈΠ· ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚ΠΎΠ² спит, ΠΈ Ρ€Π°Π·Π±ΡƒΠ΄ΠΈΡ‚Π΅ ΠΈΡ….

1.3 Π’Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΉ области Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅:

— Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ мСсто для хранСния Π΄Π°Π½Π½Ρ‹Ρ…;

— Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ исходныС Π΄Π°Π½Π½Ρ‹Ρ…;

— ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ исходныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ;

— Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

Π‘ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для выполнСния этих дСйствий. ВсС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΈ Π½Π°Ρ‡Π½Π΅ΠΌ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°.

1.3.1. Π’Ρ‹Π²ΠΎΠ΄

Π’Ρ‹Π²ΠΎΠ΄ осущСствляСтся Π½Π° ΡΠΊΡ€Π°Π½, ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€, винчСстСр (Π³ΠΈΠ±ΠΊΠΈΠ΅ диски), ΠΏΠΎΡ€Ρ‚. Рассмотрим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΡΠΊΡ€Π°Π½.

Ѐункция printf ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для этой Ρ†Π΅Π»ΠΈ. Π€ΠΎΡ€ΠΌΠ°Ρ‚: printf (<οΏ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚>[, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚1],…).

Π€ΠΎΡ€ΠΌΠ°Ρ‚ — это строка Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…, которая выводится Π½Π° ΡΠΊΡ€Π°Π½. ΠŸΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ printf замСняСт всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ Π² ΡΠΎΠΎΡ‚вСтствии со ΡΠΏΠ΅Ρ†ΠΈΡ„икациями Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. НапримСр, printf («Π’ %d М ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ΡΡ %d cmn», I, J); %d Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° — это спСцификация Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° (%) ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π±ΡƒΠΊΠ²ΠΎΠΉ, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ….

%d, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ оТидаСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число. Π’ΠΎΡ‚ нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±Ρ‰Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… спСцификаций Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°:

— %d Ρ†Π΅Π»ΠΎΠ΅ число;

— %u Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ°;

— %ld Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число;

— %p Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ указатСля;

— %f число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ;

— %e число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π² ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅;

— %c cΠΈΠΌΠ²ΠΎΠ»;

— %s строка;

— %x Ρ†Π΅Π»ΠΎΠ΅ Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

МоТно Π·Π°Π΄Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ поля, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ %6dΠΏΠΎΠ»Π΅ ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ 6.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ сдвинутым Π²ΠΏΡ€Π°Π²ΠΎ (Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹), Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ общая ΡˆΠΈΡ€ΠΈΠ½Π° поля Ρ€Π°Π²Π½Π° 6.

Для Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° вСщСствСнных чисСл ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ %8.4f — ΠΏΠΎΠ»Π΅ ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ 8, дСсятичная Ρ‡Π°ΡΡ‚ΡŒ 4.

Π’ ΠΊΠΎΠ½Ρ†Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π½ΠΎΠΉ строки ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π½Π°ΠΊΠΈ:

n ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки;.

f (ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈΠ»ΠΈ очистка экрана)

t (табуляция)

b (Π·Π°Π±ΠΎΠΉ <-)

xhhh (вставка символа c ΠΊΠΎΠ΄ΠΎΠΌ ASCII hhh, Π³Π΄Π΅ hhh содСрТит ΠΎΡ‚ 1 Π΄ΠΎ 3 16-Ρ€ΠΈΡ‡Π½Ρ‹Ρ… Ρ†ΠΈΡ„Ρ€) Для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: puts ΠΈ putchar.

Ѐункция puts Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ строку Π½Π° ΡΠΊΡ€Π°Π½. НапримСр:

#include

main ()

{

puts («ΠŸΡ€ΠΈΠ²Π΅Ρ‚, студСнт»);

}

Ѐункция putchar Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° ΡΠΊΡ€Π°Π½ ΠΎΠ΄ΠΈΠ½ символ.

1.3.2 Π’Π²ΠΎΠ΄

Π’Π²ΠΎΠ΄ Π² Π‘ΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ осущСствляСтся с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΠΎΡ€Ρ‚Π°.

Ѐункция scanf Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° printf. Π•Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚: scanf (<οΏ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°>[, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚1],…). Π’ scanf ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π΅ ΠΆΠ΅ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ printf. НСобходимо ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ scanf ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ: Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π° ΡΡ‚Ρ€ΠΎΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ адрСсами, Π° Π½Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΠΌΠΈ (это Π½Π΅ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚раняСтся Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅). Π Π°Π½Π΅Π΅ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π»Π°ΡΡŒ функция ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

scanf («%d», &a);

& -опСрация адрСса, которая ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ scanf адрСса.

ΠŸΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΠΏΡΡ‚ΡƒΡŽ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

scanf («%d, %d», &a, &b);

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 23,56.

Π˜ΠΌΠ΅ΡŽΡ‚ΡΡ слоТности с Π²Π²ΠΎΠ΄ΠΎΠΌ строки символов ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… слов — ввСдутся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π°. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ сущСствуСт функция gets.

#include

main ()

{

char name [60];

printf («ΠšΠ°ΠΊ вас Π·ΠΎΠ²ΡƒΡ‚: «);

gets (name);

printf («ΠŸΡ€ΠΈΠ²Π΅Ρ‚, %sn», name);

}

Ѐункция gets Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ всС, Ρ‡Ρ‚ΠΎ набираСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΆΠ°Ρ‚ Π’Π²ΠΎΠ΄.

Π’ Π‘++ Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½ΠΎ ΠΈ Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ Π²Ρ‹Π²ΠΎΠ΄Π° << опСрация Π²Π²ΠΎΠ΄Π° >>.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΡΠΊΡ€Π°Π½: cout<< Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Π²ΠΎΠ΄Π° с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹: cin<< пСрСмСнная.

ΠŸΡ€ΠΈ использовании ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ„Π°ΠΉΠ» iostream.h.

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

#include

main ()

{

int i;

cout << «Π¦Π΅Π»ΠΎΠ΅ число?: «;

cin >> i;

cout << «ΠšΠ²Π°Π΄Ρ€Π°Ρ‚ числа: «<< i*i << «n» ;

return 0;

}

Π’ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ (Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»).

1.4 Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π―Π·Ρ‹ΠΊΠ° Π‘ΠΈ

1.4.1 Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹

ИмСна, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ константам, Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈ Ρ„ункциям Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ. Π’ Π‘ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° создания ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²: Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π±ΡƒΠΊΠ²Ρ‹ (a…z, A… Z) ΠΈΠ»ΠΈ с ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΡ (_), ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π±ΡƒΠΊΠ², ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠΉ ΠΈ/ΠΈΠ»ΠΈ Ρ†ΠΈΡ„Ρ€ (0…9).

1.4.2 Π’ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы

Π’ Π‘ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ся константы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой имя, присваиваСмоС ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любой Π΄Π»ΠΈΠ½Π½Ρ‹, Π½ΠΎ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°ΡŽΡ‚ся ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 32 символа. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ начинаСтся с Π»Π°Ρ‚инской Π±ΡƒΠΊΠ²Ρ‹ ΠΈΠ»ΠΈ символа подчСркивания, ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ символы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ†ΠΈΡ„Ρ€Ρ‹, латинскиС Π±ΡƒΠΊΠ²Ρ‹ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ‹ подчСркивания.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π‘ΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π΅Ρ‚ Π±ΡƒΠΊΠ²Ρ‹ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ рСгистра ΠΊΠ°ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ символы.

Π’ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы Π±Ρ‹Π²Π°ΡŽΡ‚: Ρ†Π΅Π»Ρ‹Π΅, с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ константы ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ строки.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ дСсятичного, Π²ΠΎΡΡŒΠΌΠΈΡ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ числа.

ОписаниС констант начинаСтся с ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова const, Π΄Π°Π»Π΅Π΅ Ρ‚ΠΈΠΏ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ const int Nalog=2.

1.4.3 ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ — это поимСнованная Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ.

1.4.3.1 Π¦Π΅Π»Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹

Π¦Π΅Π»Ρ‹Π΅ числа ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ†Π΅Π»Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. Π¦Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ — это ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, прСдставлСниС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ зависит ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ Ρ‚ΠΈΠΏΠ° процСссора.

Рассмотрим основныС Ρ‚ΠΈΠΏΡ‹ Ρ†Π΅Π»Ρ‹Ρ… чисСл:

Π¦Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ

Π Π°Π·ΠΌΠ΅Ρ€

Short int

16 Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅

Int

16 Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅

Unsigned long

32 Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ°

Long

32 Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅

Рассмотрим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

#include

#include

main ()

{

const int Nalog= 2;

int Stavka;

int Symma;

int C;

Stavka = 300;

Symma = Stavka * Nalog;

printf («Symma naloga = %dn», Symma);

C=getch ();

}

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΠΎΠ΄Π½Π° константа ΠΈ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

1.4.3.2 ВСщСствСнныС Ρ‚ΠΈΠΏΡ‹

Для хранСния чисСл с Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вСщСствСнный Ρ‚ΠΈΠΏ.

Π’ C++ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ основныС Ρ‚ΠΈΠΏΡ‹ вСщСствСнных чисСл:

ВСщСствСнный Ρ‚ΠΈΠΏ

Π Π°Π·ΠΌΠ΅Ρ€

Float

32 Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅Π΅ число

Double

64 Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅Π΅ число

Long double

80 Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅Π΅ число

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

#include

main ()

{

const float Nalog= 0.7;

int Stavka;

float Symma;

Stavka = 325;

Symma = Stavka * Nalog;

printf («Symma naloga = %8.4fn», Symma);

}

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ вСщСствСнный Ρ‚ΠΈΠΏ прСдставлСн ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Symma.

1.4.3.3 Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏChar ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для хранСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа, поэтому Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ — ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚.

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ

Π Π°Π·ΠΌΠ΅Ρ€

Unsigner char

8 Π±ΠΈΡ‚ Π±Π΅Π· Π·Π½Π°ΠΊΠ°

Char

8 Π±ΠΈΡ‚

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

#include

main ()

{

char A;

char B;

char C;

A = 'D';

B = '!';

printf («A= %c B= %cn», A, B);

C = '*';

printf («C= %cn», C);

}

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ A ΠΏΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ `D', ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ B Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ `!', Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π‘ ΠΏΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ символа `*'.

1.4.4 Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… строка

Для прСдставлСния строки символов Π² Π‘ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ массивы Ρ‚ΠΈΠΏΠ° char.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

#include

#include

main ()

{

char A[256]; /* Π΄Π»ΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎ 256 символов */

char B[11];

char C[24];

strcpy (A," IBM PC Pentium");

strcpy (B," Windows 95″);

strcpy (C," «); /* очистка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ */ printf («A= %sn», A);

printf («B= %sn», B);

strcpy (C, B);

printf («C= %sn», C);

}

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ прСдставлСны Ρ‚Ρ€ΠΈ строки символов A, B, C.

По ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, strcpy (A," IBM PC Pentium"); Π² ΡΡ‚Ρ€ΠΎΠΊΡƒ A ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ся тСкст IBM PC Pentium.

ΠšΡ€ΠΎΠΌΠ΅ рассмотрСнного ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, для опрСдСлСния строк ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»Ρ‹. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

#include

#include

main ()

{

char *msg;

msg = «ΠŸΡ€ΠΈΠ²Π΅Ρ‚, студСнт» ;

puts (msg);

}

Π—Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ msg ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ msg являСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ» — Ρ‚. Π΅. msg ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ адрСс символа. Однако, ΠΏΡ€ΠΈ этом ΠΏΠ°ΠΌΡΡ‚ΡŒ для размСщСния символов Π½Π΅ Π²Ρ‹Π΄Π΅Π»ΡΠ΅Ρ‚ся.

Команда msg = «ΠŸΡ€ΠΈΠ²Π΅Ρ‚, студСнт «ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ адрСс этой строки — (адрСс символа П) ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ msg. Команда puts (msg) ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ символы Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π½Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ символ, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½Π΅Ρ† строки.

1.4.5 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹

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

1.4.5.1 ΠœΠ°ΡΡΠΈΠ²Ρ‹

ИмСнованная ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… называСтся массивом. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт массива хранится Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ области памяти ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ собствСнный Π½ΠΎΠΌΠ΅Ρ€ (начиная с Π½ΡƒΠ»Ρ).

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

#include

main ()

{

int B[3];

B[0] = 0;

B[1] = 10; B[2] = 20; B[3] = 30;

printf («B[0]= %dn», B[0]);

printf («B[1]= %dn», B[1]);

printf («B[2]= %dn», B[2]);

printf («B[3]= %dn», B[3]);

}

Π’ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ массив B, состоящий ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… цСлочислСнных элСмСнтов. Π‘ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ массива ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ с ΠΎΠ±Ρ‹ΠΊΠ½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

int A[3][2];

Массив AΠ΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив (состоит ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… строк ΠΈ Ρ‚Ρ€Π΅Ρ… столбцов):

char A[3][3][3][3];

Массив A — Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΌ массивом.

#include

main ()

{

float B[4][3];

B[0][0] = 0;

B[1][1] = 1.1;

B[2][1] = 1.2; B[3][1] = 1.3;

B[1][2] = 2.1;

B[2][2] = 2.2;

B[3][2] = 2.3;

printf («B[1,1]= %4.2f B[2,1]= %4.2f B[3,1]= %4.2fn», B[1][1], B[2][1], B[3][1]);

printf («B[1,2]= %4.2f B[2,2]= %4.2f B[3,2]= %4.2fn», B[1][2], B[2][2], B[3][2]);

}

1.4.5.2 Записи

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² запись позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π—Π°ΠΏΠΈΡΡŒ начинаСтся послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова struct. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ — Π² Π·Π°ΠΏΠΈΡΠΈ хранится информация ΠΎ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚Π°Ρ…: фамилия, Π³ΠΎΠ΄ роТдСния, Π½ΠΎΠΌΠ΅Ρ€ Π³Ρ€ΡƒΠΏΠΏΡ‹.

#include

#include

typedef struct A {

char Fio[31];

int God;

int Gruppa;

};

main ()

{

struct A B;

strcpy (B.Fio," Ivanow G.I."); B. God = 1977;

B.Gruppa = 384;

printf («Fio = %sn», B. Fio);

printf («God = %dn», B. God);

printf («Gruppa = %dn», B. Gruppa);

}

Π’ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ запись ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

struct A { /* A ΠΈΠΌΡ записи} */

char Fio[31]; /* 1 полС записи */

int God; /* 2 полС записи */

int Gruppa; /* 3 полС записи */

}

Π”Π°Π»Π΅Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ввСсти структуру B Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ A ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅

struct A B;

Π”Π°Π»Π΅Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π² ΠΏΠΎΠ»Ρ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ поля ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ B Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (B.Fio:="Ivanow G.I."; ΠΈ Ρ‚. Π΄.).

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π° typedef структурам даСтся имя.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

#include

#include

typedef struct {

char Fio[31];

int God;

int Gruppa;

} A;

main ()

{

A B;

strcpy (B.Fio," Ivanow G.I.");

B.God = 1977;

B.Gruppa = 384;

printf («Fio = %sn», B. Fio);

printf («God = %dn», B. God);

printf («Gruppa = %dn», B. Gruppa);

}

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π»ΠΈ ΠΎΠ΄Π½Ρƒ запись, Π½ΠΎ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ студСнта, поэтому ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ массив ΠΈ Π·Π°ΠΏΠΈΡΡŒ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив записСй. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

#include

#include

typedef struct A {

char Fio[31];

int God;

int Gruppa; };

main ()

{

A WGruppa[12];

strcpy (WGruppa[1]. Fio," Ivanow G.I.");

WGruppa[1]. God = 1977;

WGruppa[1]. Gruppa = 384;

strcpy (WGruppa[2]. Fio," Petrow R.G.");

WGruppa[2]. God = 1978;

WGruppa[2]. Gruppa = 384;

printf («Fio1 = %sn», WGruppa[1]. Fio);

printf («God1 = %dn», WGruppa[1]. God);

printf («Gruppa1 = %dn», WGruppa[1]. Gruppa);

printf («Fio2 = %sn», WGruppa[2]. Fio);

printf («God2 = %dn», WGruppa[2]. God);

printf («Gruppa2 = %dn», WGruppa[2]. Gruppa);

}

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ структуру A, Π° Π·Π°Ρ‚Π΅ΠΌ использовали Π΅Π΅ ΠΏΡ€ΠΈ объявлСнии структуры WGruppa, ΠΊΠ°ΠΊ массива состоящСго ΠΈΠ· 12 записСй структуры B.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ для адрСсации ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ элСмСнта массива ΠΈ ΠΈΠΌΡ поля.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½Π° запись содСрТит Π΄Ρ€ΡƒΠ³ΡƒΡŽ запись, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, добавляСтся адрСс, ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ записи студСнт. ΠŸΡ€ΠΈΠΌΠ΅Ρ€.

#include

#include

typedef struct Adress {

char City[31];

char Street_Nd_Kw[61]; };

typedef struct A {

char Fio[31];

int God;

int Gruppa;

Adress D_addr; };

main ()

{

A WGruppa[12];

strcpy (WGruppa[1].Fio," Ivanow G.I.");

WGruppa[1]. God = 1977;

WGruppa[1]. Gruppa = 384;

strcpy (WGruppa[1]. D_addr.City," Shadrinsk"); strcpy (WGruppa[1]. D_addr.Street_Nd_Kw," Lenina 10 kw.1″);

strcpy (WGruppa[2]. Fio," Petrow R.G.");

WGruppa[2]. God = 1978;

WGruppa[2]. Gruppa = 384;

strcpy (WGruppa[2]. D_addr.City," Kataisk"); strcpy (WGruppa[2]. D_addr.Street_Nd_Kw," Akulowa 1 kw.2″);

printf («Fio1 = %sn», WGruppa[1]. Fio);

printf («God1 = %dn», WGruppa[1]. God);

printf («Gruppa1 = %dn», WGruppa[1]. Gruppa);

printf («City= %sn», WGruppa[1]. D_addr.City);

printf («Street= %sn», WGruppa[1]. D_addr.Street_Nd_Kw);

printf («Fio2 = %sn», WGruppa[2]. Fio);

printf («God2 = %dn», WGruppa[2]. God);

printf («Gruppa2 = %dn», WGruppa[2]. Gruppa);

printf («City= %sn», WGruppa[2]. D_addr.City);

printf («Street= %sn», WGruppa[2]. D_addr.Street_Nd_Kw);

}

1.4.6 ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΈ Π²Ρ€Π΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

По ΠΎΠ±Π»Π°ΡΡ‚ΠΈ видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Π‘ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Ρ‚Ρ€ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ, опрСдСлСнная Π²ΠΎ Π²ΡΠ΅Ρ… модулях (Ρ„Π°ΠΉΠ»Π°Ρ…) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Вакая пСрСмСнная опрСдСляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова extern. Π­Ρ‚Π° пСрСмСнная Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π½Π° Π²ΠΎ Π²ΡΠ΅Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Вакая пСрСмСнная являСтся глобальной для всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

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

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ опрСдСлСнная Π² Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π­Ρ‚Π° пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’Π°ΠΊΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ локальной.

По Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΆΠΈΠ²ΡƒΡ‰ΠΈΠ΅ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ послС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ относятся ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ°ΡŽΡ‚ΡΡ ΠΏΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡƒΡ‰Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ слово static. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ ΠΆΠΈΠ²ΡƒΡ‚ начиная с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Однако Π² ΡΠΌΡ‹ΡΠ»Π΅ видимости эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π—Π°ΠΏΠΈΡΡŒ static int i=0; ΠžΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ пСрСмСнная инициализируСтся Π½ΡƒΠ»Π΅ΠΌ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ…ΠΎΠ΄Π΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π²Ρ…ΠΎΠ΄Π°Ρ… Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сохраняСтся Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ‚Π΅Ρ… дСйствий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π΄ Π½Π΅ΠΉ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Ρ‹.

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

И ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ДинамичСски выдСлСнная ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π³Π΄Π΅ Π±Ρ‹ Π²Ρ‹ Π΅Π΅ Π½Π΅ Π²Ρ‹Π΄Π΅Π»ΡΠ»ΠΈ ΠΆΠΈΠ²Π΅Ρ‚ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΠΎΠΊΠ° Π²Ρ‹ Π΅Π΅ Π½Π΅ освободили.

1.5 ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ присваивания.

Π‘Π°ΠΌΠΎΠΉ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ являСтся присваиваниС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с= a/b. Π’ Π‘ΠΈ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ обозначаСтся Π·Π½Π°ΠΊΠΎΠΌ равСнства=, ΠΏΡ€ΠΈ этом Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ справа ΠΎΡ‚ Π·Π½Π°ΠΊΠ° равСнства присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ слСва. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ присваивания, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: с = a = b.

АрифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

Π’ Π‘ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:

1.Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅: слоТСниС (+), Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ (-), ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ (*), Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (/), цСлочислСнноС Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (%) (для Ρ‚ΠΈΠΏΠ° int ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ остатка).

2.Π£Π½Π°Ρ€Π½Ρ‹Π΅: ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ плюс (+), ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ минус (-), адрСсация (&), косвСнная адрСсация (*), ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° памяти Ρ‚ΠΈΠΏΠ° (sizeof).

3.ЛогичСскиС: ΠΈ (&&), ΠΈΠ»ΠΈ (!!), Π½Π΅ (≠).

4.ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ:

a)Ρ€Π°Π²Π½ΠΎ (==), Π½Π΅ Ρ€Π°Π²Π½ΠΎ (!>);

Π±) мСньшС Ρ‡Π΅ΠΌ (<), большС Ρ‡Π΅ΠΌ (>), мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ (<=), большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ (>=);

5.ΠŸΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΡ (++) ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ (—). НапримСр, i++ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ i=i+1, Π° i— ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ i=i-1.

6.ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ — ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π±ΠΈΡ‚Π°ΠΌΠΈ.

7.ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π’ Π’ΡƒΡ€Π±ΠΎ-Π‘ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ сокращСния ΠΏΡ€ΠΈ написании Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, содСрТащих многочислСнныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

a = a + b; сокращаСтся Π΄ΠΎ a += b;

a = a — b; сокращаСтся Π΄ΠΎ a -= b;

a = a * b; сокращаСтся Π΄ΠΎ a *= b;

a = a / b; сокращаСтся Π΄ΠΎ a /= b;

a = a % b; сокращаСтся Π΄ΠΎ a %= b;

8.АдрСсныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

1. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ опрСдСлСния адрСса (&) 2. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ обращСния ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ (*).

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ & Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ адрСс Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ; Ссли Π₯ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° int, Ρ‚ΠΎ &Π₯ являСтся адрСсом (располоТСния Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ) этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ссли msg являСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° Ρ‚ΠΈΠΏ char, Ρ‚ΠΎ *msg являСтся символом, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ msg. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

#include

main ()

{

int X;

char *msg;

X = 6 + 1;

msg = «ΠŸΡ€ΠΈΠ²Π΅Ρ‚n» ;

printf («X = %d &X = %p n», X,&X);

printf («*msg = %c msg = %p n», *msg, msg);

}

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ пСчатаСтся Π΄Π²Π° значСния: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ X 7 ΠΈ Π°Π΄Ρ€Π΅Ρ X (Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌΡ‹ΠΉ компилятором). Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ пСчатаСтся Π΄Π²Π° значСния: символ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ msg (П), ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ msg, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся адрСсом этого символа (Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ компилятором).

Π‘Ρ‚Π°Ρ€ΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² Π‘ΠΈ ΡΠΎΠΎΡ‚вСтствуСт ΡΡ‚Π°Ρ€ΡˆΠΈΠ½ΡΡ‚Π²Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ запятая.

Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ мноТСствСнных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, располоТСнных Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ запятая. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ скобок вычисляСтся слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ, ΠΈ Π²ΡΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ вычислСно послСдним. НапримСр:

char X, Y;

(X = Y, Y = getch ())

присваиваСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ X Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Y, Π·Π°Ρ‚Π΅ΠΌ считываСт символ, Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π΅Π³ΠΎ Π² Y. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ всСго выраТСния, Π² ΠΈΡ‚ΠΎΠ³Π΅, Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ символа.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ управлСния.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ If… Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΡƒΡΠ»ΠΎΠ²ΠΈΡ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΈΠ½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Бинтаксис ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

If ΡƒΡΠ»ΠΎΠ²ΠΈΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 else Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2;

УсловиС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Π²ΠΈΠ΄Π΅ логичСского значСния истинности ΠΈΠ»ΠΈ лоТности. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ссли условиС истинно. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2 Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ссли условиС Π»ΠΎΠΆΠ½ΠΎ.

БущСствуСт сокращСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°:

If ΡƒΡΠ»ΠΎΠ²ΠΈΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1

ΠŸΡ€ΠΈΠΌΠ΅Ρ€. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ число Π΄Π½Π΅ΠΌ Π½Π΅Π΄Π΅Π»ΠΈ, Ρ‚. Π΅. Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π»ΠΈ число Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚ 1 Π΄ΠΎ 7.

#include

int A;

main ()

printf («? «);

scanf («%d» ,&A);

if ((A < 1)

Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ условия (A<1) || (A>7) Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π°Π²Π°Ρ‚ΡŒ TRUE, Ссли выполняСтся A<1 ΠΈΠ»ΠΈ A>7 — Π² ΡΡ‚ΠΎΠΌ случаС выполняСтся Π²Π΅Ρ‚ΠΊΠ° printf ('Error ', A);, ΠΈΠ½Π°Ρ‡Π΅ Π²Π΅Ρ‚ΠΊΠ° printf ('OK ', A);.

БущСствуСт Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ записи ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° If … ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

#include

main ()

{

int y, t;

printf («? «);

scanf («%d» ,&t);

y=(t>0)? t*10: t-10; /* if t>0 y=t*10 else y=t-10;*/

printf («OK %dn», y);

}

Π’ Π΄Π°Π½Π½ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Π²ΠΈΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ариях.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ switch… case ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΡΠ»ΡƒΡ‡Π°Π΅, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ дСйствия. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π‘ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ вводятся Π±ΡƒΠΊΠ²Ρ‹ латинского Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρ‹. Π’ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π±ΡƒΠΊΠ²Ρ‹ произвСсти Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ дСйствия.

#include

char A;

main ()

{

printf («? «);

scanf («%c» ,&A);

switch (A) {

case 'c': printf («smoll %cn», A); break; /* Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Π±Π»ΠΎΠΊΠ° */

case 'F':

case 'G': printf («big %cn», A);

break;

default: printf («Error %cn», A);

}

}

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ссли Π²Π²Π΅Π΄Π΅Π½ символ с, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся printf («smoll %cn», A);, Ссли вводится Π·Π°Π³Π»Π°Π²Π½Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹ F ΠΈΠ»ΠΈ G, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся printf («big %cn», A);, Ссли Π½Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½Ρ‹Ρ… символов Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ся, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся printf («Error %cn», A);.

Для повторСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ мноТСства ΠΊΠΎΠΌΠ°Π½Π΄ нСсколько Ρ€Π°Π· ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ do… while. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

#include

main ()

{

int A;

do {

printf («Zifra? «);

scanf («%d» ,&A);

printf («Error %dn», A);

} while (!(A == 9));

printf («OK %dn», A);

}

Π‘ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ вводится число. ВыполняСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ printf («Error %dn», A);. Π”Π°Π»Π΅Π΅ ΠΈΠ΄Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ· — Ρ€Π°Π²Π½ΠΎ число 9 ΠΈΠ»ΠΈ Π½Π΅Ρ‚, Ссли Π½Π΅ Ρ€Π°Π²Π½ΠΎ, снова выполняСтся Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°:

printf («Zifra? «);

scanf («%d» ,&A);

printf («Error %dn», A).

Если число Ρ€Π°Π²Π½ΠΎ 9, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ printf («OK %dn», A); ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° Ρ†ΠΈΠΊΠ»Π° заканчиваСтся.

Π“Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° do… while являСтся Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ do ΠΈ while выполняСтся хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Ρ‚. Π΅. Π²Π½Π°Ρ‡Π°Π»Π΅ выполняСтся Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ΄Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ· условия.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, смысл рассматриваСмого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ: «Π’ыполняй Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° истинно условиС» .

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ while… Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ do… while Π²Π½Π°Ρ‡Π°Π»Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ условиС, Π° Π·Π°Ρ‚Π΅ΠΌ выполняСт Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€.

#include

main ()

{

int A;

A = 0;

while (A ≠ 9)

{

printf («Zifra? «);

scanf («%d» ,&A);

printf («Error %dn», A);

}

printf («OK %dn», A);

}

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° пСрСмСнная A:=0;. Π­Ρ‚ΠΎ сдСлано, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ΄Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ· Ρ€Π°Π²Π½Π° ΠΎΠ½Π° 9 ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Если Π½Π΅ Ρ€Π°Π²Π½Π°, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°. Бмысл рассматриваСмого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ:

«ΠŸΠΎΠΊΠ° истинно условиС выполняй Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°».

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° извСстно сколько Ρ€Π°Π· Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°, Π½ΠΎ ΡΡ‚ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π³ΠΎΡ€Π°Π·Π΄Π° Π³ΠΈΠ±Ρ‡Π΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠŸΠ°ΡΠΊΠ°Π»Π΅ΠΌ. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

#include

int A;

main ()

{

for (A = 1; A <= 5; A++) /* A++ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ A=A-1 */

printf («Zifra %dn», A);

}

Π’ ΡΡ‚ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ A Ρ…Ρ€Π°Π½ΠΈΡ‚ состояниС счСтчика Ρ†ΠΈΠΊΠ»Π°. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ A:=1. ВыполняСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ printf («Zifra %dn», A). Π”Π°Π»Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ A ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ся Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Π˜Π΄Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ· A<=5 ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Если A Π±ΠΎΠ»ΡŒΡˆΠ΅ 5, Ρ‚ΠΎ Ρ†ΠΈΠΊΠ» Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Если Π½Π΅Ρ‚, Ρ‚ΠΎ ΡΠ½ΠΎΠ²Π° выполняСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ printf («Zifra %dn», A).

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ рассмотрим Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° for…, ΠΊΠΎΠ³Π΄Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ большС ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ, Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ†ΠΈΠΊΠ»Π° ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ.

#include

int A;

main ()

{

for (A = 5; A >= 1; A—) /* A— ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ A=A-1 */

printf («Zifra %dn», A);

}

БущСствуСт мноТСство ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° for…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

— ΠΏΡƒΡΡ‚ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ — для Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ:

for (n=1;n <=10 000;n++)

; /* пустой ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ */

— ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ шага:

for (n=1;n <=230;n=n+10)

— ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

for (x=2;n*n <=476;n=5*x++)

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, измСняСтся послС ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°:

#include

#define f 30

#define n 19

main ()

{

int y, t;

for (y = 1, t=f; y<=16; y++, t+=n) /*t+=n ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ t=t+n*/ printf («%3d %7dn», y, t);

}

Π”Π°Π»Π΅Π΅ рассмотрим, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ вСтвлСния (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ).

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ goto позволяСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π»ΡŽΠ±ΡƒΡŽ строку ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Для этой Ρ†Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΊΠ°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€.

#include

#include

main ()

{

char A;

label1:/* ΠΌΠ΅Ρ‚ΠΊΠ° */ printf («? n»);

cin>>A;

if (A ≠ 'y') goto label1; }

Для прСрывания Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ break. ΠŸΡ€ΠΈΠΌΠ΅Ρ€.

#include

#include

char A;

int I;

main ()

{

for (I = 1; I <= 10; I++)

{

printf («? n»);

cin >>A;

i (A == 'y') break;

}

}

Для прСрывания ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Continue. ΠŸΡ€ΠΈΠΌΠ΅Ρ€.

#include

#include

char A;

int I;

main ()

{

for (I = 1; I <= 10; I++)

{

printf («? n»);

cin >>A;

if (A == 'y') continue;

printf («Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ %cn», A);

}

}

Для прСрывания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ return () ΠΈ exit ().

1.6. ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€

ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ языка Π‘ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ трансляции Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, написанных ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ.

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

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #define ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π² Π»ΡŽΠ±ΠΎΠΌ мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ Сю ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ силу ΠΎΡ‚ ΠΌΠ΅ΡΡ‚Π° Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

#include

#include

#define TRI 3

#define OTWET TRI*TRI

#define OT printf («ΠžΠ’Π’Π•Π’ Ρ€Π°Π²Π΅Π½ %d.n», OTWET)

#define jd cin >>C;

main ()

{

int C;

OT;

jd;

}

ПослС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ получится:

ΠžΠ’Π’Π•Π’ Ρ€Π°Π²Π΅Π½ 9

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ TRI — это ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ½ΠΎ Ρ€Π°Π²Π½ΠΎ 3, Π³Π΄Π΅ 3 — строка замСщСния.

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ OTWET ΠΈΠΌΠ΅Π΅Ρ‚ строку замСщСния TRI*TRI ΠΈ Ρ‚. Π΄. КаТдая строка состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… частСй. ΠŸΠ΅Ρ€Π²ΠΎΠΉ стоит Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #define, Π΄Π°Π»Π΅Π΅ ΠΈΠ΄Π΅Ρ‚ ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. ΠœΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹. И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΈΠ΄Π΅Ρ‚ строка (называСмая «ΡΡ‚Ρ€ΠΎΠΊΠΎΠΉ замСщСния»), ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ прСдставляСт ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Когда прСпроцСссор Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ, ΠΎΠ½ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ‚ Π΅Π³ΠΎ строкой замСщСния. Π­Ρ‚ΠΎΡ‚ процСсс прохоТдСния ΠΎΡ‚ ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ строки замСщСния называСтся «ΠΌΠ°ΠΊΡ€ΠΎΡ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ» .

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #include.

Когда прСпроцСссор «Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ‚» Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ #include, ΠΎΠ½ ΠΈΡ‰Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π·Π° Π½Π΅ΠΉ имя Ρ„Π°ΠΉΠ»Π° ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΅Π³ΠΎ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Π±Ρ‹Π²Π°Π΅Ρ‚ Π² Π΄Π²ΡƒΡ… Π²ΠΈΠ΄Π°Ρ…:

#include имя Ρ„Π°ΠΉΠ»Π° Π² ΡƒΠ³Π»ΠΎΠ²Ρ‹Ρ… скобках

#include «my.h» имя Ρ„Π°ΠΉΠ»Π° Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… Π£Π³Π»ΠΎΠ²Ρ‹Π΅ скобки ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‚ прСпроцСссору, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» слСдуСт ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… стандартных систСмных ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠΈ говорят Π΅ΠΌΡƒ, Ρ‡Ρ‚ΠΎ сначала Π½ΡƒΠΆΠ½ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² «ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Ρ…» мСстах.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹: #undef, #ifdef, #else, #endif

Π­Ρ‚ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ дСйствиС Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #undef отмСняСт самоС послСднСС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ макроопрСдСлСния.

#define TRI 3

#define F 5

#undef TRI /* TRI Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ */

#define F 10 /* F ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΠΊ 10 */

#undef F /* F ΡΠ½ΠΎΠ²Π° Ρ€Π°Π²Π΅Π½ 5 */

#undef F /* F Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ */

Рассмотрим Π΅Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

#ifdef OTW

#include «otw.h» /* выполнится, Ссли OTW ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ */

#define ST 10

#else

#include «w.h» /* выполнится, Ссли OTW Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ */

#define ST 20

#endif

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ifdef сообщаСт, Ρ‡Ρ‚ΠΎ Ссли ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ OTW опрСдСляСтся прСпроцСссором, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ся всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ появлСния #else ΠΈΠ»ΠΈ #endif. Когда Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΅ΡΡ‚ΡŒ #else, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ‚ #else Π΄ΠΎ #endif Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Ссли ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½.

1.7 ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Как ΠΌΡ‹ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Π‘ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ сСгмСнт, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉΡΡ с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² прСпроцСссора ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова main.

Π”Π°Π»Π΅Π΅ ΠΈΠ΄Π΅Ρ‚ собствСнно ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π°ΡΡΡ с ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉΡΡ Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΎΠΉ скобки { ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°ΡΡΡ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉΡΡ Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΎΠΉ скобкой }.

Часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ участки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. КаТдая функция Ρ‚Π°ΠΊΠΆΠ΅ начинаСтся с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² прСпроцСссора ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΡΠΊΠΎΠ±ΠΎΠΊ { }.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ рисования лСстницы.

#include

main ()

n");

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ напишСм эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Lestniza.

#include

Lestniza (void)

—-;

main ()

{

Lestniza ();

Lestniza ();

Lestniza ();

}

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ осущСствляСтся Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π°. Для прСодолСния этого нСдостатка ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ Π²Π²Π΅Π΄Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Ρ„актичСскиС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹:

#include

int C;

Lestniza (int B)/* B — Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ */

int A;

for (A = 1; A <= B; A++)

printf («

main ()

{

Lestniza (3); /* 3 -фактичСский Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ */

}

Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ B ΡΠ²Π»ΡΠ΅Ρ‚ся Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ (конСчная Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° for to). Для присвоСниС Π΅ΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ значСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ фактичСский Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСдаСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈ Π΅Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

Если Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ пСрСдаСтся нСсколько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠ°ΠΊΠΎΠΌ записаны Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Рассмотрим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π΅ своС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ возвСдСния числа Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚.

#include

float Kwadrat (float A)

{

return A * A;

}

float B;

main ()

{

printf («? n»);

scanf («%f» ,&B);

printf («Kwadrat = %8.2fn», Kwadrat (B));

}

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° — имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Kwadrat — ΠΎΠ½Π° вычисляСт ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ числа. Π’ ΡΡ‚Ρ€ΠΎΠΊΠ΅ printf («Kwadrat = %8.2fn», Kwadrat (B)); эта функция вызываСтся — Π½Π° Π²Ρ…ΠΎΠ΄ подаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ число), Π° Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ — ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ числа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ возвращаСтся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ return.

Рассмотрим Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ return.

#include

Kwadrat (float A, float *B)

{

*B = A * A;

}

float C, D;

main ()

{

printf («? n»);

scanf («%f» ,&C);

Kwadrat (C,&D);

printf («Kwadrat = %8.2fn», D);

}

1.8. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ — это пСрСмСнная, содСрТащая адрСс Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π½Π΅ ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ:

1.Для связи нСзависимых структур Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

2.Для динамичСского распрСдСлСния памяти.

3.Для доступа ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ элСмСнтам структуры.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:

#include

main ()

{

int Z,*Y;

Y =&Z;

Z = 100;

printf («ΠŸΡ€ΡΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Z: %dn», Z);

printf («Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Z, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ: %dn» ,*Y);

printf («ΠΠ΄Ρ€Π΅Ρ Z Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ адрСса: %pn» ,&Z);

printf («ΠΠ΄Ρ€Π΅Ρ Z Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ: %pn», Y);

}

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Y ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ†Π΅Π»ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π΅Π΅ Π°Π΄Ρ€Π΅Ρ. Π’ ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ & позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ адрСс ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Z. Π’ ΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅:

— Π°Π΄Ρ€Π΅Ρ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Z ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ‚ся Y;

— Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 100 присваиваСтся Z;

— ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ &, позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ адрСс,

ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Z.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

ΠŸΡ€ΡΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Z: 100

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Z, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ: 100

АдрСс Z Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ адрСса: 85B3:0FDC

АдрСс Z Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ: 85B3:0FDC

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ распрСдСлСния памяти.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ указатСля Π½Π° Ρ‡ΠΈΡΠ»ΠΎ Ρ‚ΠΈΠΏΠ° char.

#include

#include

#include

#include

#include

int main (void)

{

char *str; /* ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ */

str = (char *)malloc (10);

strcpy (str, «Hello»);

printf («String is %sn», str);

free (str);

return (0);

}

Π’Π½Π°Ρ‡Π°Π»Π΅ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ char *str; создан Ρ‚ΠΈΠΏ str, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° char (* ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ «ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ»). По ΠΊΠΎΠΌΠ°Π½Π΄Π΅ str = (char *)malloc (10); выдСляСм 10 Π±Π°ΠΉΡ‚ памяти ΠΏΠΎΠ΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ str (Ρ‚ΠΈΠΏΠ° строка). По ΠΊΠΎΠΌΠ°Π½Π΄Π΅ strcpy (str, «Hello»); осущСствляСтся — «Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ str, строку символов «Hello». По ΠΊΠΎΠΌΠ°Π½Π΄Π΅ printf («String is %sn», str); осущСствляСтся «Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Π½Π° ΡΠΊΡ€Π°Π½Π΅ Ρ‚ΠΎ, Π½Π° Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ str. Команда free (str); освобоТдаСт ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ str.

Рассмотрим Π±ΠΎΠ»Π΅Π΅ слоТный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ получСния доступа ΠΊ Π·Π°ΠΏΠΈΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ.

#include

#include

#include

#include

struct Student { /* запись Student */

char Fio[30]; /* полС записи Fio */

int Gruppa; /* полС записи Gruppa */

}; /* ΠΊΠΎΠ½Π΅Ρ† записи */

struct Student *A;

main ()

{

if ((A =(Student *) malloc (sizeof (Student))) == NULL)

{

printf («ΠΠ΅Ρ‚ памятиn»);

exit (1);

}

strcpy (A[1]. Fio, «Ivanov»);

A[1]. Gruppa=385;

printf («Fio1%sn Gruppa %dn», A[1]. Fio, A[1]. Gruppa);

strcpy (A[2]. Fio, «Petrow»);

A[2]. Gruppa=386;

printf («Fio2%sn Gruppa %dn», A[2]. Fio, A[2]. Gruppa);

free (A);

}

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для получСния косвСнного указатСля Π½Π° ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ.

ΠŸΡƒΡΡ‚ΡŒ poit являСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ ΠΈ Ρ‡Ρ‚ΠΎ elem элСмСнт, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ структурным шаблоном. Π’ΠΎΠ³Π΄Π° point->elem опрСдСляСт элСмСнт, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся ссылка. Рассмотрим ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

struct Student { /* запись Student */

char Fio[30]; /* полС записи Fio */

int Gruppa; /* полС записи Gruppa */

}; /* ΠΊΠΎΠ½Π΅Ρ† записи */

Student *poin;

БСйчас ΠΊ ΠΏΠΎΠ»ΡΠΌ структуры ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ нСсколькими способами. Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½Ρ‹Π΅ обращСния:

Student.Gruppa=236;

poin->Gruppa=236;

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ ΠΎΠ΄Π½Ρƒ Π²Π°ΠΆΠ½ΡƒΡŽ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π² Π‘ΠΈ. Вранслятор автоматичСски ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ указатСля Π² Π°Ρ€ΠΈΡ„мСтичСских дСйствиях Π½Π°Π΄ Π½ΠΈΠΌ. НапримСр Ссли i Π΅ΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ†Π΅Π»ΡƒΡŽ (Ρ‚.Π΅. Π΄Π²ΡƒΡ…Π±Π°ΠΉΡ‚Π½ΡƒΡŽ) ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° i++ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠ΄ΠΈΠ½, Π° Π΄Π²Π° Π±Π°ΠΉΡ‚Π°, Ρ‚. Π΅. Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈΠ»ΠΈ элСмСнт массива. По ΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСсто индСксов массива. НапримСр Ссли A — ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΌΠ°ΡΡΠΈΠ² Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ρ‚ΠΎ Π²ΠΌΠ΅ΡΡ‚ΠΎ A[i] ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ *(A+i). Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, использованиС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ вмСсто индСксов позволяСт компилятору ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ ΠΈ Π±Ρ‹ΡΡ‚Ρ€Ρ‹ΠΉ ΠΊΠΎΠ΄.

1.9 Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Ѐункция swap (ΠΎΠ±ΠΌΠ΅Π½) ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ Π΄Π²Π° Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° x ΠΈ y, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° int. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ функция swap Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π°Π΄Ρ€Π΅ΡΠ°ΠΌΠΈ Ρ†Π΅Π»Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (Π° Π½Π΅ с ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΠΌΠΈ). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅, адрСса ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ обращСния ΠΊ Π½Π΅ΠΉ. Ѐункция main (), Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ swap.

#include

swap (int *x, int *y)

{

int wr;

wr = *x; *x = *y; *y =wr;

}

main ()

{

int i, j;

i = 100;

j = 200;

printf («Π‘Ρ‹Π»ΠΎ: i=%d, j=%dn», i, j);

swap (&i,&j);

printf («Π‘Ρ‚Π°Π»ΠΎ: i =%d, j=%dn», i, j);

}

ПослС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ значСния i ΠΈ j ΠΏΠΎΠΌΠ΅Π½ΡΡŽΡ‚ся мСстами. НСобходимо ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ хотя ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ ΡΠΊΠΎΠ½ΠΎΠΌΡΡ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π½ΠΎ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ врСмя процСссора Π³ΠΎΡ€Π°Π·Π΄Π° большС.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, рассмотрСны основныС элСмСнты языка Π‘ΠΈ.

1.10 Π€Π°ΠΉΠ»Ρ‹

Π€Π°ΠΉΠ» — это ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…, записанных Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ носитСлС. Π€Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π½Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, ΡΡ‚Π΅Ρ€Π΅Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ, ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π’Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ Π² Ρ„Π°ΠΉΠ» осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² прямого ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ доступа.

Расмотрим спСрва Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ доступа.

Π’Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄Π° Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Π½. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΈΡˆΠ΅Ρ‚ ΠΈ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π² Π±ΡƒΡ„Π΅Ρ€; ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π±ΡƒΡ„Π΅Ρ€ΠΎΠΌ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠΌ происходит Π² ΡΠ»ΡƒΡ‡Π°Π΅, Ссли Π±ΡƒΡ„Π΅Ρ€ ΠΏΠΎΠ»ΠΎΠ½, ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°, ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

#include

main ()

{

FILE *in, *out;

char n1[8], n2[8];

printf («Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»n»);

gets (n1);

printf («Π’Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»n»);

gets (n2);

if ((in = fopen (n1, «rt»))== NULL)

{

printf («ΠΠ΅ ΠΌΠΎΠ³Ρƒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ исходный Ρ„Π°ΠΉΠ»n»); return 1;

}

if ((out = fopen (n2, «wt»))== NULL)

{

printf («ΠΠ΅ ΠΌΠΎΠ³Ρƒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»n»); return 1;

}

while (!feof (in))

fputc (fgetc (in), out);

fclose (in);

fclose (out);

}

Π‘Ρ‚Ρ€ΠΎΠΊΠ° FILE *in, *out; опрСдСляСт ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π΄Π²Π° Ρ„Π°ΠΉΠ»Π°. Имя Ρ„Π°ΠΉΠ»Π° ΠΌ.Π±. Π»ΡŽΠ±Ρ‹ΠΌΠ² нашСм случаС in — исходный Ρ„Π°ΠΉΠ», out — Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС char n1[8], n2[8]; опрСдСляСм Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ n1 ΠΈ n2 для хранСния ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ². Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ строки ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ввСсти ΠΈΠΌΠ΅Π½Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ эти ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ n1 ΠΈ n2. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚. Для этого сущСствуСт функция fopen () Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ содСрТит имя Ρ„Π°ΠΉΠ»Π°, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ — Π²ΠΈΠ΄ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ «rt» — Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ».

Команда in = fopen (n1, «rt» Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°, Π·Π°ΠΏΠΎΠΌΠ½Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ n1 Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ in Π½Π° ΡΡ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ (ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ) ΠΌΡ‹ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ символов ΠΈΠ· Ρ„Π°ΠΉΠ»Π°. Если Ρ„Π°ΠΉΠ» Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ fp Π±ΡƒΠ΄Π΅Ρ‚ NULL, ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ fprintf (stderr, «ΠΠ΅ ΠΌΠΎΠ³Ρƒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»n»); return 1; ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Аналогично Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ функция out = fopen (n2, «wt», Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ out — Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ», Π° Π²ΠΈΠ΄ Ρ€Π°Π±ΠΎΡ‚Ρ‹ «wt» -запись Π² Ρ„Π°ΠΉΠ»).

По ΡΡ‚ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ создаСтся Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ, записанным Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ n2.

Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° осущСствляСтся Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ fgetc (in). ЧитаСтся ΠΎΠ΄ΠΈΠ½ символ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°, связанного с ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ in.

По ΠΊΠΎΠΌΠ°Π½Π΄Π΅ fputc (fgetc (in), out); считанный символ записываСтся Π² Ρ„Π°ΠΉΠ» out. Для чтСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· Π²ΡΠ΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конструкция while (!feof (in))

fputc (fgetc (in), out);.

Ѐункция feof (in) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ, ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΎΡ‚ Π½ΡƒΠ»Ρ, Ссли находится Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΠΈ Π½ΠΎΠ»ΡŒ — Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС. Пока Π½Π΅ Π²ΡΡ‚рСтится ноль, Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ся Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ.

Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° происходит ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fclose (). Если ΠΏΡ€ΠΈ этом Ρ„Π°ΠΉΠ» Π±Ρ‹Π» ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Π½Π° Π·Π°ΠΏΠΈΡΡŒ, происходит Π²Ρ‹Π²ΠΎΠ΄ содСрТимого Π±ΡƒΡ„Π΅Ρ€Π°, связанного с ΡΡ‚ΠΈΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ. Бвязь ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠΌ разрываСтся.

Аналогично функция fgetc (string, n, fp) Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°, связанного с fp, строку ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π΅Π΅ Π² string. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ символ 'n', ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΈΡΡ‡Π΅Ρ€ΠΏΠ°Π΅Ρ‚ся Ρ„Π°ΠΉΠ», ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ΠΎ (n-1) символов.

Π Π΅ΠΆΠΈΠΌ прямого доступа Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΎΠΊ, Ρ‚.ΠΊ. позволяСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ Π»ΡŽΠ±ΠΎΠΉ записи Ρ„Π°ΠΉΠ»Π°. Минимальной записью для Ρ„Π°ΠΉΠ»Π° прямого доступа являСтся Π±Π°ΠΉΡ‚. НиТС Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСн случай Ρ„Π°ΠΉΠ»Π° прямого доступа с Π·Π°ΠΏΠΈΡΡŒΡŽ Ρ€Π°Π²Π½ΠΎΠΉ Π±Π°ΠΉΡ‚Ρƒ. Π’Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ. Π€Π°ΠΉΠ»Ρ‹ прямого доступа Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΏΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π±ΠΎΠ»ΡŒΡˆΠΈΠΌΠΈ объСмами ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, хранящимися Π½Π° Π²Π½Π΅ΡˆΠ½ΠΈΡ… устройствах. Π’ ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π‘Π£Π‘Π” Π»Π΅ΠΆΠ°Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ прямого доступа.

ΠšΡ€Π°Ρ‚ΠΊΠΎ ΠΈΠ·Π»ΠΎΠΆΠΈΠΌ основныС полоТСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ прямого доступа.

1). КаТдая запись Π² Ρ„Π°ΠΉΠ»Π΅ прямого доступа ΠΈΠΌΠ΅Π΅Ρ‚ свой Π½ΠΎΠΌΠ΅Ρ€. Записи Π½ΡƒΠΌΠ΅Ρ€ΡŽΡ‚ΡΡ ΠΎΡ‚ 0 Π΄ΠΎ N-1, Π³Π΄Π΅ N — количСство записСй Π² Ρ„Π°ΠΉΠ»Π΅. Для Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° N ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ‚ с Π΄Π»ΠΈΠ½ΠΎΠΉ Ρ„Π°ΠΉΠ»Π° Π² Π±Π°ΠΉΡ‚Π°Ρ…. Для ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΎΠ΄Π½Π° ΠΈΠ· Π·Π°ΠΏΠΈΡΠ΅ΠΉ являСтся Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ — говорят, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ установлСн Π½Π° Π΄Π°Π½Π½ΡƒΡŽ запись. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ lseek.

2). ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ (ΠΈΠ»ΠΈ создания Ρ„Π°ΠΉΠ»Π°) ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ автоматичСски помСщаСтся Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ (запись 0). ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния ΠΈΠ»ΠΈ записи ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ автоматичСски пСрСмСщаСтся Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡŽΡŽ ΡΡ‡ΠΈΡ‚Π°Π½Π½ΡƒΡŽ (Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ запись) запись.

3). Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° (ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΡ€Π΅Π·Π°Ρ‚ΡŒ) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ chsize. ΠŸΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„Π°ΠΉΠ»Π° ΠΊ Π½Π΅ΠΌΡƒ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ записи, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Π°ΠΌΠΈ 0.

НиТС прСдставлСна ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.

#include

#include

#include

#include

#include

void main ()

{

int h; /*дСскриптор создаваСмого Ρ„Π°ΠΉΠ»Π°*/

char * s="Π­Ρ‚Π° строка Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π° Π² Ρ„Π°ΠΉΠ»" ;

char buf[7]; /*Π±ΡƒΡ„Π΅Ρ€ для чтСния ΠΈΠ· Ρ„Π°ΠΉΠ»Π°*/

_fmode=O_BINARY; /*Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ*/

if ((h=creat («proba.txt», S_IREAD |S_IWRITE))==-1) /*ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»*/

{

printf («ΠΠ΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ»! n»);

exit (1);

}

write (h, s, strlen (s)); /*Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ» строку s*/

lseek (h, 4, SEEK_SET); /*Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ Π±Π°ΠΉΡ‚ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»Π°*/

read (h, buf, 6); /*Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ слово 'строка' (6 Π±Π°ΠΉΡ‚) ΠΈΠ· Ρ„Π°ΠΉΠ»Π°*/

buf[6]=0; /*ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅ΠΌ ΠΊΠΎΠ½Π΅Ρ† строки*/

close (h); /*Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ»*/

printf («%sn», buf); /*ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ считанной строки*/

}

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

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибки создания Ρ„Π°ΠΉΠ»Π°. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΡƒΠ΄Π°Ρ‡Π½Ρ‹ΠΌ ΠΈ Π² Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ситуации.

ΠŸΡ€ΠΈ ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° Π΅ΠΌΡƒ отводится дСскриптор (ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ число), ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ.

НаконСц Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ строка Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π° станСт строкой, ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠΎΠ½Ρ†Π΅ стоит ΠΊΠΎΠ΄ .

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ нашСго рассмотрСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ нашС ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ касалось Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² ΡΡ€Π΅Π΄Π΅ MS DOS. Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² ΠžΠ‘ Windows нСсколько отличаСтся ΠΎΡ‚ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ся Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ API (ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π² Windows см. Π½ΠΈΠΆΠ΅).

1.11 Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘ΠΈ

1.11.1 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСобразования

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ пСрСмСнная Π‘:

ЀУНКЦИЯ ΠŸΠ ΠžΠ’Π•Π Π―Π•Π’, Π―Π’Π›Π―Π•Π’Π‘Π― Π›Π˜ C

isalpha© Π±ΡƒΠΊΠ²ΠΎΠΉ

isdigit© Ρ†ΠΈΡ„Ρ€ΠΎΠΉ

islower© ΡΡ‚Ρ€ΠΎΡ‡Π½ΠΎΠΉ Π±ΡƒΠΊΠ²ΠΎΠΉ

isspace© ΠΏΡƒΡΡ‚Ρ‹ΠΌ символом (ΠΏΡ€ΠΎΠ±Π΅Π», табуляция ΠΈΠ»ΠΈ новая строка)

isupper© ΠΏΡ€ΠΎΠΏΠΈΡΠ½ΠΎΠΉ Π±ΡƒΠΊΠ²ΠΎΠΉ

isalnum© Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΡ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ (Π±ΡƒΠΊΠ²Π° ΠΈΠ»ΠΈ Ρ†ΠΈΡ„Ρ€Π°)

isascii© ΠΊΠΎΠ΄ΠΎΠΌ ASCII (0−127)

iscntrl© ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ символом

ispunct© Π·Π½Π°ΠΊΠΎΠΌ ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠΈ

toupper© ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ c Π² ΠΏΡ€ΠΎΠΏΠΈΡΠ½ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ

tolower© ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ c Π² ΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π±ΡƒΠΊΠ²Ρƒ A ΠΈΠ· ΠΏΡ€ΠΎΠΏΠΈΡΠ½ΠΎΠΉ Π² ΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ a.

#include

#include

main ()

{

char Z, Y='A';

printf («Π‘Ρ‹Π»ΠΎ %cn «, Y);

Z=tolower (Y);

printf («Π‘Ρ‚Π°Π»ΠΎ %cn «, Z);

}

1.11.2 ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… строк: atoi (), atof ()

ΠŸΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° цСлСсообразнСС ввСсти строку символов, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ число.

Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ atoi () ΠΈ atof (). ΠŸΠ΅Ρ€Π²Π°Ρ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ строку Π² Ρ†Π΅Π»ΠΎΠ΅, вторая — Π² Ρ‡ΠΈΡΠ»ΠΎ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

#include

#include

main ()

{

char ch[10];

int integ;

puts («Π’Π²Π΅Π΄ΠΈΡ‚Π΅, поТалуйста, Ρ†Π΅Π»ΠΎΠ΅»);

gets (ch);

integ=atoi (ch);

printf («Π§ΠΈΡΠ»ΠΎ Π±Ρ‹Π»ΠΎ %d.n», integ);

}

1.11.3 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ со ΡΡ‚Ρ€ΠΎΠΊΠ°ΠΌΠΈ

strlen () — Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π΄Π»ΠΈΠ½Ρƒ строки;

strcat () — ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Π΄Π²Π΅ строки;

strcmp () — сравниваСт содСрТимоС строк;

strcpy () — ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ строки.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

#include

#include

main ()

{

char k[60]="Π•ΡΡ‚ΡŒ Π² Π΄ΠΎΠΆΠ΄Π΅ ΠΎΡ‚ΠΊΡ€ΠΎΠ²Π΅Π½ΡŒΠ΅" ;

char l[20]="ΠŸΠΎΡ‚Π°Π΅Π½Π½Π°Ρ Π½Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ" ;

printf («Π”Π»ΠΈΠ½Π° 1 строки= %dn «, strlen (k));

strcat (k, l);

puts (k);

}

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ получится: Π”Π»ΠΈΠ½Π° 1 строки= 24. Π•ΡΡ‚ΡŒ Π² Π΄ΠΎΠΆΠ΄Π΅ ΠΎΡ‚ΠΊΡ€ΠΎΠ²Π΅Π½ΡŒΠ΅, ΠŸΠΎΡ‚Π°Π΅Π½Π½Π°Ρ Π½Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ функция strlen (k) опрСдСляСт Π΄Π»ΠΈΠ½Ρƒ строки k.

Ѐункция strcat (k, l) присоСдиняСт ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ строки k ΡΡ‚Ρ€ΠΎΠΊΡƒ l.

1.12 ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘ΠΈ

1.12.1 ΠœΠΎΠ΄ΡƒΠ»ΠΈ. ΠœΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

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