- •Тема 9. Функції користувача.......................................................................................49
- •Тема 10. Структури......................................................................................................59
- •1.1. Структура програми
- •1.2. Етапи виконання програми
- •1.3. Порядок запуску програми
- •2.1. Функції вводу/виводу мови с
- •Пріоритет виконання операцій
- •Операції присвоювання
- •4.1. Складові оператори
- •4.2. Оператори розгалуження
- •If (умова) оператор1;
- •4.3. ОператорИ циклУ
- •For (вираз_1; вираз_2; вираз_3 ) оператор;
- •4.4. Оператори переходу
- •Тема 5. Вказівники та операції над ними
- •5.1. Поняття вказівника
- •5.2. Дії над вказівниками
- •Контрольні запитання:
- •Тема 6. Робота з одновимірними масивами
- •Статичні та динамічні масиви
- •6.2. Рядки, як одновимірні масиви символів
- •Тема 7. Двовимірні масиви
- •Наприклад:
- •Тема 8. Символьна інформація та рядки
- •8.1. Збереження символьної інформації
- •8.2. Функції вводу/виводу при роботі з рядками
- •8.3. Спеціальні функції для роботи з рядками та символами
- •Тема 9. Функції користувача
- •9.1. Функції: визначення, опис, виклик
- •9.2. Передача масивів у функцію
- •9.4. Функції зі змінною кількістю параметрів
- •Тема 10. Структури
- •Контрольні запитання:
- •Список використаної літератури
1.2. Етапи виконання програми
Вихідна програма, підготовлена на мові С++ у вигляді текстового файла з розширенням *.срр (welcome.cpp), проходить 3 етапи обробки:
-
препроцесорне перетворення тексту програми;
-
компіляція;
-
компоновка (редагування звязків чи складання).
Після цих 3 етапів формується машинний код програми, що виконується.
Задачею препроцесора є перетворення (доповнення) тексту програми до початку її компіляції. Правила препроцесорної обробки визначаються програмістом за допомогою директив препроцесора. Директива починається з ”#” (дієс, шарп). Наприклад,
1) #define - визначає правила заміни в тексті:
#define ZERO 0.0
Це означає, що кожне використання у програмі імені ZERO буде замінюватися на 0.0.
2) #include< імя заголовного файла > - передбачена для залучення до тексту програми тексту файлу з каталогу “Заголовних файлів” INCLUDE, які постачаються разом зі стандартними бібліотеками. Кожна бібліотечна функція чи обєкт С++ має відповідний опис в одному з заголовних файлів (наприклад, iostream.h, stdio.h, conio.h, math.h). Список заголовних файлів визначається стандартом мови. Використання директиви include не підєднує відповідну стандартну бібліотеку, а лише дозволяє долучити до тексту програми описи із зазначеного заголовного файлу. В нашому випадку препроцесор обробляє директиву #include <iostream.h> і під’єднує до вихідного тексту програми засоби для обміну з дисплеєм. Далі файл передається на компіляцію, у ньому виявляються синтаксичні помилки, які потрібно усунути програмістові. Після безпомилкової компіляції текст програми перекладається компілятором на машинну мову, далі отримуємо об’єктний файл з розширенням *.obj. Підключення обєктних кодів файлів з визначеннями необхідних стандартних функцій і обєктів з бібліотеки відбувається на етапі компоновки, тобто після компіляції. У обєктному коді створюваної програми ніби замуровуються дірки за допомогою кодів стандартних функцій. Хоча в заголовних файлах містяться всі описи стандартних функцій, до коду програми залучаються лише функції й обєкти, які використовуються в програмі.
Після компоновки утворюється модуль програми з розширенням *.ехе.
Отже, в нашому випадку, виконавши директиви, препроцесор сформує повний текст програми, компілятор створить об’єктний файл welcome.obj, за замовчуванням обравши для нього зазначене ім’я, а компоновщик (редактор зв’язків Linker) доповить програму бібліотечними функціями, наприклад, для роботи з об’єктом cout і побудує модуль welcome.exe, запустивши, який ми одержуємо на екрані бажану фразу. Схема етапів виконання програми наведена на рис. 1.1.
1.3. Порядок запуску програми
-
Відкрийте нове вікно редагування (File > New) і надайте йому ім’я Welcome (File > Save As);
-
У новому вікні наберіть текст програми, що наводиться у Прикладі 1.
-
Відкомпілюйте програму (Compile > Compile або (Alt+F9)). В разі повідомлень про помилку, перевірте текст програми і усуньте невідповідності. Щоразу, вносячи зміни у вихідний текст програми, зберігайте файл (File > Save або F2). Після чого змінену програму слід відкомпілювати;
-
Запуск відкомпільованої програми здійснюється за командою (Run > Run або Ctrl+F9). Якщо з моменту останньої компіляції вихідний код було модифіковано, ця команда виконає послідовно компіляцію і компоновку. Результат виконання програми можна переглянути, натиснувши комбінацію клавіш Alt+F5.
Контрольні запитання:
-
Яка структура програми на С++?
-
Яке розширення має файл з вихідним текстом програми?
-
Що таке escape-символ?
-
Назвіть основні лексеми мови С++.
-
Як відрізнити директиву препроцесора від простого оператора і яка її функція?
-
В якому форматі записується заголовок будь-якої функції, в тому числі, головної? Що таке тіло функції?
-
Чим відрізняється компілятор від компоновщика?
-
Як здійснюється вивід даних у С++?
welcome.cpp
*.cpp *.h
welcome.cpp
*.срр Повний текст програми
welcome.obj
*.obj Об’єктний код
програми
Library dictionary
Бібліотечні
файли
welcome.exe
*.exe Виконувана
програма
Рис. 1.1. Схема підготовки програми в процесі виконання
Тема 2. Форматний ввід/вивід у мові С/С++
