- •Лабораторна робота № 2_2. "Знайомство з Сі. Виконання програми простої структури"
- •1. Короткі теоретичні відомості
- •1.1. Структура програми
- •1.2. Константи і змінні
- •1.3. Операції
- •4. Варіанти
- •1.4. Вирази
- •1.5. Введення і виведення
- •1.5.1. Введення і виведення в стандартному Сі
- •2. Постановка задачі
- •5. Методичні вказівки
1.2. Константи і змінні
Константа - це значення, яке не може бути змінене. Синтаксис мови визначає 5 типів констант:
символи;
константи перелічувального типу;
дійсні числа;
цілі числа;
нульовий покажчик (NULL).
Змінні можна змінювати. При завданні значення змінної у відповідну їй область пам'яті поміщається код цього значення. Доступ до значення можливий через ім'я змінної, а доступ до ділянки пам'яті - за його адресою. Кожна змінна перед використанням в програмі повинна бути визначена, тобто їй повинна бути виділена пам'ять. Розмір ділянки пам'яті, що виділяється для змінної і інтерпретація вмісту залежать від типу, вказаного у визначенні змінної. Найпростіша форма визначення змінних:
тип список_імен_змінних;
Основні типи даних
тип даних |
Назва |
розмір, битий |
діапазон значень |
unsigned char |
беззнаковий цілий завдовжки не менше 8 біт |
8 |
0 . . 255 |
char |
цілий завдовжки не менше 8 біт |
8 |
-128 . . 127 |
enum |
перелічувальний |
16 |
-32768 . . 32767 |
unsigned int |
беззнаковий цілий |
16 |
0 . . 65535 |
short int (short) |
короткий цілий |
16 |
-32768 . . 32767 |
unsigned short |
беззнаковий короткий цілий |
16 |
0 . . 65535 |
int |
Цілий |
16 |
-32768 . . 32767 |
unsigned long |
беззнаковий довгий цілий |
32 |
0 . . 4294967295 |
long |
довгий цілий |
32 |
-214748348 . . 2147483647 |
float |
Дійсний одинарній точності |
32 |
3.4Е-38 . . 3.4Е+38 |
double |
Дійсний подвійній точності |
64 |
1.7Е-308 . . 1.7Е+308 |
long double |
Дійсний максимальній точності |
80 |
3.4Е-4932 . . 1.1Е+4932 |
Відповідно до синтаксису мови змінні автоматичної пам'яті після визначення за умовчанням мають невизначені значення. Змінним можна привласнювати початкові значення, явно указуючи їх у визначеннях:
тип ім’я_змінної = початкове_значення;
Цей прийом називається ініціалізацією.
Приклади:
float pi = 3.14, cc=1.3456;
unsigned int year = 1999;
1.3. Операції
Унарні (такі, які мають лише один операнд. Наприклад, запис -А означає застосування до операнду А операції унарного мінуса):
& |
отримання адреси операнда |
* |
звертання за адресою |
- |
унарний мінус, міняє знак арифметичного операнда |
~ |
порозрядне інвертування внутрішнього двійкового коду (побітове заперечення) |
! |
логічне заперечення (НІ). Як логічні значення використовується 0 - НІ і не 0 - ТАК, запереченням 0 буде 1, запереченням будь-якого ненульового числа буде 0. |
++ |
збільшення на одиницю: префіксна операція - збільшує операнд до його використовування постфіксна операція збільшує операнд після його використовування. |
- - |
зменшення на одиницю: префіксна операція - зменшує операнд до його використовування постфіксна операція зменшує операнд після його використовування. |
sizeof |
обчислення розміру (в байтах) для об'єкту того типа, який має операнд |
Бінарні операції (Більшість операцій мають два операнди, один з яких розташовується перед знаком операції, а інший - після. Наприклад, два операнди має операція додавання А+В. Операції, які мають два операнди називаються бінарними).
Аддитивні:
+ |
бінарний плюс (складання арифметичних операндів) |
- |
бінарний мінус (віднімання арифметичних операндів) |
Мультиплікативні:
* |
множення операндів арифметичного типу |
/ |
розподіл операндів арифметичного типу (якщо операнди цілочисельні, то виконується цілочисельний розподіл) |
% |
отримання залишку від розподілу цілочисельних операндів |
Операції зсуву (визначені тільки для цілочисельних операндів).
Формат виразу з операцією зсуву:
операнд_ліворуч операція_сзуву операнд_правий
<< |
зсув вліво бітового представлення значення лівого цілочисельного операнда на кількість розрядів, рівну значенню правого операнда |
>> |
зсув вправо бітового представлення значення правого цілочисельного операнда на кількість розрядів, рівну значенню правого операнда |
Порозрядні операції:
& |
порозрядна кон'юнкція (І) бітових представлень значень цілочисельних операндів |
| |
порозрядна диз'юнкція (АБО) бітових представлень значень цілочисельних операндів |
^ |
що порозрядне виключає АБО бітових представлень значень цілочисельних операндів |
Операції порівняння:
< |
менше ніж |
> |
більше, ніж |
<= |
менше або рівно |
>= |
більше або рівно |
== |
Рівно |
!= |
не рівно |
Логічні бінарні операції:
&& |
кон'юнкція (И) цілочисельних операндів або відносин, цілочисельний результат брехня(0) або істина(1) |
|| |
диз'юнкція (АБО) цілочисельних операндів або відносин, цілочисельний результат брехня(0) або істина(1) |
Умовна операція.
На відміну від унарних і бінарних операцій в ній використовується три операнди.
Вираз 1? Вираз 2 : Вираз 3;
Першим обчислюється значення виразу 1. Якщо воно істинне, то обчислюється значення виразу 2, яке стає результатом. Якщо при обчисленні виразу 1 вийде 0, то як результат береться значення виразу 3.
Наприклад:
x<0 ? -х : x ; //обчислюється абсолютне значення x.
Операція явного (перетворення) приведення типу.
Існує дві форми: канонічна і функціональна:
(им’я_типа) операнд
им’я_типа (операнд)
Пріоритети операцій.
Ранг |
Операції |
1 |
( ) [ ] -> . |
2 |
! ~ - ++ -- & * (тип) sizeof тип( ) |
3 |
* / % (мультиплікативні бінарні) |
|
+ - (адитивні бінарні) |
5 |
<< >> (порозрядного зсуву) |
6 |
< > <= >= (відносини) |
7 |
== != (відносини) |
8 |
& (порозрядна кон'юнкція «И») |
9 |
^ (що порозрядне виключає «АБО») |
10 |
| (порозрядна диз'юнкція «АБО») |
11 |
&& (кон'юнкція «И») |
12 |
|| (диз'юнкція «АБО») |
13 |
?: (умовна операція) |
14 |
= *= /= %= -= &= ^= |= <<= >>= (операція привласнення) |
15 |
(операція кома) |
