
- •12. Класи пам'яті даних 100
- •13. Робота з файлами 106
- •14. Посилання 111
- •Склад мови
- •Алфавіт мови
- •Лексеми
- •Ключові слова
- •Ідентифікатори
- •Константи
- •Символьні рядки
- •Знаки операцій, роздільники, коментарі
- •Типи даних
- •Класифікація типів даних
- •Цілочислові типи
- •Дійсні типи
- •Оголошення змінних і констант
- •Переліки
- •Структура програми
- •Функція main
- •Область дії змінної
- •Введення і виведення даних
- •Функції стандартної математичної бібліотеки
- •Вирази і операції
- •Поняття виразу, операнда, операції
- •Порядок виконання операцій
- •Арифметичні операції
- •Порозрядні операції
- •Операції порівняння
- •Логічні операції
- •Операції присвоєння
- •Умовна операція
- •Операція визначення розміру sizeof
- •Узгодження типів у виразах
- •Умовні оператори
- •Оператори
- •Умовний оператор if
- •Оператор вибору switch
- •Оператори циклу
- •Цикл з параметром. Оператор for
- •Цикл з передумовою. Оператор while
- •Цикл з постумовою. Оператор do while
- •Оператори переходу
- •Використання псевдовипадкових чисел
- •Одновимірні масиви
- •Багатовимірні масиви
- •Символьні рядки
- •Вказівники
- •Оголошення вказівника, операції, пов’язані з вказівниками
- •Адресна арифметика
- •Void – вказівники, типізація вказівників
- •Звертання до елементів масивів через вказівники
- •Масиви символьних рядків і масиви вказівників
- •Динамічне виділення пам’яті
- •Структури і об’єднання
- •Оголошення і ініціалізація структур
- •Звертання до елементів структур
- •Перейменування типів
- •Об’єднання
- •Поля бітів
- •Директиви препроцесора
- •Призначення директив препроцесора
- •Директива включення #include
- •Директиви макропідстановок #define I #undef
- •Директиви умовної компіляції
- •Директиви #ifdef, #ifndef
- •Функції
- •Структура функції
- •Виклик функцій. Прототипи функцій
- •Взаємодія фактичних і формальних параметрів функцій
- •Inline – функції
- •Масиви і символьні рядки як параметри функцій
- •Використання кваліфікатора const в оголошеннях параметрів
- •Багатовимірні масиви як параметри функцій
- •Опрацювання структур у функціях
- •Вказівники на функції
- •Рекурсивні функції
- •Класи пам'яті даних
- •Клас пам'яті, час існування і видимість об’єкта
- •Область дії глобальних і локальних змінних
- •Специфікатори класів пам'яті
- •Специфікатори глобальних змінних
- •Багатофайлові програми
- •Робота з файлами
- •Звертання до файлів
- •Послідовний запис до файлу і послідовне читання з файлу
- •Файли з довільним доступом
- •Посилання
- •Призначення посилань
- •Передача аргументів функцій як посилань
Введення і виведення даних
Будь-яка програма на С++ містить звертання до стандартної бібліотеки, в якій знаходяться визначення типів, констант, макросів, функцій і класів. Для їх використання в програмі необхідно підключити заголовні файли. Для цього використовується директива препроцесора include, після якої в кутових дужках записують ім’я файлу, який містить необхідні визначення.
Для виводу інформації на екран і для введення інформації з клавіатури ми будемо використовувати потоки – це абстрактне поняття, яке відноситься до будь якого переносу даних від їх джерела до одержувача.
Для використання потоків вводу – виводу необхідно підключити до програми заголовний файл iostream і вибрати простір імен за допомогою запису using namespace std;. Після цього можна використовувати такі потоки: cin потік, зв’язаний з клавіатурою, cout – потік, зв’язаний з екраном.
Для потоків cin i cout визначені такі операції: >> - читання з потоку, << - запис у потік. Їх використовують наступним чином:
#include <iostream>
using namespace std;
int main(){
int i;
cout << "i=";
cin >> i;
cout << "You entered " << i << "\nThank you" << endl;
}
Функції стандартної математичної бібліотеки
В програмах цього курсу ми будемо широко використовувати математичні функції, такі, як синус, косинус, корінь квадратний, піднесення до степеня і так далі. Ці функції реалізовані в бібліотеці cmath. Перелік функції наведений у таблиці 3.1.
Таблиця 3.1. Математичні функції
Функція |
Прототип і короткий опис роботи функції |
abs |
int abs(int i) Абсолютне значення (модуль) цілого аргументу |
acos |
double acos(double x) Арккосинус |
asin |
double asin(double x) Арксинус |
atan |
double atan(double x) Арктангенс |
ceil |
double ceil(double x) Найближче ціле, не менше ніж х |
cos |
double cos(double x) Косинус |
fabs |
double fabs(double x) Абсолютне значення (модуль) дійсного аргументу |
floor |
double floor(double x) Найбільше ціле, яке не перевищує х |
fmod |
double fmod(double x, double y) Залишок від ділення нацело х на у |
long |
long labs(long x) Абсолютне значення (модуль) довгого цілого числа |
log |
double long(double x) Натуральній логарифм |
log10 |
double log10(double x) Десятковий логарифм |
Продовження таблиці 3.1.
pow |
double pow(double x, double y) Піднесення х до степеня у |
sin |
double sin(double x) Синус |
sinh |
double sinh(double x) Синус гіперболічний |
sqrt |
double sqrt(double x) Корінь квадратний |
tan |
double tan(double x) Тангенс |
tanh |
double tanh(double x) Тангенс гіперболічний |
Аргументи функцій обчислення синусу, косинусу і тангенсу мають бути задані у радіанах. Для переведенні градусів у радіани і навпаки можна скористатися такими формулами:
α[рад] = α[°] × ( π / 180 )
α[°] = (180 / π) × α[рад]
Приклади використання математичних функцій.
#include <iostream>
#include <cmath>
using namespace std;
int main(){
cout << ceil(1.7) << endl; // = 2
cout << floor(1.7) << endl; // = 1
cout << fmod(3.5, 1.1) << endl; // = 0.2
double a = 2.0, b = 3.0;
cout << pow(a, b) << endl; // = 8
const double PI = 3.14159;
cout << sin(90 * PI / 180) << endl; // = 1
cout << cos(90 * PI / 180) << endl; // = 1.32679e-006
cout << sqrt(25.0) << endl; // = 5
cout << log(2.718281) << endl; // = 1
}