
- •12. Класи пам'яті даних 100
- •13. Робота з файлами 106
- •14. Посилання 111
- •Склад мови
- •Алфавіт мови
- •Лексеми
- •Ключові слова
- •Ідентифікатори
- •Константи
- •Символьні рядки
- •Знаки операцій, роздільники, коментарі
- •Типи даних
- •Класифікація типів даних
- •Цілочислові типи
- •Дійсні типи
- •Оголошення змінних і констант
- •Переліки
- •Структура програми
- •Функція main
- •Область дії змінної
- •Введення і виведення даних
- •Функції стандартної математичної бібліотеки
- •Вирази і операції
- •Поняття виразу, операнда, операції
- •Порядок виконання операцій
- •Арифметичні операції
- •Порозрядні операції
- •Операції порівняння
- •Логічні операції
- •Операції присвоєння
- •Умовна операція
- •Операція визначення розміру sizeof
- •Узгодження типів у виразах
- •Умовні оператори
- •Оператори
- •Умовний оператор if
- •Оператор вибору switch
- •Оператори циклу
- •Цикл з параметром. Оператор for
- •Цикл з передумовою. Оператор while
- •Цикл з постумовою. Оператор do while
- •Оператори переходу
- •Використання псевдовипадкових чисел
- •Одновимірні масиви
- •Багатовимірні масиви
- •Символьні рядки
- •Вказівники
- •Оголошення вказівника, операції, пов’язані з вказівниками
- •Адресна арифметика
- •Void – вказівники, типізація вказівників
- •Звертання до елементів масивів через вказівники
- •Масиви символьних рядків і масиви вказівників
- •Динамічне виділення пам’яті
- •Структури і об’єднання
- •Оголошення і ініціалізація структур
- •Звертання до елементів структур
- •Перейменування типів
- •Об’єднання
- •Поля бітів
- •Директиви препроцесора
- •Призначення директив препроцесора
- •Директива включення #include
- •Директиви макропідстановок #define I #undef
- •Директиви умовної компіляції
- •Директиви #ifdef, #ifndef
- •Функції
- •Структура функції
- •Виклик функцій. Прототипи функцій
- •Взаємодія фактичних і формальних параметрів функцій
- •Inline – функції
- •Масиви і символьні рядки як параметри функцій
- •Використання кваліфікатора const в оголошеннях параметрів
- •Багатовимірні масиви як параметри функцій
- •Опрацювання структур у функціях
- •Вказівники на функції
- •Рекурсивні функції
- •Класи пам'яті даних
- •Клас пам'яті, час існування і видимість об’єкта
- •Область дії глобальних і локальних змінних
- •Специфікатори класів пам'яті
- •Специфікатори глобальних змінних
- •Багатофайлові програми
- •Робота з файлами
- •Звертання до файлів
- •Послідовний запис до файлу і послідовне читання з файлу
- •Файли з довільним доступом
- •Посилання
- •Призначення посилань
- •Передача аргументів функцій як посилань
Умовний оператор if
Умовні оператори реалізують розгалуження процесу виконання програми та дають змогу вибрати один з можливих варіантів продовження програми. В С++ є два два вида умовних операторів – іf i switch.
Оператор іf має дві форми – скорочену та повну. Синтаксис скороченої форми умовного оператора такий:
if (вираз) оператор;
Вираз, записаний в дужках, визначає, чи буде виконаний оператор. Якщо значення виразу істина (ненульове), то оператор буде виконаний. Якщо значення виразу хибне (нульове), то оператор буде пропущений, управління передається до оператора, наступного за іf.
Оператором іf може бути довільний оператор мови С++: оператор – вираз, умовний оператор, оператор циклу, оператор переходу. Якщо від значення виразу в операторі іf має залежити група операторів, то їх оформляють як оператор – блок.
Синтаксис повної форми оператора іf такий:
if (вираз)
оператор1;
else
оператор2;
Оператор 1 виконується, якщо значення виразу істинне (ненульове), а оператор 2 – якщо хибне (нульове). Внутрішні оператори 1 і 2 можуть бути довільними операторами мови, в тому числі порожніми операторами, блоками, що об’єднують групу операторів, або іншим оператором іf. В останньому випадку за замовчуванням else – частина умовного оператора пов’язується з найближчим попереднім оператором іf.
Приклад програми. Знайти модуль числа.
#include <iostream>
using namespace std;
int main(){
setlocale(LC_ALL, "");
double a = -7, t;
if ( a >= 0 )
t = a;
if ( a < 0 )
t = -a;
if ( a >= 0 )
t = a;
else
t = -a;
t = a > 0 ? a : -a;
}
Приклад програми. Знайти
рішення рівняння виду
.
#include <iostream>
using namespace std;
int main(){
setlocale(LC_ALL, "");
double a=1, b=4, c=3;
double d, x1, x2;
d = b * b - 4 * a * c;
if ( d > 0 ) {
x1 = ( -b + sqrt(d) ) / ( 2 * a );
x2 = ( -b - sqrt(d) ) / ( 2 * a );
cout << "2 решения" << endl;
cout << "x1 = " << x1 << endl;
cout << "x2 = " << x2 << endl;
} else if ( d == 0 ) {
x1 = ( -b + sqrt(d) ) / ( 2 * a );
cout << "1 решение" << endl;
cout << "x = " << x1 << endl;
} else
cout << "Решений нет" << endl;
}
Приклад програми. Робота світлофора запрограмована таким чином: на початку кожного часу протягом трьох хвилин горить зелене світло, потім протягом двох хвилин – червоне, і так далі. Дано дійсне число – час в хвилинах з початку чергового часу. Визначити, сигнал якого кольору горить на світлофорі.
#include <iostream>
using namespace std;
int main(){
int green = 3, red = 2, temp;
double t = 24;
temp = (int) t % ( green + red );
if ( temp < green )
cout << "Green" << endl;
else
cout << "Red" << endl;
}
Приклад програми. Знайти значення функції
#include <iostream>
using namespace std;
int main(){
setlocale(LC_ALL, "");
double x = 2.34, y;
if ( x < 0 )
y = pow( x, 2 );
else if ( 0 <= x && x < 5 )
y = sin( x ) + cos( x );
else if ( 5 <= x && x < 10 )
y = exp( x );
else
y = -x;
cout << y << endl;
}