Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Системное программирование. Учебное пособие-1

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
ɋɥɭɠɛɵ (services) ɜɡɚɢɦɨɞɟɣɫɬɜɭɸɬ ɤɚɤ ɫ Ɉɋ, ɬɚɤ ɢ ɫ BIOS, ɢ ɨɛɟɫɩɟɱɢɜɚ­ɸɬ ɞɨɫɬɭɩ ɤ ɚɩɩɚɪɚɬɧɵɦ ɫɪɟɞɫɬɜɚɦ ɤɨɦɩɶɸɬɟɪɚ ɢ ɤ ɩɪɢɤɥɚɞɧɵɦ ɩɪɨɝɪɚɦɦɚɦ. ɋɥɭɠɛɵ – ɷɬɨ ɫɢɫɬɟɦɧɵɟ ɩɪɨɝɪɚɦɦɵ Windows, ɜ Linux ɨɧɢ ɧɚɡɵɜɚɸɬɫɹ ɞɟɦɨ­ɧɚɦɢ (daemons).
Ʉ ɫɢɫɬɟɦɧɵɦ ɩɪɨɝɪɚɦɦɚɦ ɬɚɤɠɟ ɨɬɧɨɫɹɬɫɹ ɞɪɚɣɜɟɪɵ ɭɫɬɪɨɣɫɬɜ, ɞɪɚɣɜɟɪɵ ɩɪɟɪɵɜɚɧɢɣ, ɚɧɬɢɜɢɪɭɫɧɵɟ ɩɪɨɝɪɚɦɦɵ.
Ⱦɪɚɣɜɟɪ (driver) – ɩɪɨɝɪɚɦɦɚ, ɩɪɟɞɧɚɡɧɚɱɟɧɧɚɹ ɞɥɹ ɪɚɛɨɬɵ ɫ ɚɩɩɚɪɚɬɧɵɦɢ ɫɪɟɞɫɬɜɚɦɢ. Ⱦɪɚɣɜɟɪɵ ɹɜɥɹɸɬɫɹ
ɩɨɫɪɟɞɧɢɤɚɦɢ ɦɟɠɞɭ ɭɫɬɪɨɣɫɬɜɚɦɢ ɢ ɩɪɨ­ɝɪɚɦɦɚɦɢ, ɢ ɪɟɚɥɢɡɭɸɬ ɜɨɡɦɨɠɧɨɫɬɶ ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɫɬɚɧɞɚɪɬɧɵɯ ɩɪɨɰɟɞɭɪ ɩɪɢ ɩɪɨɝɪɚɦɦɧɨɦ ɞɨɫɬɭɩɟ ɤ ɚɩɩɚɪɚɬɭɪɟ ɪɚɡɥɢɱɧɵɯ ɦɚɪɨɤ ɢ ɩɪɨɢɡɜɨɞɢɬɟɥɟɣ. Ɉɛɵɱ­ɧɨ ɞɪɚɣɜɟɪɵ ɩɨɫɬɚɜɥɹɸɬɫɹ ɩɪɨɢɡɜɨɞɢɬɟɥɹɦɢ ɜɦɟɫɬɟ ɫ ɭɫɬɪɨɣɫɬɜɚɦɢ, ɩɪɢɱɟɦ ɞɥɹ ɪɚɡɥɢɱɧɵɯ ɜɟɪɫɢɣ ɨɩɟɪɚɰɢɨɧɧɵɯ ɫɢɫɬɟɦ.
ɉɨɞ ɭɩɪɚɜɥɟɧɢɟɦ ɨɩɟɪɚɰɢɨɧɧɨɣ ɫɢɫɬɟɦɵ ɪɚɛɨɬɚɟɬ ɦɧɨɠɟɫɬɜɨ ɩɪɢɤɥɚɞɧɵɯ ɩɪɨɝɪɚɦɦ. Ȼɨɥɶɲɢɧɫɬɜɨ ɩɪɢɤɥɚɞɧɵɯ ɩɪɨɝɪɚɦɦ ɡɚɝɪɭɠɚɸɬɫɹ ɜ ɩɚɦɹɬɶ, ɡɚɩɭɫ­ɤɚɸɬɫɹ, ɚ ɡɚɬɟɦ ɭɞɚɥɹɸɬɫɹ ɨɩɟɪɚɰɢɨɧɧɨɣ ɫɢɫɬɟɦɨɣ ɩɪɢ ɡɚɜɟɪɲɟɧɢɢ ɪɚɛɨɬɵ.
ɉɪɢɤɥɚɞɧɵɟ ɩɪɨɝɪɚɦɦɵ ɦɨɝɭɬ ɨɛɪɚɳɚɬɶɫɹ ɤ ɫɥɭɠɛɚɦ Ɉɋ, ɫɢɫɬɟɦɵ BIOS, ɚ ɬɚɤɠɟ ɤ ɚɩɩɚɪɚɬɧɵɦ ɫɪɟɞɫɬɜɚɦ ɤɨɦɩɶɸɬɟɪɚ ɧɚɩɪɹɦɭɸ. ɉɪɢɤɥɚɞɧɵɟ ɩɪɨɝɪɚɦɦɵ ɯɪɚɧɹɬɫɹ ɧɚ ɭɫɬɪɨɣɫɬɜɚɯ ɜɧɟɲɧɟɣ ɩɚɦɹɬɢ (ɤɚɤ ɩɪɚɜɢɥɨ, ɧɚ ɠɟɫɬɤɨɦ ɞɢɫɤɟ).
1. ɉɟɪɟɱɢɫɥɢɬɟ ɡɚɞɚɱɢ ɫɢɫɬɟɦɧɨɝɨ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ.
2. Ʉɪɚɬɤɨ ɨɯɚɪɚɤɬɟɪɢɡɭɣɬɟ ɫɪɟɞɫɬɜɚ ɫɢɫɬɟɦɧɨɝɨ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ.
3. ɋɬɪɭɤɬɭɪɚ ɩɟɪɫɨɧɚɥɶɧɨɣ ɗȼɆ. ɂɡ ɤɚɤɢɯ ɨɫɧɨɜɧɵɯ ɭɡɥɨɜ ɨɧɚ ɫɨɫɬɨɢɬ?
4. ɂɡ ɤɚɤɢɯ ɨɫɧɨɜɧɵɯ ɛɥɨɤɨɜ ɫɨɫɬɨɢɬ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪ?
5. Ɋɚɫɤɪɨɣɬɟ ɫɬɪɭɤɬɭɪɭ ɫɢɫɬɟɦɧɨɣ ɲɢɧɵ. Ɉɬ ɱɟɝɨ ɡɚɜɢɫɢɬ ɪɚɡɪɹɞɧɨɫɬɶ ɲɢ-
ɧɵ?
6. ɋɬɪɭɤɬɭɪɚ ɩɚɦɹɬɢ ɤɨɦɩɶɸɬɟɪɚ. Ʉɚɤɢɟ ɜɢɞɵ ɩɚɦɹɬɢ ȼɵ ɡɧɚɟɬɟ?
1.5. Ʉɨɧɬɪɨɥɶɧɵɟ ɜɨɩɪɨɫɵ ɤ ɪɚɡɞɟɥɭ 1
7. Ɋɟɝɢɫɬɪɵ ɨɛɳɟɝɨ
ɧɚɡɧɚɱɟɧɢɹ. ɉɪɚɜɢɥɨ ɮɨɪɦɢɪɨɜɚɧɢɹ ɢɦɟɧ ɪɟɝɢɫɬɪɨɜ
ɨɛɳɟɝɨ ɧɚɡɧɚɱɟɧɢɹ.
8. Ɋɟɝɢɫɬɪ ɮɥɚɝɨɜ. ɇɚɡɧɚɱɟɧɢɟ ɨɬɞɟɥɶɧɵɯ ɛɢɬ. Ʉɚɤ ɨɬɥɢɱɚɸɬɫɹ ɪɟɝɢɫɬɪɵ
ɮɥɚɝɨɜ 16-, 32- ɢ 64-ɪɚɡɪɹɞɧɵɯ ɜɵɱɢɫɥɢɬɟɥɶɧɵɯ ɦɚɲɢɧ?
9. Ⱦɢɫɤɨɜɚɹ ɩɚɦɹɬɶ ɤɨɦɩɶɸɬɟɪɚ. Ʉɪɚɬɤɚɹ ɯɚɪɚɤɬɟɪɢɫɬɢɤɚ.
10. Ⱥɞɚɩɬɟɪɵ ɢ ɤɨɧɬɪɨɥɥɟɪɵ. ɂɯ ɮɭɧɤɰɢɢ. ɑɬɨ ɨɛɳɟɝɨ ɢ ɜ ɱɟɦ ɨɬɥɢɱɢɟ?
11. ɍɫɬɪɨɣɫɬɜɚ ɜɜɨɞɚ-ɜɵɜɨɞɚ. ɑɬɨ ɤ ɧɢɦ ɨɬɧɨɫɢɬɫɹ?
12. ɋɢɫɬɟɦɧɵɣ ɬɚɣɦɟɪ.
ɇɚɡɧɚɱɟɧɢɟ.
13. Ɂɜɭɤɨɜɵɟ ɭɫɬɪɨɣɫɬɜɚ ɤɨɦɩɶɸɬɟɪɚ. ɑɬɨ ɤ ɧɢɦ ɨɬɧɨɫɢɬɫɹ?
14. ȼɢɞɟɨɫɢɫɬɟɦɚ ɤɨɦɩɶɸɬɟɪɚ. ɂɡ ɱɟɝɨ ɨɧɚ ɫɨɫɬɨɢɬ?
15. Ⱦɚɣɬɟ ɨɩɪɟɞɟɥɟɧɢɟ ɩɨɧɹɬɢɸ «ɩɪɟɪɵɜɚɧɢɟ». ɉɪɢɜɟɞɢɬɟ ɤɥɚɫɫɢɮɢɤɚɰɢɸ
ɩɪɟɪɵɜɚɧɢɣ.
16. Ⱥɩɩɚɪɚɬɧɵɟ ɩɪɟɪɵɜɚɧɢɹ. Ʉɚɤ ɜɨɡɧɢɤɚɸɬ ɢ ɤɚɤ ɢɯ ɨɛɪɚɛɨɬɚɬɶ?
17. ɉɪɨɝɪɚɦɦɧɵɟ ɩɪɟɪɵɜɚɧɢɹ. Ʉɚɤ ɜɨɡɧɢɤɚɸɬ ɢ ɤɚɤ ɢɯ ɨɛɪɚɛɨɬɚɬɶ?
18. Ɉɫɨɛɟɧɧɨɫɬɢ ɪɟɚɥɢɡɚɰɢɢ ɨɛɪɚɛɨɬɱɢɤɨɜ ɩɪɨɝɪɚɦɦɧɵɯ ɩɪɟɪɵɜɚɧɢɣ.
19. Ɂɚɞɚɱɢ, ɪɟɲɚɟɦɵɟ
ɨɛɪɚɛɨɬɱɢɤɨɦ ɩɪɟɪɵɜɚɧɢɹ.
21
20. Ʉɨɧɬɪɨɥɥɟɪ ɚɩɩɚɪɚɬɧɵɯ ɩɪɟɪɵɜɚɧɢɣ. Ɏɭɧɤɰɢɢ ɤɨɧɬɪɨɥɥɟɪɚ ɩɪɟɪɵɜɚ-
ɧɢɣ. ɉɪɢɧɰɢɩ ɪɚɛɨɬɵ. Ʉɚɫɤɚɞɢɪɨɜɚɧɢɟ ɤɨɧɬɪɨɥɥɟɪɨɜ ɩɪɟɪɵɜɚɧɢɣ.
21. Ȼɚɡɨɜɚɹ ɫɢɫɬɟɦɚ ɜɜɨɞɚ-ɜɵɜɨɞɚ. Ʉɚɤɢɟ ɡɚɞɚɱɢ ɨɧɚ ɪɟɲɚɟɬ?
22. Ɉɩɟɪɚɰɢɨɧɧɚɹ ɫɢɫɬɟɦɚ. Ʉɚɤɢɟ ɡɚɞɚɱɢ ɨɧɚ ɪɟɲɚɟɬ?
23. ɑɬɨ ɬɚɤɨɟ ɞɪɚɣɜɟɪ? ɇɚɡɧɚɱɟɧɢɟ. Ʉɚɤɢɟ ɜɢɞɵ ɞɪɚɣɜɟɪɨɜ ȼɵ ɡɧɚɟɬɟ?
24. ɑɬɨ ɬɚɤɨɟ ɫɥɭɠɛɚ Windows? Ʉɚɤɢɟ ɡɚɞɚɱɢ ɨɧɚ ɪɟɲɚɟɬ?
25. ɑɬɨ ɬɚɤɨɟ ɞɟɦɨɧ
Linux? Ʉɚɤɢɟ ɡɚɞɚɱɢ ɨɧ ɪɟɲɚɟɬ?
22
2.ʮʖʪʙʗʠʗʠʡʔʛʜʝʒʝʞʟʝʒʟʏʛʛʗʟʝʑʏʜʗʮ
ɇɟɫɦɨɬɪɹ ɧɚ ɬɨ, ɱɬɨ ɡɚ ɜɫɟ ɜɪɟɦɹ ɪɚɡɜɢɬɢɹ ɜɵɱɢɫɥɢɬɟɥɶɧɨɣ ɬɟɯɧɢɤɢ ɛɵɥɨ ɪɚɡɪɚɛɨɬɚɧɨ ɧɟɫɤɨɥɶɤɨ ɫɨɬɟɧ ɹɡɵɤɨɜ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ, ɛɨɥɶɲɢɧɫɬɜɨ ɢɡ ɧɢɯ ɧɚɩɪɚɜɥɟɧɵ ɧɚ ɪɟɲɟɧɢɟ ɡɚɞɚɱ ɩɪɢɤɥɚɞɧɨɝɨ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ.
Ʉɚɤ ɛɵɥɨ ɩɨɤɚɡɚɧɨ ɜ ɩ. 1.5, ɡɧɚɱɢɬɟɥɶɧɚɹ ɱɚɫɬɶ ɫɢɫɬɟɦɧɵɯ ɩɪɨɝɪɚɦɦ ɩɪɟɞ­ɧɚɡɧɚɱɟɧɚ ɞɥɹ ɪɟɚɥɢɡɚɰɢɢ ɜɡɚɢɦɨɞɟɣɫɬɜɢɹ ɫ ɚɩɩɚɪɚɬɧɨɣ ɱɚɫɬɶɸ ɜɵɱɢɫɥɢɬɟɥɶ­ɧɨɣ ɫɢɫɬɟɦɵ, – ɫ ɬ. ɧ. ɨɛɴɟɤɬɚɦɢ «ɧɢɠɧɟɝɨ
ɭɪɨɜɧɹ»: ɞɢɫɤɨɜɵɦɢ ɧɚɤɨɩɢɬɟɥɹɦɢ, ɤɥɚɜɢɚɬɭɪɨɣ, ɡɜɭɤɨɜɨɣ ɤɚɪɬɨɣ ɢ ɩɪ. ȼɚɠɧɟɣɲɢɦɢ ɬɪɟɛɨɜɚɧɢɹɦɢ, ɩɪɟɞɴɹɜɥɹɟ­ɦɵɦɢ ɤ ɫɢɫɬɟɦɧɵɦ ɹɡɵɤɚɦ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ, ɹɜɥɹɸɬɫɹ: ɩɪɨɫɬɨɬɚ, ɷɮɮɟɤɬɢɜ­ɧɨɫɬɶ, ɚ ɬɚɤɠɟ ɧɚɥɢɱɢɟ ɛɢɛɥɢɨɬɟɤ ɮɭɧɤɰɢɣ ɞɥɹ ɞɨɫɬɭɩɚ ɤ ɚɩɩɚɪɚɬɧɵɦ ɪɟɫɭɪɫɚɦ ɤɨɦɩɶɸɬɟɪɚ.
ȼ ɷɬɨɦ ɪɚɡɞɟɥɟ ɦɵ ɪɚɫɫɦɨɬɪɢɦ ɨɫɧɨɜɵ ɹɡɵɤɨɜ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɋɢ ɢ Ⱥɫ­ɫɟɦɛɥɟɪ. ɉɨɞɪɨɛɧɨɟ ɢɡɭɱɟɧɢɟ ɭɤɚɡɚɧɧɵɯ ɹɡɵɤɨɜ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɧɟ ɹɜɥɹɟɬɫɹ ɡɚɞɚɱɟɣ ɞɚɧɧɨɝɨ ɩɨɫɨɛɢɹ, ɩɨɷɬɨɦɭ ɡɞɟɫɶ ɢɡɥɨɠɟɧɵ ɢɯ ɨɫɧɨɜɵ ɜ ɨɛɴɟɦɟ, ɞɨɫɬɚ­ɬɨɱɧɨɦ ɞɥɹ ɧɚɩɢɫɚɧɢɹ ɫɢɫɬɟɦɧɵɯ ɩɪɨɝɪɚɦɦ.
2.1. Ɉɫɧɨɜɵ ɹɡɵɤɚ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɋɢ
əɡɵɤ ɋɢ, ɩɨ ɭɬɜɟɪɠɞɟɧɢɸ ɟɝɨ ɫɨɡɞɚɬɟɥɟɣ, ɨɬɧɨɫɢɬɫɹ ɤ ɹɡɵɤɚɦ «ɫɪɟɞɧɟɝɨ ɭɪɨɜɧɹ» [5]. ȼ ɥɢɬɟɪɚɬɭɪɟ, ɩɨɫɜɹɳɟɧɧɨɣ ɷɬɨɦɭ ɹɡɵɤɭ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ, ɟɝɨ ɧɚɡɵɜɚɸɬ ɢ ɹɡɵɤɨɦ «ɫɪɟɞɧɟɝɨ ɭɪɨɜɧɹ», ɢ ɹɡɵɤɨɦ «ɧɢɡɤɨɝɨ ɭɪɨɜɧɹ». ɇɟ ɛɭɞɟɦ ɡɚɨɫɬɪɹɬɶ ɧɚ ɷɬɨɦ ɜɧɢɦɚɧɢɹ, ɨɬɦɟɬɢɦ ɬɨɥɶɤɨ, ɱɬɨ ɡɧɚɱɢɬɟɥɶɧɚɹ ɱɚɫɬɶ ɫɢɫɬɟɦ­ɧɵɯ ɩɪɨɝɪɚɦɦ ɢ ɫɨɜɪɟɦɟɧɧɵɯ ɨɩɟɪɚɰɢɨɧɧɵɯ ɫɢɫɬɟɦ ɧɚɩɢɫɚɧɵ ɢɦɟɧɧɨ ɧɚ ɹɡɵ­ɤɟ ɋɢ.
ɇɟɫɦɨɬɪɹ ɧɚ ɬɨ, ɱɬɨ ɋɢ ɛɵɥ ɫɨɡɞɚɧ ɧɟɫɤɨɥɶɤɨ ɞɟɫɹɬɢɥɟɬɢɣ ɧɚɡɚɞ, ɨɧ ɜɫɟ ɟɳɟ ɩɨɩɭɥɹɪɟɧ ɢ ɩɪɨɞɨɥɠɚɟɬ ɪɚɡɜɢɜɚɬɶɫɹ. Ʉɪɨɦɟ ɬɨɝɨ, ɧɚ ɨɫɧɨɜɟ ɋɢ ɪɚɡɪɚɛɨɬɚ­ɧɨ ɦɧɨɝɨ ɫɨɜɪɟɦɟɧɧɵɯ ɹɡɵɤɨɜ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɜɵɫɨɤɨɝɨ
ɭɪɨɜɧɹ: C++, Java,
C# ɢ ɞɪ.
Ȼɚɡɨɜɵɣ ɫɢɧɬɚɤɫɢɫ ɋɢ ɞɨɫɬɚɬɨɱɧɨ ɩɪɨɫɬ ɞɥɹ ɢɡɭɱɟɧɢɹ ɢ ɢɫɩɨɥɶɡɨɜɚɧɢɹ, ɬɚɤ ɤɚɤ ɫɨɞɟɪɠɢɬ ɧɟɛɨɥɶɲɨɟ ɤɨɥɢɱɟɫɬɜɨ ɬɢɩɨɜ ɞɚɧɧɵɯ ɢ ɨɩɟɪɚɬɨɪɨɜ.
ɇɚ ɧɚɫɬɨɹɳɢɣ ɦɨɦɟɧɬ ɢɦɟɟɬɫɹ ɞɨɫɬɚɬɨɱɧɨɟ ɤɨɥɢɱɟɫɬɜɨ ɤɨɦɩɢɥɹɬɨɪɨɜ ɢ ɝɪɚɮɢɱɟɫɤɢɯ ɨɛɨɥɨɱɟɤ ɞɥɹ ɫɨɡɞɚɧɢɹ ɢ ɨɬɥɚɞɤɢ ɩɪɨɝɪɚɦɦ ɧɚ ɋɢ. ȼ ɩɪɢɦɟɪɚɯ, ɪɚɫɫɦɨɬɪɟɧɧɵɯ ɜ ɩɨɫɨɛɢɢ, ɦɵ ɛɭɞɟɬ ɢɫɩɨɥɶɡɨɜɚɬɶ ɫɜɨɛɨɞɧɨ ɪɚɫɩɪɨɫɬɪɚɧɹɟɦɵɣ ɤɨɦɩɢɥɹɬɨɪ gcc
,
ɤɨɬɨɪɵɣ ɩɨɡɜɨɥɹɟɬ ɫɨɡɞɚɜɚɬɶ ɩɪɨɝɪɚɦɦɵ ɤɚɤ ɞɥɹ Windows,
ɬɚɤ ɢ ɞɥɹ Linux.
Ɋɚɫɫɦɨɬɪɢɦ ɩɪɨɫɬɭɸ ɩɪɨɝɪɚɦɦɭ ɧɚ ɹɡɵɤɟ ɋɢ.
/* helloworld.c */
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("hello, world\n");
getch();
return 0; }
23
ɉɟɪɜɚɹ ɫɬɪɨɤɚ ɩɪɨɝɪɚɦɦɵ – ɷɬɨ ɤɨɦɦɟɧɬɚɪɢɣ. ȼɨ ɜɬɨɪɨɣ ɫɬɪɨɤɟ ɩɨɞɤɥɸɱɚ­ɟɬɫɹ ɫɬɚɧɞɚɪɬɧɚɹ ɛɢɛɥɢɨɬɟɤɚ ɮɭɧɤɰɢɣ ɜɜɨɞɚ-ɜɵɜɨɞɚ. ȼ ɫɬɪɨɤɚɯ ɫ ɬɪɟɬɶɟɣ ɩɨ ɫɟɞɶɦɭɸ ɧɚɩɢɫɚɧɚ ɪɟɚɥɢɡɚɰɢɹ ɝɥɚɜɧɨɣ ɮɭɧɤɰɢɢ main. ȼɧɭɬɪɢ ɮɭɧɤɰɢɢ main ɜ ɱɟɬɜɟɪɬɨɣ ɫɬɪɨɤɟ ɨɩɟɪɚɬɨɪ printf ɜɵɜɨɞɢɬ ɫɬɪɨɤɭ ɬɟɤɫɬɚ «hello, world» ɧɚ ɷɤɪɚɧ. Ɏɭɧɤɰɢɹ getch ɜ ɩɹɬɨɣ ɫɬɪɨɤɟ ɨɠɢɞɚɟɬ ɧɚɠɚɬɢɹ ɥɸɛɨɣ ɤɥɚɜɢɲɢ ɞɥɹ ɡɚɜɟɪɲɟɧɢɹ ɩɪɨɝɪɚɦɦɵ, ɚ
ɨɩɟɪɚɬɨɪ return ɜ ɲɟɫɬɨɣ ɫɬɪɨɤɟ ɜɨɡɜɪɚɳɚɟɬ ɜ ɨɩɟ-
ɪɚɰɢɨɧɧɭɸ ɫɢɫɬɟɦɭ ɩɪɢɡɧɚɤ ɧɨɪɦɚɥɶɧɨɝɨ ɡɚɜɟɪɲɟɧɢɹ ɩɪɨɝɪɚɦɦɵ.
ȼ ɧɚɲɟɣ ɩɟɪɜɨɣ ɩɪɨɝɪɚɦɦɟ ɜɫɟɝɨ ɬɪɢ ɨɩɟɪɚɬɨɪɚ, ɜɵɩɨɥɧɹɸɳɢɯ ɞɟɣɫɬɜɢɹ. ɉɟɪɜɵɣ – printf – ɜɵɜɨɞɢɬ ɧɚ ɷɤɪɚɧ ɫɬɪɨɤɭ ɬɟɤɫɬɚ, ɜɬɨɪɨɣ – getch – ɨɠɢ­ɞɚɟɬ ɧɚɠɚɬɢɹ ɥɸɛɨɣ ɤɥɚɜɢɲɢ ɧɚ ɤɥɚɜɢɚɬɭɪɟ, ɢ ɧɚɤɨɧɟɰ, ɨɩɟɪɚɬɨɪ return ɡɚ­ɜɟɪɲɚɟɬ ɪɚɛɨɬɭ ɩɪɨɝɪɚɦɦɵ.
Ⱦɥɹ ɤɨɦɩɢɥɹɰɢɢ (ɫɨɡɞɚɧɢɹ ɢɫɩɨɥɧɢɦɨɝɨ
ɮɚɣɥɚ) ɩɪɨɝɪɚɦɦɵ ɞɥɹ Windows ɜ
ɤɨɦɚɧɞɧɨɣ ɫɬɪɨɤɟ ɜɵɩɨɥɧɢɦ ɤɨɦɚɧɞɭ:
gcc helloworld.c –ɨ helloworld.exe
ɉɨɫɥɟ ɤɨɦɩɢɥɹɰɢɢ ɧɚ ɞɢɫɤɟ ɩɨɹɜɢɬɫɹ ɢɫɩɨɥɧɢɦɵɣ ɮɚɣɥ hello world.exe, ɤɨɬɨɪɵɣ ɜɵɜɨɞɢɬ ɧɚ ɷɤɪɚɧ ɫɬɪɨɤɭ hello, world.
Ⱦɥɹ Linux ɜɵɡɨɜ ɤɨɦɩɢɥɹɬɨɪɚ ɞɨɥɠɟɧ ɜɵɝɥɹɞɟɬɶ ɫɥɟɞɭɸɳɢɦ ɨɛɪɚɡɨɦ:
gcc -c helloworld.c -o helloworld.o
Ȼɟɡɭɫɥɨɜɧɨ, ɭ ɤɨɦɩɢɥɹɬɨɪɚ gcc ɝɨɪɚɡɞɨ ɛɨɥɶɲɟ ɤɥɸɱɟɣ ɢ ɧɚɫɬɪɨɟɤ, ɫ ɤɨ­ɬɨɪɵɦɢ ȼɵ ɦɨɠɟɬɟ ɨɡɧɚɤɨɦɢɬɶɫɹ ɫɚɦɨɫɬɨɹɬɟɥɶɧɨ. ɉɨɤɚ ɧɚɦ ɯɜɚɬɢɬ
ɪɚɫɫɦɨɬ-
ɪɟɧɧɵɯ ɜɵɲɟ.
2.1.1. ɉɟɪɟɦɟɧɧɵɟ, ɤɨɧɫɬɚɧɬɵ, ɜɵɪɚɠɟɧɢɹ ɢ ɨɩɟɪɚɰɢɢ
ɂɞɟɧɬɢɮɢɤɚɬɨɪɵ ɹɡɵɤɚ ɋɢ (ɢɦɟɧɚ ɩɟɪɟɦɟɧɧɵɯ, ɤɨɧɫɬɚɧɬ, ɮɭɧɤɰɢɣ) ɦɨ­ɝɭɬ ɫɨɞɟɪɠɚɬɶ: ɥɚɬɢɧɫɤɢɟ ɛɭɤɜɵ A..Z, a..z, ɚɪɚɛɫɤɢɟ ɰɢɮɪɵ 0..9, ɡɧɚɤ ɩɨɞɱɟɪɤɢ­ɜɚɧɢɹ «_».
ȼɚɠɧɨ! Ɋɟɝɢɫɬɪ ɫɢɦɜɨɥɨɜ ɜ ɢɞɟɧɬɢɮɢɤɚɬɨɪɚɯ ɢɦɟɟɬ ɡɧɚɱɟɧɢɟ: ɛɭɤɜɵ Z ɢ z – ɪɚɡɧɵɟ!
ȼɚɠɧɵɟ ɩɪɚɜɢɥɚ:
ɇɟɞɨɩɭɫɬɢɦɨ ɢɫɩɨɥɶɡɨɜɚɬɶ ɩɪɨɛɟɥɵ ɜɧɭɬɪɢ ɢɞɟɧɬɢɮɢɤɚɬɨɪɚ.
ɂɞɟɧɬɢɮɢɤɚɬɨɪ ɞɨɥɠɟɧ ɧɚɱɢɧɚɬɶɫɹ ɫ ɛɭɤɜɵ.
Ɇɨɠɧɨ, ɧɨ ɧɟɠɟɥɚɬɟɥɶɧɨ ɧɚɱɢɧɚɬɶ ɢɞɟɧɬɢɮɢɤɚɬɨɪ ɫɨ ɡɧɚɤɚ ɩɨɞɱɟɪɤɢɜɚ-
ɧɢɹ.
ɇɟɥɶɡɹ ɢɫɩɨɥɶɡɨɜɚɬɶ ɜ ɤɚɱɟɫɬɜɟ ɢɞɟɧɬɢɮɢɤɚɬɨɪɨɜ ɤɥɸɱɟɜɵɟ ɫɥɨɜɚ ɹɡɵ- ɤɚ, ɬɚɤɢɟ ɤɚɤ int, float, if, for ɢ ɬ. ɩ.
ɉɪɢ ɨɛɴɹɜɥɟɧɢɢ ɩɟɪɟɦɟɧɧɵɯ ɢ ɤɨɧɫɬɚɧɬ, ɚ ɬɚɤɠɟ ɩɪɢ ɡɚɞɚɧɢɢ ɢɦɟɧ ɮɭɧɤ­ɰɢɣ ɩɪɢɞɟɪɠɢɜɚɣɬɟɫɶ ɭɤɚɡɚɧɧɵɯ ɧɢɠɟ ɪɟɤɨɦɟɧɞɚɰɢɣ.
Ɋɟɤɨɦɟɧɞɚɰɢɢ:
– ɡɚɞɚɜɚɣɬɟ ɩɟɪɟɦɟɧɧɵɦ, ɤɨɧɫɬɚɧɬɚɦ ɢ ɮɭɧɤɰɢɹɦ
ɨɫɦɵɫɥɟɧɧɵɟ ɢɦɟɧɚ. ɇɚɩɪɢɦɟɪ, ɩɭɫɬɶ ɩɟɪɟɦɟɧɧɚɹ ɯɪɚɧɢɬ ɬɟɦɩɟɪɚɬɭɪɭ ɩɪɨɰɟɫɫɨɪɚ. ȿɟ ɦɨɠɧɨ ɧɚɡɜɚɬɶ T, Temp, Temperature ɢɥɢ TempProc. ɉɨɫɥɟɞɧɢɟ ɞɜɚ ɜɚɪɢɚɧɬɚ ɩɪɟɞɩɨɱɬɢɬɟɥɶɧɟɟ, ɤɚɤ ɛɨɥɟɟ ɧɚɝɥɹɞɧɵɟ ɢ ɩɨɧɹɬɧɵɟ;
24
ɮ
ɪ
– ɧɟ ɫɨɡɞɚɜɚɣɬɟ ɫɥɢɲɤɨɦ ɞɥɢɧɧɵɯ ɢɦɟɧ ɩɟɪɟɦɟɧɧɵɯ, ɤɨɧɫɬɚɧɬ ɢɥɢ ɮɭɧɤ-
ɰɢɣ – ɷɬɨ ɫɧɢɠɚɟɬ ɭɞɨɛɨɱɢɬɚɟɦɨɫɬɶ ɩɪɨɝɪɚɦɦ.
Ʉɚɤɢɟ ɢɦɟɧɧɨ ɡɧɚɱɟɧɢɹ (ɞɚɧɧɵɟ) ɦɨɠɧɨ ɯɪɚɧɢɬɶ ɜ ɩɟɪɟɦɟɧɧɵɯ ɢ ɤɨɧɫɬɚɧ-
ɬɚɯ, ɨɩɪɟɞɟɥɹɟɬ ɢɯ ɬɢɩ. Ȼɚɡɨɜɵɟ ɬɢɩɵ ɞɚɧɧɵɯ ɋɢ ɩɪɟɞɫɬɚɜɥɟɧɵ ɜ ɬɚɛɥɢɰɟ 2.1.
Ɍ ɚ ɛ ɥ ɢ ɰ ɚ 2.1
Ȼɚɡɨɜɵɟ ɬɢɩɵ ɞɚɧɧɵɯ ɋɢ
Ɍɢɩ ɞɚɧɧɵɯ Ɉɩɢɫɚɧɢɟ
char
int
float
double
void
ɨɞɢɧ ɛɚɣɬ, ɫɨɞɟɪɠɚɳɢɣ ɨɞɢɧ ɫɢɦɜɨɥ ɰɟɥɨɟ ɱɢɫɥɨ, ɢɦɟɸɳɟɟ ɬɢɩɨɜɨɣ ɪɚɡɦɟɪ ɞɥɹ ɰɟɥɵɯ ɱɢɫɟɥ ɜ ɞɚɧɧɨɣ ɫɢɫɬɟɦɟ ɜɟɳɟɫɬɜɟɧɧɨɟ ɱɢɫɥɨ ɨɞɢɧɚɪɧɨɣ ɬɨɱɧɨɫɬɢ ɜɟɳɟɫɬɜɟɧɧɨɟ ɱɢɫɥɨ ɞɜɨɣɧɨɣ ɬɨɱɧɨɫɬɢ ɨɬɫɭɬɫɬɜɢɟ ɬɢɩɚ
ɋɢɧɬɚɤɫɢɫ ɨɛɴɹɜɥɟɧɢɹ ɩɟɪɟɦɟɧɧɨɣ ɜ ɩɪɨɝɪɚɦɦɟ ɧɚ ɹɡɵɤɟ ɋɢ:
[ɤɜɚɥɢɮɢɤɚɬɨɪ] Ɍɢɩ ɂɦɹ [= ɧɚɱɚɥɶɧɨɟ ɡɧɚɱɟɧɢɟ];
Ɂɞɟɫɶ ɢ ɞɚɥɟɟ ɦɵ ɛɭɞɟɦ ɢɫɩɨɥɶɡɨɜɚɬɶ ɤɜɚɞɪɚɬɧɵɟ ɫɤɨɛɤɢ [ ] ɞɥɹ ɨɛɨɡɧɚ-
ɱɟɧɢɹ ɧɟɨɛɹɡɚɬɟɥɶɧɵɯ ɷɥɟɦɟɧɬɨɜ ɫɢɧɬɚɤɫɢɫɚ.
Ʉɜɚɥɢɮɢɤɚɬɨɪ ɪɚɫɲɢɪɹɟɬ ɨɩɪɟɞɟɥɟɧɢɟ ɬɢɩɚ ɞɚɧɧɵɯ. ɉɟɪɟɱɟɧɶ ɤɜɚɥɢ-
ɮɢɤɚɬɨɪɨɜ ɋɢ ɩɪɢɜɟɞɟɧ ɜ ɬɚɛɥ. 2.2.
Ɍ ɚ ɛ ɥ ɢ ɰ ɚ 2.2
Ʉɜɚɥɢɮɢɤɚɬɨɪɵ ɬɢɩɨɜ ɞɚɧɧɵɯ
Ʉɜɚɥɢ
ɢɤɚɬɨɪ Ɉɩɢɫɚɧɢɟ
ɋɢ
short ɫɨɤɪɚɳɟɧɢɟ long
ɚɫɲɢɪɟɧɢɟ
signed ɫɨ ɡɧɚɤɨɦ
unsigned ɛɟɡ ɡɧɚɤɚ
ȼɚɠɧɵɟ ɩɪɚɜɢɥɚ: Ʉɜɚɥɢɮɢɤɚɬɨɪɵ short, long, signed ɢ unsigned ɩɪɢɦɟɧɢɦɵ ɤ ɰɟɥɨ-
ɱɢɫɥɟɧɧɵɦ ɬɢɩɚɦ ɞɚɧɧɵɯ.
Ʉɜɚɥɢɮɢɤɚɬɨɪ long ɦɨɠɧɨ ɬɚɤɠɟ ɩɪɢɦɟɧɹɬɶ ɤ ɬɢɩɭ double. ȼɟɳɟɫɬɜɟɧɧɵɟ ɬɢɩɵ float ɢ double ɜɫɟɝɞɚ ɩɪɟɞɫɬɚɜɥɹɸɬ ɱɢɫɥɚ ɫɨ
ɡɧɚɤɨɦ!
ȼ ɋɢ ɧɟɬ ɥɨɝɢɱɟɫɤɨɝɨ ɬɢɩɚ ɞɚɧɧɵɯ! Ⱦɥɹ ɨɩɪɟɞɟɥɟɧɢɹ ɥɨɝɢɱɟɫɤɢɯ ɩɟɪɟɦɟɧ-
ɧɵɯ ɢ ɢɯ ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɧɟɨɛɯɨɞɢɦɨ ɩɨɞɤɥɸɱɢɬɶ ɡɚɝɨɥɨɜɨɱɧɵɣ ɮɚɣɥ
stdbool.h, ɫɨɞɟɪɠɚɳɢɣ ɦɚɤɪɨɫɵ
bool (ɥɨɝɢɱɟɫɤɢɣ ɬɢɩ), true ɢ false
(ɡɧɚɱɟɧɢɹ ɞɥɹ ɥɨɝɢɱɟɫɤɢɯ ɩɟɪɟɦɟɧɧɵɯ).
ɋɬɚɧɞɚɪɬɧɵɟ ɡɚɝɨɥɨɜɨɱɧɵɟ ɮɚɣɥɵ limits.h ɢ float.h ɫɨɞɟɪɠɚɬ ɫɢɦ­ɜɨɥɢɱɟɫɤɢɟ ɤɨɧɫɬɚɧɬɵ ɞɥɹ ɜɫɟɯ ɪɚɡɦɟɪɨɜ ɬɢɩɨɜ ɞɚɧɧɵɯ, ɚ ɬɚɤɠɟ ɞɪɭɝɢɯ ɫɜɨɣɫɬɜ ɫɢɫɬɟɦɵ ɢ ɤɨɦɩɢɥɹɬɨɪɚ (ɫɦ. ɉɪɢɥɨɠɟɧɢɟ Ⱥ).
25
Ʉɨɧɫɬɚɧɬɵ – ɷɬɨ ɩɟɪɟɦɟɧɧɵɟ ɫ ɧɟɢɡɦɟɧɧɵɦ ɡɧɚɱɟɧɢɟɦ. ɋɢɧɬɚɤɫɢɫ ɨɛɴɹɜ­ɥɟɧɢɹ ɤɨɧɫɬɚɧɬ ɜ ɋɢ:
const Ɍɢɩ ɂɦɹ = ɡɧɚɱɟɧɢɟ;
#define ɢɦɹ ɡɧɚɱɟɧɢɟ
ɉɟɪɜɵɣ ɜɚɪɢɚɧɬ ɨɛɴɹɜɥɟɧɢɹ ɫ ɢɫɩɨɥɶɡɨɜɚɧɢɟɦ ɤɥɸɱɟɜɨɝɨ ɫɥɨɜɚ const ɨɩɪɟɞɟɥɹɟɬ ɤɨɧɫɬɚɧɬɭ, ɤɚɤ ɧɟɢɡɦɟɧɹɟɦɭɸ ɩɟɪɟɦɟɧɧɭɸ, ɚ ɜɬɨɪɨɣ ɜɚɪɢɚɧɬ ɫ ɢɫ­ɩɨɥɶɡɨɜɚɧɢɟɦ ɤɥɸɱɟɜɨɝɨ ɫɥɨɜɚ define – ɫɢɦɜɨɥɢɱɟɫɤɭɸ ɤɨɧɫɬɚɧɬɭ.
Ɋɚɫɫɦɨɬɪɢɦ ɨɛɴɹɜɥɟɧɢɟ ɩɟɪɟɦɟɧɧɵɯ ɢ ɤɨɧɫɬɚɧɬ ɧɚ ɩɪɢɦɟɪɚɯ.
ɉɪɢɦɟɪ 2.1. Ɉɛɴɹɜɥɟɧɢɹ
ɩɟɪɟɦɟɧɧɵɯ.
int a, b, c = 2;
float d, x1 = 6.6, zz;
long double Sw;
ɉɪɢɦɟɪ 2.2. Ɉɛɴɹɜɥɟɧɢɹ ɤɨɧɫɬɚɧɬ.
const int a = 2;
const double z = -0.65;
#define k 4
#define s "Hello"
ȼɫɟ ɨɩɟɪɚɰɢɢ ɹɡɵɤɚ ɋɢ ɪɚɡɞɟɥɹɸɬ ɧɚ ɚɪɢɮɦɟɬɢɱɟɫɤɢɟ, ɥɨɝɢɱɟɫɤɢɟ, ɨɩɟɪɚ­ɰɢɢ ɫɪɚɜɧɟɧɢɹ (ɬɚɛɥ. 2.3). Ɉɬɞɟɥɶɧɨ ɜɵɞɟɥɹɸɬ ɨɩɟɪɚɰɢɸ ɩɪɢɫɜɚɢɜɚɧɢɹ, ɤɨɬɨɪɚɹ ɨɛɨɡɧɚɱɚɟɬɫɹ ɡɧɚɤɨɦ ɪɚɜɟɧɫɬɜɚ «=», ɢ ɢɫɩɨɥɶɡɭɟɬɫɹ ɞɥɹ ɡɚɞɚɧɢɹ ɡɧɚɱɟɧɢɣ ɩɟɪɟ­ɦɟɧɧɵɯ ɢ ɤɨɧɫɬɚɧɬ, ɚ ɬɚɤɠɟ ɩɪɢ ɩɨɫɬɪɨɟɧɢɢ ɜɵɪɚɠɟɧɢɣ.
Ɍ ɚ ɛ ɥ ɢ ɰ ɚ 2.3
Ɉɩɟɪɚɰɢɢ
ɹɡɵɤɚ ɋɢ
Ƚɪɭɩɩɚ Ɂɧɚɤ Ɉɩɟɪɚɰɢɹ
+ –
* /
%
Ⱥɪɢɮɦɟɬɢɱɟɫɤɢɟ
++
– –
ɂɧɤɪɟɦɟɧɬ (ɭɜɟɥɢɱɟɧɢɟ ɧɚ ɟɞɢɧɢɰɭ)
Ⱦɟɤɪɟɦɟɧɬ (ɭɦɟɧɶɲɟɧɢɟ ɧɚ ɟɞɢɧɢɰɭ)
>
< == ! =
ɋɪɚɜɧɟɧɢɹ
>= <=
ɋɥɨɠɟɧɢɟ
ȼɵɱɢɬɚɧɢɟ
ɍɦɧɨɠɟɧɢɟ
Ⱦɟɥɟɧɢɟ
Ɉɫɬɚɬɨɤ ɨɬ ɞɟɥɟɧɢɹ
Ȼɨɥɶɲɟ
Ɇɟɧɶɲɟ
Ɋɚɜɧɨ
ɇɟ ɪɚɜɧɨ
Ȼɨɥɶɲɟ ɢɥɢ ɪɚɜɧɨ
Ɇɟɧɶɲɟ ɢɥɢ ɪɚɜɧɨ
26
ɪɭ
ɪ
Ɉ ɤ ɨ ɧ ɱ ɚ ɧ ɢ ɟ ɬ ɚ ɛ ɥ ɢ ɰ ɵ 2.3
Ƚ
ɩɩɚ Ɂɧɚɤ Ɉɩɟɪɚɰɢɹ
Ʌɨɝɢɱɟɫɤɨɟ ɂ
&&
Ʌɨɝɢɱɟɫɤɨɟ ɂɅɂ
I I
Ʌɨɝɢɱɟɫɤɨɟ ɇȿ
!
ɉɨɛɢɬɨɜɨɟ ɥɨɝɢɱɟɫɤɨɟ ɂ
&
ɉɨɛɢɬɨɜɨɟ ɥɨɝɢɱɟɫɤɨɟ ɂɅɂ
I
^ ɉɨɛɢɬɨɜɨɟ ɥɨɝɢɱɟɫɤɨɟ ɂɋɄɅɘɑȺɘɓȿȿ ɂɅɂ
Ʌɨɝɢɱɟɫɤɢɟ
<< >>
ɋɞɜɢɝ ɜɥɟɜɨ ɋɞɜɢɝ ɜɩ
ɚɜɨ
~ ɉɨɛɢɬɨɜɨɟ ɥɨɝɢɱɟɫɤɨɟ ɨɬɪɢɰɚɧɢɟ
Ɉɩɟɪɚɰɢɹ ɩɪɢɫɜɚɢɜɚɧɢɹ ɦɨɠɟɬ ɢɫɩɨɥɶɡɨɜɚɬɶɫɹ ɜ ɨɞɧɨɦ ɜɵɪɚɠɟɧɢɢ ɧɟ­ɫɤɨɥɶɤɨ ɪɚɡ. Ʉɪɨɦɟ ɬɨɝɨ, ɨɩɟɪɚɰɢɸ ɩɪɢɫɜɚɢɜɚɧɢɹ ɦɨɠɧɨ ɫɨɜɦɟɳɚɬɶ ɫɨ ɡɧɚɤɚɦɢ ɚɪɢɮɦɟɬɢɱɟɫɤɢɯ ɢ ɥɨɝɢɱɟɫɤɢɯ ɨɩɟɪɚɰɢɣ. Ɋɚɫɫɦɨɬɪɢɦ ɷɬɢ ɨɫɨɛɟɧɧɨɫɬɢ ɧɚ ɩɪɢ­ɦɟɪɟ.
ɉɪɢɦɟɪ 2.3. Ɉɩɟɪɚɰɢɢ ɩɪɢɫɜɚɢɜɚɧɢɹ.
int x = 2, s, d = -3, q, w;
const float f = 0.66;
q = w =9; // ɢ q ɢ w ɪɚɜɧɵ 9
s = x +q – w / 3;
q = (w = 1) + x – (x = 2);
s += x; //ɗɤɜɢɜɚɥɟɧɬɧɨ s = s + x;
ȼ ɩɹɬɨɦ ɨɩɟɪɚɬɨɪɟ ɩɟɪɟɦɟɧɧɵɦ w ɢ x ɩɪɢɫɜɚɢɜɚɸɬɫɹ ɧɨɜɵɟ ɡɧɚɱɟɧɢɹ, ɚ ɡɚ­ɬɟɦ ɫ
ɢɯ ɢɫɩɨɥɶɡɨɜɚɧɢɟɦ ɩɪɨɢɡɜɨɞɢɬɫɹ ɜɵɱɢɫɥɟɧɢɟ ɡɧɚɱɟɧɢɹ ɞɥɹ ɩɟɪɟɦɟɧɧɨɣ q.
Ɋɚɫɫɦɨɬɪɢɦ ɟɳɟ ɨɞɢɧ ɩɪɢɦɟɪ ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɨɩɟɪɚɰɢɢ ɩɪɢɫɜɚɢɜɚɧɢɹ.
ɉɪɢɦɟɪ 2.4. Ɉɩɟɪɚɰɢɢ ɩɪɢɫɜɚɢɜɚɧɢɹ.
int x = 8, y = 5, d;
d = (x + 3) – (++y – x) + x++;
ȼɵɱɢɫɥɟɧɢɟ ɞɥɹ ɩɟɪɟɦɟɧɧɨɣ d ɩɪɨɢɡɜɨɞɢɬɫɹ ɜ ɫɥɟɞɭɸɳɟɦ ɩɨɪɹɞɤɟ:
ȼɵɱɢɫɥɹɟɬɫɹ ɧɨɜɨɟ ɡɧɚɱɟɧɢɟ ɩɟɪɟɦɟɧɧɨɣ y (ɢɧɤɪɟɦɟɧɬ): y = 6.
ȼɵɱɢɫɥɹɸɬɫɹ ɜɵɪɚɠɟɧɢɹ ɜ ɫɤɨɛɤɚɯ: ɫɧɚɱɚɥɚ (x + 3) = 11, ɡɚɬɟɦ (++y
– x) = 2.
1. ȼɵɱɢɫɥɹɟɬɫɹ ɡɧɚɱɟɧɢɟ d = (x + 3) – (++y – x) + x = 11-2+8 =
= 17.
ȼɵɱɢɫɥɹɟɬɫɹ ɧɨɜɨɟ ɡɧɚɱɟɧɢɟ ɩɟɪɟɦɟɧɧɨɣ
x (ɢɧɤɪɟɦɟɧɬ): x = 9.
ȼɵɪɚɠɟɧɢɹ ɜ ɩɪɨɝɪɚɦɦɟ ɋɢ – ɷɬɨ ɥɸɛɚɹ ɩɪɚɜɢɥɶɧɚɹ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨɫɬɶ ɨɩɟɪɚɬɨɪɨɜ, ɤɨɧɫɬɚɧɬ, ɩɟɪɟɦɟɧɧɵɯ ɢ ɜɵɡɨɜɨɜ ɮɭɧɤɰɢɣ. Ȼɨɥɶɲɢɧɫɬɜɨ ɜɵɪɚɠɟ­ɧɢɣ ɹɜɥɹɸɬɫɹ ɚɥɝɟɛɪɚɢɱɟɫɤɢɦɢ.
ɉɪɢɦɟɪ 2.5. ȼɵɪɚɠɟɧɢɹ.
a = b++;
cosinus = cos(5*a);
sinus = sin(b);
tg = cosinus/sinus;
27
Ʌɢɲɧɢɟ ɩɪɨɛɟɥɵ ɜ ɜɵɪɚɠɟɧɢɢ ɭɥɭɱɲɚɸɬ ɟɝɨ ɭɞɨɛɨɱɢɬɚɟɦɨɫɬɶ. Ɍɚɤ, ɩɪɢ­ɜɟɞɟɧɧɵɟ ɧɢɠɟ ɜɵɪɚɠɟɧɢɹ ɷɤɜɢɜɚɥɟɧɬɧɵ:
a=10*b+c/4; a = 10*b + c/4;
Ʉ ɨɩɟɪɚɬɨɪɚɦ ɜɵɪɚɠɟɧɢɹ ɦɨɠɧɨ ɬɚɤɠɟ ɨɬɧɟɫɬɢ ɩɭɫɬɨɣ ɨɩɟɪɚɬɨɪ – ɬɨɱɤɭ ɫ ɡɚɩɹɬɨɣ «;». Ɉɧ ɩɨɥɟɡɟɧ ɬɚɦ, ɝɞɟ ɨɛɹɡɚɬɟɥɶɧɨ ɞɨɥɠɟɧ ɛɵɬɶ ɨɩɟɪɚɬɨɪ, ɚ ɞɟɥɚɬɶ ɧɢɱɟɝɨ ɧɟ ɧɭɠɧɨ.
ȼɧɭɬɪɢ ɤɚɠɞɨɝɨ ɨɩɟɪɚɬɨɪɚ ɜɵɱɢɫɥɟɧɢɟ ɩɪɨɢɡɜɨɞɢɬɫɹ ɜ ɫɨɨɬɜɟɬɫɬɜɢɢ ɫ ɩɪɢɨɪɢɬɟɬɨɦ ɨɩɟɪɚɰɢɣ (ɬɚɛɥ. 2.4). Ɉɩɟɪɚɰɢɢ,
ɩɟɪɟɱɢɫɥɟɧɧɵɟ ɜ ɨɞɧɨɣ ɫɬɪɨɤɟ,
ɢɦɟɸɬ ɨɞɢɧɚɤɨɜɵɣ ɩɪɢɨɪɢɬɟɬ.
Ɍ ɚ ɛ ɥ ɢ ɰ ɚ 2.4
ɉɪɢɨɪɢɬɟɬ ɨɩɟɪɚɰɢɣ
ɉɪɢɨɪɢɬɟɬ Ɉɩɟɪɚɬɨɪ
++ --
1
() []
2
+ -
! ~
*
3
&
sizeof
4 5
6
7 8
9 10 11 12 13
* / %
<< >>
<<= >>=
== ! =
&
Ʌ
I
&& I I ? :
= += -=
14
*= /= %=
<<= >>=
&= ^= |=
Ʉɚɠɞɚɹ ɫɬɚɬɢɱɟɫɤɚɹ ɩɟɪɟɦɟɧɧɚɹ ɢɦɟɟɬ ɫɜɨɣ ɚɞɪɟɫ ɜ ɩɚɦɹɬɢ ɤɨɦɩɶɸɬɟɪɚ. Ⱦɨɩɭɫɬɢɦ, ɢɦɟɟɬɫɹ ɩɟɪɟɦɟɧɧɚɹ house (ɞɨɦ) ɬɢɩɚ int ɢ ɩɟɪɟɦɟɧɧɚɹ Ad- dressOfHouse (ȺɞɪɟɫȾɨɦɚ), ɤɨɬɨɪɚɹ ɦɨɠɟɬ ɫɨɞɟɪɠɚɬɶ ɚɞɪɟɫ ɩɟɪɟɦɟɧɧɨɣ ɬɢɩɚ int.
Ɉɩɟɪɚɬɨɪ AddressOfHouse = &house; ɨɡɧɚɱɚɟɬ ɩɨɥɭɱɟɧɢɟ ɚɞɪɟɫɚ (&) ɩɟɪɟɦɟɧɧɨɣ house.
28
ɉɟɪɟɦɟɧɧɚɹ, ɤɨɬɨɪɚɹ ɫɨɞɟɪɠɢɬ ɚɞɪɟɫ ɞɪɭɝɨɣ ɩɟɪɟɦɟɧɧɨɣ, ɬɚɤɚɹ ɤɚɤ Ad- dressOfHouse, ɧɚɡɵɜɚɟɬɫɹ ɩɟɪɟɦɟɧɧɨɣ-ɭɤɚɡɚɬɟɥɟɦ. Ⱦɪɭɝɢɦɢ ɫɥɨɜɚɦɢ, ɟɫɥɢ
ɨɞɧɚ ɩɟɪɟɦɟɧɧɚɹ ɫɨɞɟɪɠɢɬ ɚɞɪɟɫ ɞɪɭɝɨɣ ɩɟɪɟɦɟɧɧɨɣ, ɬɨ ɝɨɜɨɪɹɬ, ɱɬɨ ɩɟɪɜɚɹ ɩɟɪɟɦɟɧɧɚɹ ɭɤɚɡɵɜɚɟɬ (ɫɫɵɥɚɟɬɫɹ) ɧɚ ɜɬɨɪɭɸ. ɉɭɫɬɶ ɩɟɪɟɦɟɧɧɚɹ house ɪɚɡ­ɦɟɳɟɧɚ ɩɨ ɚɞɪɟɫɭ 365. Ɍɨɝɞɚ ɩɨɫɥɟ ɜɵɩɨɥɧɟɧɢɹ ɭɤɚɡɚɧɧɨɝɨ ɜɵɲɟ ɨɩɟɪɚɬɨɪɚ ɩɟɪɟɦɟɧɧɚɹ AddressOfHouse ɛɭɞɟɬ ɫɨɞɟɪɠɚɬɶ ɱɢɫɥɨ 365, ɬ. ɟ.
ɚɞɪɟɫ house.
ɉɪɢ ɷɬɨɦ ɝɨɜɨɪɹɬ, ɱɬɨ AddressOfHouse ɭɤɚɡɵɜɚɟɬ ɧɚ house.
Ɍɟɩɟɪɶ ɟɫɬɶ ɞɜɚ ɫɩɨɫɨɛɚ ɨɛɪɚɬɢɬɶɫɹ ɤ ɨɞɧɨɦɭ ɢ ɬɨɦɭ ɠɟ ɦɟɫɬɭ ɜ ɩɚɦɹɬɢ
(ɤ ɨɞɧɨɣ ɢ ɬɨɣ ɠɟ ɩɟɪɟɦɟɧɧɨɣ):
– ɢɫɩɨɥɶɡɭɹ ɩɟɪɟɦɟɧɧɭɸ house: house = 10;
– ɢɫɩɨɥɶɡɭɹ ɭɤɚɡɚɬɟɥɶ AddressOfHouse:
*AddressOfHouse = 10.
Ɂɞɟɫɶ ɡɧɚɤ * ɢɫɩɨɥɶɡɭɟɬɫɹ ɤɚɤ ɨɩɟɪɚɬɨɪ ɫɫɵɥɤɢ. Ɍɚɤɢɦ ɨɛɪɚɡɨɦ, ɨɛɚ ɨɩɢ­ɫɚɧɧɵɯ ɜɵɲɟ ɫɩɨɫɨɛɚ
ɷɤɜɢɜɚɥɟɧɬɧɵ.
ɉɟɪɟɦɟɧɧɭɸ-ɭɤɚɡɚɬɟɥɶ AddressOfHouse ɫɥɟɞɭɟɬ ɨɛɴɹɜɢɬɶ, ɤɚɤ ɬɢɩ ɞɚɧɧɵɯ, ɨɛɨɡɧɚɱɟɧɢɟ ɢɦɹ ɩɟɪɟɦɟɧɧɨɣ – ɧɚ ɤɨɬɨɪɵɣ ɭɤɚɡɵɜɚɟɬ ɭɤɚɡɚɬɟɥɶ, ɤɚɤ ɩɨɤɚɡɚɧɨ ɧɚ ɪɢɫɭɧɤɟ 2.1.
Ɋɢɫɭɧɨɤ 2.1. Ɉɛɴɹɜɥɟɧɢɟ ɩɟɪɟɦɟɧɧɨɣ-ɭɤɚɡɚɬɟɥɹ
Ɋɚɫɫɦɨɬɪɢɦ ɩɪɢɦɟɪɵ ɨɛɴɹɜɥɟɧɢɹ ɭɤɚɡɚɬɟɥɟɣ.
ɉɪɢɦɟɪ 2.6. Ɉɛɴɹɜɥɟɧɢɟ ɭɤɚɡɚɬɟɥɟɣ.
char *char_ptr;
int *int_ptr;
ȼɚɠɧɨ! ɉɟɪɟɦɟɧɧɚɹ-ɭɤɚɡɚɬɟɥɶ ɞɨɥɠɧɚ ɭɤɚɡɵɜɚɬɶ ɬɨɥɶɤɨ ɧɚ ɨɛɴɹɜɥɟɧɧɵɣ ɬɢɩ ɞɚɧɧɵɯ!
ɉɪɢɦɟɪ 2.7. Ɉɲɢɛɤɢ ɩɪɢ ɨɛɴɹɜɥɟɧɢɢ ɭɤɚɡɚɬɟɥɟɣ.
int *int_ptr;
float ff = 1.35; int ii = 2;
int_ptr = &ff; // ɇɟɜɟɪɧɨ !!
int_ptr = ⅈ // ɉɪɚɜɢɥɶɧɨ!
Ɍɟɩɟɪɶ ɪɚɫɫɦɨɬɪɢɦ ɩɪɢɦɟɪ ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɩɟɪɟɦɟɧɧɵɯ-ɭɤɚɡɚɬɟɥɟɣ – ɨɛɦɟɧ ɞɚɧɧɵɦɢ ɱɟɪɟɡ ɭɤɚɡɚɬɟɥɢ, ɜ ɤɨɬɨɪɨɦ ɦɟɧɹɸɬɫɹ ɦɟɫɬɚɦɢ ɞɚɧɧɵɟ, ɯɪɚɧɹɳɢɟɫɹ ɜ ɞɜɭɯ ɫɬɚɬɢɱɟɫɤɢɯ ɩɟɪɟɦɟɧɧɵɯ.
29
ɪ
ɉɪɢɦɟɪ 2.8. ɉɪɢɦɟɪ ɨɛɦɟɧɚ ɱɟɪɟɡ ɭɤɚɡɚɬɟɥɢ.
int first = 1, second = 2, temp;// Ɉɛɴɹɜɥɟɧɢɟ // ɩɟɪɟɦɟɧɧɵɯ ɢ ɭɤɚɡɚɬɟɥɹ int *iptr; iptr = &first; // ɂɧɢɰɢɚɥɢɡɚɰɢɹ temp = *iptr; // ɋɱɢɬɵɜɚɟɦ ɞɚɧɧɵɟ,
// ɯɪɚɧɹɳɢɟɫɹ ɜ first
*iptr = second; // Ʉɨɩɢɪɭɟɦ ɜ second // ɞɚɧɧɵɟ ɩɨ ɚɞɪɟɫɭ, ɯɪɚɧɹɳɟɦɭɫɹ ɜ iptr second = temp; // ɩɟɪɟɧɨɫ ɞɚɧɧɵɯ ɜ // second
Ɋɚɫɫɦɨɬɪɢɦ ɩɨɲɚɝɨɜɨ, ɤɚɤ ɩɪɨɢɫɯɨɞɢɬ ɨɛɦɟɧ (ɚɞɪɟɫ ɞɚɧ ɭɫɥɨɜɧɨ).
ɉɟ
ɟɦɟɧɧɚɹ Ⱥɞɪɟɫ Ɂɧɚɱɟɧɢɟ
ɇɚɱɚɥɶɧɨɟ ɫɨɫɬɨɹɧɢɟ
first 1111 1 second 2222 2 temp 3333
ɉɨɫɥɟ ɜɵɩɨɥɧɟɧɢɹ ɨɩɟɪɚɬɨɪɚ iptr = &first;
first 1111 1 second 2222 2 temp 3333
ɉɨɫɥɟ ɜɵɩɨɥɧɟɧɢɹ ɨɩɟɪɚɬɨɪɚ temp = *iptr;
first 1111 1 second 2222 2 temp 3333 1
ɉɨɫɥɟ ɜɵɩɨɥɧɟɧɢɹ ɨɩɟɪɚɬɨɪɚ *iptr = second
first 1111 2 second 2222 2 temp 3333 1
ɉɨɫɥɟ ɜɵɩɨɥɧɟɧɢɹ ɨɩɟɪɚɬɨɪɚ second = temp;
first 1111 2 second 2222 1 temp 3333 1
ɉɪɚɜɢɥɚ
ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɭɤɚɡɚɬɟɥɟɣ ɩɪɢɜɟɞɟɧɵ ɧɢɠɟ.
ɉɪɚɜɢɥɨ 1. Ⱦɨ ɬɨɝɨ, ɤɚɤ ɭɤɚɡɚɬɟɥɶ ɛɭɞɟɬ ɢɫɩɨɥɶɡɨɜɚɬɶɫɹ, ɨɧ ɞɨɥɠɟɧ ɛɵɬɶ ɢɧɢɰɢɚɥɢɡɢɪɨɜɚɧ:
char *aptr ;
char ch;
aptr = &ch;
ɉɪɚɜɢɥɨ 2. ɍɤɚɡɚɬɟɥɶ ɦɨɠɟɬ ɫɨɞɟɪɠɚɬɶ ɚɞɪɟɫ ɩɟɪɟɦɟɧɧɨɣ, ɚ ɧɟ ɱɢɫɥɨ:
int i, *iptr;
iptr = &i; // ɉɪɚɜɢɥɶɧɨ
iptr = 22; // ɇɟɩɪɚɜɢɥɶɧɨ
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]