![](/user_photo/2706_HbeT2.jpg)
- •1. Основні поняття
- •2. Етапи створення програми
- •3.Алфавіт і ключові слова
- •Самостійна робота. Директиви препроцесора
- •1. Директива #include
- •2 Директива #define
- •3 Директива #undef
- •4 Директиви #if, #elif, #else, #endif
- •5 Директиви #ifdef і #ifndef
- •6 Директива #line
- •Самостійна робота Функції файлу math.H
- •1. Базові типи даних
- •1. Char - символ
- •3. Float - число з плаваючою комою одинарної точності
- •4. Double - число з плаваючою комою подвійної точності
- •2. Структура програми
- •Лекція 3. Вирази. Арифметичні операції. Математичні функції
- •2. Пріоритети операцій.
- •3. Вирази.
- •4.Арифметичні операції.
- •5.Операції присвоєння.
- •6. Операції порівняння (операції відношень).
- •7. Логічні операції.
- •8. Умовна операція.
- •Вираз1 ? вираз2: вираз3
- •Самостійна робота. Правила узгодження типів
- •Самостійна робота. Команда присвоєння суміщена з арифметичною операцією
- •Лекція 4. Потоки та функції введення-виведення даних.
- •1. Потоки введення-виведення даних
- •1.1 Команда введення даних.
- •1.2 Команда виведення даних.
- •2.Функції введення-виведення даних
- •Самостійна робота. Перенаправлення потоків введення-виведення у ms dos
- •Теоретичні відомості
- •Базові типи даних
- •Потоки введення – виведення даних
- •Математичні функції
- •Порядок виконання роботи:
- •Лекція 5. Алгоритмічний вибір альтернатив
- •2. Команда розгалуження if.
- •If (логічний вираз) команда1; else команда2;
- •If (логічний вираз) команда1;
- •5. Команда безумовного переходу goto.
- •Мітка : команда;
- •Самостійна робота. Побітові операції та операції зсуву
- •Теоретичні відомості
- •Вираз1, вираз2 або команда1, команда2
- •If (логічний вираз) команда1; else команда2;
- •If (логічний вираз) команда1;
- •Теоретичні відомості
- •Лекція 6. Алгоритмічна конструкція повторень
- •1.Команда циклу з лічильником for.
- •2. Команда циклу з передумовою (while)
- •3.Команда циклу з післяумовою do-while
- •Самостійна робота Оператори переривання роботи циклу
- •Лабораторна робота №4. Циклічні оператори (while, do…while).
- •Теоретичні відомості
- •Цикл з передумовою while
- •While ( вираз )оператор;
- •Завдання 2.
- •Лабораторна робота №5. Циклічні оператори (for).
- •Теоретичні відомості
- •Державний вищий навчальний заклад «Чернівецький політехнічний коледж» «Основи програмування та алгоритмічні мови»
- •Структура заняття:
- •Державний вищий навчальний заклад «Чернівецький політехнічний коледж» «Основи програмування та алгоритмічні мови»
- •Структура самостійної роботи
- •Структура самостійної роботи
- •Контрольні запитання і завдання
- •Державний вищий навчальний заклад «Чернівецький політехнічний коледж» «Основи програмування та алгоритмічні мови»
- •Структура заняття:
- •Державний вищий навчальний заклад «Чернівецький політехнічний коледж» «Основи програмування та алгоритмічні мови»
- •Структура заняття:
- •Державний вищий навчальний заклад «Чернівецький політехнічний коледж» «Основи програмування та алгоритмічні мови»
- •Структура самостійної роботи
- •Питання і задачі для самостійної роботи
- •Державний вищий навчальний заклад «Чернівецький політехнічний коледж» «Основи програмування та алгоритмічні мови»
- •Структура заняття:
- •Державний вищий навчальний заклад «Чернівецький політехнічний коледж» «Основи програмування та алгоритмічні мови»
- •Забезпечення заняття:
- •Зміст і хід заняття:
- •Державний вищий навчальний заклад «Чернівецький політехнічний коледж» «Основи програмування та алгоритмічні мови»
- •Структура заняття:
- •Державний вищий навчальний заклад «Чернівецький політехнічний коледж» «Основи програмування та алгоритмічні мови»
- •Забезпечення заняття:
- •Зміст і хід заняття:
- •Державний вищий навчальний заклад «Чернівецький політехнічний коледж» «Основи програмування та алгоритмічні мови»
- •Забезпечення заняття:
- •Зміст і хід заняття:
- •Державний вищий навчальний заклад «Чернівецький політехнічний коледж» «Основи програмування та алгоритмічні мови»
- •Структура заняття:
- •1) Знайти кількість і добуток усіх парних цілих чисел з проміжку від 4 до 11______
- •Державний вищий навчальний заклад «Чернівецький політехнічний коледж» «Основи програмування та алгоритмічні мови»
- •Забезпечення заняття:
- •Зміст і хід заняття:
- •Державний вищий навчальний заклад «Чернівецький політехнічний коледж» «Основи програмування та алгоритмічні мови»
- •Забезпечення заняття:
- •Зміст і хід заняття:
6. Операції порівняння (операції відношень).
Дамо в таблиці повний перелік операцій відношень мови С++.
-
Операція
Значення
<
Менше
<=
Менше або дорівнює
==
Дорівнює
>=
Більше або дорівнює
>
Дорівнює
!=
Не дорівнює
Операції відношень використовуються для побудови умовних виразів. Кожний умовний вираз отримує оцінку “істинний” або “хибний”. В мові Сі хибний вираз приймає значення 0, а істинний вираз - значення , відмінне від 0. Іншими словами, всі ненульові значення розглядаються , як “істина”, і тільки 0 вважається “хибою”.
Наведемо проклади умовних виразів з використанням операцій відношень:
number < 6
ch != ’s’
ch > ’v’
total == 100
Зауваження: не можна використовувати знак = замість знаку ==. Якщо
х = 10 - це операція присвоювання, яка значення 10 присвоює змінній х, то
х == 10 - це операція порівняння, яка перевіряє, чи рівні значення змінної х і числа 10.
7. Логічні операції.
В мові С++ є три логічні операції:
Операція |
Значення |
&& |
і |
|| |
або |
! |
ні |
Якщо x1 i x2 – це два прості умовні вирази, то можна стверджувати слідуюче:
x1 && x2 - дорівнює істині тільки тоді, коли обидва вирази x1 i x2 - істинні.
x1 || x2 - дорівнює істині, коли один з виразів x1 або x2 дорівнює істині,
або обидва вирази істинні.
!x1 - дорівнює істині, коли вираз х1 хибний і дорівнює хибі, коли вираз
х1 істинний.
Наведемо кілька прикладів (врахуємо, що логічні операції && i || мають менший пріоритет, ніж операції відношень, а операція ! має більший приоритет, ніж операції відношень):
5>2 && 4>7 - хибний, бо істинний тільки один підвираз.
5>2 || 4>7 - істинний, бо істинний один з підвиразів.
!(4>7) - істинний, бо підвираз хибний.
!(5>2) - хибний, бо підвираз істинний.
8. Умовна операція.
Умовна операція має три операнди, кожний з яких являється виразом. Вони розташовані таким чином:
Вираз1 ? вираз2: вираз3
Значення всього виразу дорівнює виразу2, якщо вираз1 істинний, інакше значення всього виразу отримає значення виразу3.
Наприклад,
(5>3)?1:2 має значення 1,
(3>5)?1:2 має значення 2.
В наступному прикладі змінній max присвоюється більше з двох значень :
max = (a>b)?a:b;
Самостійна робота. Правила узгодження типів
Невідповідність типів даних при роботі в С++ є однією з найбільш частих помилок на початковому етапі навчання. На жаль, компілятор не завжди може попередити такі неточності програміста. Як наслідок, програма виконує не ті дії, що потрібно.
При виконанні операцій відбувається неявне перетворення типів в наступних випадках:
- при виконанні операцій відбувається звичайне арифметичне перетворення;
- при виконанні операції присвоєння, якщо значення одного типу присвоюється змінній іншого типу;
- при передачі аргументів функції.
Крім того, в С є можливість явного перетворення між типами.
В загальному випадку неявне перетворення типів зводиться до участі у виразах змінних різного типу ( так звана арифметика змішаних типів). Якщо вказана операція здійснюється над змінними базових типів, вона може викликати помилку: у випадку, наприклад, якщо результат займає в пам’яті більше місця, ніж відведено для змінної, буде втрата значущих розрядів.
Для явного перетворення змінної з одного типу в інший перед іменем в дужках вказується новий тип:
#include <iostream.h>
int main()
{int integer = 54;
float floating=15.854;
integer = (int) floating;// явне перетворення типів
cout<<”New integer”;
cout<<Integer<<’\n’;
return 0;
}
в наведеному прикладі після оголошення відповідних змінних відбувається явне перетворення типу з плаваючою крапкою до цілочисельного значення.
Приклад неявного перетворення:
#include <iostream.h>
int main()
{ int integer = 0;
float floating=15.854;
integer = floating;//неявне перетворення типів
cout<<”New integer”;
cout<<Integer<<’\n’;
return 0;
}
на відміну від попереднього варіанту програми, в заданому випадку після оголошення і ініціалізації змінних здійснюється присвоєння значення змінної з плаваючою крапкою до цілочисельного значення. Результатом в кожній задачі буде – відкидання дробової частини дійсної змінної.
Набір правил для автоматичного перетворення типів даних.
В операторах і виразах повинні використовуватись змінні і константи одного типу. Якщо ж ми все-таки змішуємо типи в одному виразі, то компілятор використовує набір правил для автоматичного перетворення типів:
Якщо операція виконується над даними двух різних типів, то обидві величини приводяться до вищого з двох типів. Цей процес називається підвищенням типу.
Послідовність типу від вищого до нижчого:
double
float
long
short
int
char
В операторі присвоєння кінцевий результат правої частини приводиться до типу змінної, що стоїть зліва.
Підвищення типу переважно проходить успішно, в той час, як пониження типу може призвести до помилок. Причина проста: число може виявитись занадто великим, щоб вміститись в елементі даних нижчого типу.
Перетворення типів даних.
Перетворення типів даних може включати в себе наступні дії:
збільшення або зменшення розрядності машинного слова;
перетворення цілої змінної в змінну з плаваючою точкою і навпаки;
перетворення знакової форми представлення цілого в беззнакову і навпаки.
Зменшення розрядності машинного слова завжди відбувається шляхом відкидання старших розрядів числа, а це може призвести до помилок втрати значущих цифр. Наприклад,
l
ong
d = 0x876543; d
int i;
i = d;
p
rintf(“
%x \n ”, i); i
32767
Збільшення розрядності приводить до появи додаткових старших розрядів числа, які для беззнакових цілих заповнюються нулями, а для цілих зі знаком– заповнюються значенням знакового розряду.
При перетворенні дійсного (дробового) числа до цілого відбувається втрата дробової частини. При цьому можливі помилки переповнення і втрати значущих цифр, коли отримуване ціле число має занадто велике значення. Наприклад,
double d1 = 855.666, d2 = 0.5E16;
i
nt
n1, n2; n1 + d1
+
n1 = d1;
n
2
= d2;
(max
-32767) n2 + d2 +
Перетворення
знакової форми в беззнакову
не супроводжується зміною значення
цілого числа і взагалі не приводить до
виконання будь-яких дій в програмі. В
таких випадках транслятор “запам’ятовує”,
що форма представлення числа змінилась.
signed
знак
unsigned
Висновок для програміста: в мові Сі не передбачені засоби автоматичної реакції на помилки перетворення типів даних, тому “виловлювати” їх повинен сам програміст.
Операція явного перетворення типу (тип).
Ця операція перетворює тип слідуючого за нею опреанда в тип, означений ключевим словом в дужках. Наприклад, (float)9 перетворює ціле число 9 в число з плаваючою точкою 9.0. Ще один приклад,
int m;
m
1.6 + 1.7 = 3.3
m <- 3
= 1.6 + 1.7;
1 + 1 = 2
m <- 2
m = (int)1.6 + (int)1.7;