Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
+ООП_Навч_посібник.doc
Скачиваний:
7
Добавлен:
01.07.2025
Размер:
6.58 Mб
Скачать

2.3.5. Спеціальна функція main()

Як зазначалося вище, функція main() – спеціальна, оскільки це перша функція, яка викликається у процесі виконання програми. На відміну від деяких інших мов програмування, у яких виконання завжди починається "зверху", тобто з першого рядка коду програми, кожна С++-програма завжди починається з виклику функції main() незалежно від її розташування у програмі2.

У програмі може бути тільки одна функція main(). Якщо спробувати залучити до програми декілька функцій main(), то вона "не знатиме", з якої з них почати роботу. Насправді більшість компіляторів легко виявить помилку цього типу і повідомить про неї. Як ми вже зазначали вище, оскільки функція main() вбудована у мову програмування C++, то вона не вимагає прототипу.

2.4. Поняття про логічну та циклічну настанови

Для аналізу більш реальних прикладів конкретних програм нам необхідно познайомитися з двома простими С++-настановами: if і for.3

2.4.1. Логічна настанова if

Логічна настанова if дає змогу зробити вибір між двома виконуваними гілками програми.

Настанова if у мові програмування C++ діє подібно до настанови if, визначеної в будь-якій іншій мові програмування. Її простий формат є таким:

if(умова) настанова;

У цьому записі елемент умова – це вираз, який під час обчислення може виявитися значенням, що дорівнює ІСТИНІ або ФАЛЬШІ. У мові програмування C++ ІСТИНА представляється ненульовим значенням, а ФАЛЬШ – нулем. Якщо умова, або умовний вираз, є істинним, елемент настанова виконається, інакше – ні. У процесі виконання такої настанови

if(10 < 11) cout << "10 менше ніж 11";

на екрані відобразиться фраза: 10 менше ніж 11.

Такі оператори порівняння, як "<" (менше) і ">=" (більше або дорівнює), використовуються в багатьох інших мовах програмування. Але необхідно пам'ятати, що у мові програмування C++ як оператор рівності застосовується подвійний символ "дорівнює" (==). У наведеному нижче прикладі cout-настанова не виконається, оскільки умовний вираз дає значення ФАЛЬШ. Іншими словами, оскільки 10 не дорівнює 11, то cout-настанова не відобразить на екрані вітання:

if(10 == ll) cout << "Привіт";

Безумовно, операнди умовного виразу необов'язково мають бути константами. Вони можуть бути змінними і навіть містити звернення до функцій.

У наведеному нижче коді програми показано приклад використання if-настанови. У процесі виконання цієї програми користувачу пропонується ввести два числа, а потім повідомляється результат їх порівняння.

Код програми 2.10. Демонстрація механізму використання if-настанови

#include <iostream> // Для потокового введення-виведення

using namespace std; // Використання стандартного простору імен

int main()

{

int a, b;

cout << "Введіть перше число: ";

cin >> а;

cout << "Введіть друге число: ";

cin >> b;

if(а < b) cout << "Перше число менше від другого.";

if(а == b) cout << "Перше число збігається з другим.";

if(а > b) cout << "Перше число більше від другого.";

getch(); return 0;

}

2.4.2. Циклічна настанова for

for – одна з циклічних настанов, визначених мовою програмування C++.

Цикл for повторює вказану настанову задану кількість разів. Настанова for у мові програмування C++ діє практично так само, як настанова for, визначена в таких мовах програмування, як Java C#, Pascal і Visual Basic. Її простий формат такий:

for(ініціалізація; умова; інкремент) настанова;

У цьому записі елемент ініціалізація є настанова присвоєння, яка встановлює керівній змінній циклу початкове значення. Ця змінна діє як лічильник, який керує роботою циклу. Елемент умова є виразом, у якому тестується значення керівної змінної циклу. Результат цього тестування визначає, виконається цикл for ще раз чи ні. Елемент інкрементце вираз, який визначає, як змінюється значення керівної змінної циклу після кожної ітерації. Цикл for виконуватиметься доти, доки обчислення елемента умова дає істинний результат. Як тільки умова стане помилковою, виконання програми продовжиться з настанови, що знаходиться наступною за циклом for.

Наприклад, наведений нижче код програми за допомогою циклу for виводить на екран числа від 1 до 100.

Код програми 2.11. Демонстрація механізму використання for-циклу

#include <iostream> // Для потокового введення-виведення

using namespace std; // Використання стандартного простору імен

int main()

{

int pm;

for(pm=1; pm<=100; pm=pm+1) cout << pm << " ";

getch(); return 0;

}

На рис. 2.1 схематично показано виконання циклу for у наведеному прикладі. Як бачимо, спочатку змінна pm ініціалізується числом 1. Під час кожного повторення циклу перевіряється умова pm<=100. Якщо результат перевірки виявляється істинним, cout-настанова виводить значення змінної pm, після чого її вміст збільшується на одиницю. Коли значення змінної pm перевищить значення 100, то умова, що перевіряється, видасть значення ФАЛЬШ, і виконання циклу припиниться.

Рис. 2.1. Виконання циклу for

У професійно написаному С++-коді програми рідко трапляються настанови pm = pm+1, оскільки для настанов такого роду у мові програмування C++ передбачена спеціальна скорочена форма: pm++ (див. розд. 3.5.3). Оператор "++" називається оператором інкремента. Він збільшує операнд на одиницю. Оператор "++" доповнюється оператором "--" (оператором декремента), який зменшує операнд на одиницю. За допомогою оператора інкремента використану в попередній програмі настанову for можна переписати так:

for(pm=1; pm<=100; pm++) cout << pm << " ";

2.5. Структуризація С++-програми