Урок №11. Структура програм

  Оновл. 4 Вер 2021  | 

 15708

 ǀ   1 

Комп’ютерна програма — це послідовність інструкцій, які повідомляють комп’ютеру, що йому потрібно зробити.

Стейтменти

Cтейтмент (англ. “statement”) — це найбільш поширений тип інструкцій у програмах. Це і є та сама найменша незалежна одиниця в мові програмування С++. Стейтмент в програмуванні — це те ж саме, що і “речення” в українській мові. Ми використовуємо речення для того, щоб виразити якусь думку/ідею. У C++ ми пишемо стейтменти, щоб виконати якесь завдання. Всі стейтменти в C++ закінчуються крапкою з комою.

Є дуже багато різних видів стейтментів в C++. Переглянемо найбільш поширені з них:

int х — це стейтмент оголошення (англ. “statement declaration”). Він повідомляє компілятору, що х є змінною. У програмуванні кожна змінна має свою комірку в пам’яті. Всі змінні в програмі перед їх фактичним використанням, повинні бути оголошені. Ми детально поговоримо про змінні на наступних уроках

х = 5 — це стейтмент присвоювання (англ. “assignment statement”). Тут ми присвоюємо значення 5 змінній х.

std::cout << x; — це стейтмент виводу (англ. “output statement”). Ми виводимо значення змінної х на екран.

Вирази


Компілятор також здатний опрацьовувати вирази. Вираз (англ. “expression”) — це математичний об’єкт, який генерує певне значення. Наприклад, в математиці вираз 2 + 3 генерує значення 5.

Виразами можуть бути:

   значення (наприклад, 2, 4);

   змінні (наприклад, х, у);

   оператори (наприклад, +, -);

   функції.

Вони можуть бути як одним значенням (наприклад, 2 чи х), так і комбінацією значень (наприклад, 2 + 3, 2 + х, х + у чи (2 + х) * (y - 3)). Наприклад, х = 2 + 3; — це коректний стейтмент присвоювання. Вираз 2 + 3 генерує результат: значення 5, яке потім присвоюється змінній х.

Функції

В C++ стейтменти об’єднуються в блоки — функції. Функція — це послідовність стейтментів. Кожна програма в C++ повинна містити головну функцію main(). Саме з першого стейтмента в main() і починається виконання програми. Функції, як правило, виконують конкретне завдання. Наприклад, функція max() може містити стейтменти, які визначають максимальне число з двох переданих їй, а функція calculateGrade() може обчислювати оцінку студента.

Порада: Завжди розміщуйте функцію main() в .cpp-файлі з тим же іменем, що має проект. Наприклад, якщо ви пишете програму Chess, то помістіть вашу функцію main() в chess.cpp.

Бібліотеки


Бібліотека — це набір скомпільованого коду (наприклад, функцій), який був “упакований” для повторного використання в інших програмах. За допомогою бібліотек можна розширити функціонал програм. Наприклад, якщо ви пишете гру, то вам доведеться підключити бібліотеку звуку або графіки (якщо ви самостійно не хочете їх писати з нуля).

Мова C++ не така вже й велика, як ви могли б подумати. Проте, вона поставляється в комплекті зі Стандартною бібліотекою С++, яка надає додатковий функціонал. Однією з найбільш часто використовуваних частин Стандартної бібліотеки C++ є бібліотека iostream, яка дозволяє виводити інформацію на екран і опрацьовувати дані, які вводить користувач.

Приклад простої програми в С++

Тепер, коли у вас є загальне уявлення про те, що таке стейтменти, функції та бібліотеки, давайте розглянемо ще раз програму “Hello, world!”:

Рядок №1: Спеціальний тип інструкції, який називається директивою препроцесора. Директиви препроцесора повідомляють компілятору, що йому потрібно виконати певне завдання. В цьому випадку ми повідомляємо компілятору, що хотіли б підключити вміст заголовкового файлу iostream до нашої програми. Заголовковий файл iostream дозволяє нам отримати доступ до функціоналу бібліотеки iostream для можливості виведення інформації на екран.

Рядок №2: Порожній простір, який ігнорується компілятором.

Рядок №3: Оголошення головної функції main().

Рядок №4 і №7: Вказуємо компілятору область функції main(). Все, що знаходиться між відкриваючою фігурною дужкою в рядку №4 і закриваючою фігурною дужкою в рядку №7, — вважається частиною функції main().

Рядок №5: Наш перший стейтмент (який закінчується крапкою з комою) — стейтмент виводу. std::cout — це спеціальний об’єкт за допомогою якого ми можемо виводити дані на екран. << — це оператор виводу. Все, що ми відправляємо в std::cout, — виводиться на екран. Тут ми виводимо текст "Hello, world!".

Рядок №6: Оператор повернення return. Коли програма завершує своє виконання, функція main() передає значення, яка вказує на результат виконання програми (успішно чи ні), назад в операційну систему. Якщо оператор return повертає значення 0, то це означає, що все добре! Будь-які ненульові числа використовуються для того, щоб вказати, що щось пішло не так.

Синтаксис і синтаксичні помилки


Як ви, мабуть, знаєте, в українській мові всі речення слідують правилам граматики. Наприклад, кожне речення повинно закінчуватися крапкою. Правила, які регулюють побудову речень, називаються синтаксисом. Якщо ви не поставили крапку і записали два речення підряд, то це є порушенням синтаксису української мови.

C++ також має свій синтаксис: правила написання коду/програм. При компіляції вашої програми, компілятор перевіряє код вашої програми на відповідність правилам синтаксису мови C++. Якщо ви порушили правила, то компілятор лаятиметься і видасть вам помилку.

Наприклад, давайте подивимось, що відбудеться, якщо ми не вкажемо крапку з комою в кінці стейтменту:

Результат:

E0065: требуется точка с запятой ";"
C2143: синтаксическая ошибка: отсутствие ";" перед "}"

Допущена синтаксична помилка в рядку №6: забули поставити крапку з комою перед оператором return. У цьому випадку помилка насправді в кінці рядка №5. У більшості випадків компілятор правильно визначає рядок з помилкою, але є ситуації, коли помилка не помітна аж до початку наступного рядка.

Синтаксичні помилки нерідко відбуваються при написанні програм. На щастя, більшість з них можна легко знайти і виправити. Але слід пам’ятати, що програма може бути повністю скомпільована і виконана тільки при відсутності помилок.

Тест

Тепер давайте перевіримо, наскільки добре ви засвоїли матеріал уроку. Дайте відповідь на наступні питання:

   У чому різниця між стейтментом і виразом?

   У чому різниця між функцією і бібліотекою?

   Чим повинні закінчуватися стейтменти в С++?

   Що таке синтаксична помилка?

Відповіді

Щоб переглянути відповідь, клікніть на неї мишкою.

Відповідь №1

Стейтмент — це “повне речення”, яке повідомляє компілятору виконати певне завдання. Вираз же генерує результат і використовується всередині стейтментів.

Відповідь №2

Функція — це послідовність стейтментів. Бібліотека — це послідовність функцій, які можуть повторно використовуватися в інших програмах.

Відповідь №3

Крапкою з комою (;).

Відповідь №4

Синтаксична помилка — це помилка, яка вказує на порушення правил граматики мови С++.

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (136 оцінок, середня: 4,95 з 5)
Завантаження...

Коментарів: 1

  1. osc128 :

    Саме з першого стейтмента в main() і починається виконання програми.

    Строго кажучи, це не завжди так. Перед виконанням main() відбувається ініціалізація глобальних змінних. Під час цього може багато чого статися. Наприклад:

    Результат:

    Initialization of global objects
    main()

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *