- •2. Основні елементи мови с
- •3.1 Алфавіт мови програмування
- •3.2Лексеми
- •3.3Ключові слова
- •3.4Ідентифікатори
- •3.5 Класифікація типів даних
- •3.6 Літерали
- •3.7 Оператори
- •3.8 Коментарі
- •3.9 Директиви препроцесора
- •3.10 Організація програми
- •3. Операції та вирази
- •4.1 Загальні відомості
- •4.2 Арифметичні операції
- •4.3 Операції приведення типів
- •(Тип) ідентифікатор,
- •4.4 Операції присвоєння
- •4.5 Операції інкремента і декремента
- •4.6 Операції порівняння
- •4.7 Операції зсуву
- •4.8 Порозрядні операції
- •4.9 Логічні операції
- •4.10 Операція sizeof
- •Sizeof ( Вираз ),
- •4.11 Операція послідовного обчислення
- •4.12 Операція умови (?:)
- •Операнд-1 ? Операнд-2 : Операнд-3
- •4.13 Адресні операції
- •Тип * ім'я_покажчика;
- •4. Прості типи даних
- •5.1 Оголошення змінних
- •[ Модифікатори ] тип ім’я_змінної;
- •5.2 Час існування та область видимості змінних
- •5.3 Цілі типи даних
- •5.4 Дійсні типи даних
- •5. Оператори керування
- •5.1 Оператор розгалуження if
- •If ( Вираз ) true-оператор;
- •5.2 Оператор розгалуження if-else
- •If ( Вираз ) true-оператор; else false-оператор;
- •5.3 Оператор множинного розгалуження switch
- •5.4 Оператор циклу for
- •For ( Вираз 1 ; Вираз 2 ; Вираз 3 ) тіло циклу
- •5.5 Оператор циклу while
- •While ( Вираз ) тіло циклу
- •5.6 Оператор циклу do while
- •Тіло циклу while ( Вираз ) ;
- •5.7 Оператор break
- •5.8 Оператор continue
- •6 Введення та виведення даних
- •7.1 Функція виведення printf
- •Int printf( стрічка форматування, змінна1, змінна2, ... );
- •7.2Функція введення scanf
- •Int scanf (стрічка форматування, адреса змінної1, адреса змінної2, ... );
- •9.1 Введення та виведення у файл
- •7 Масиви
- •7.1 Загальні поняття
- •7.2 Одновимірні масиви
- •Тип даних ім’я змінної [n];
- •7.3 Багатовимірні масиви
- •6. Функції
- •6.1 Основні поняття
- •{Тіло функції}
- •6.2 Область видимості
- •6.3 Порожній тип void
- •6.4 Передача аргументів у функцію
- •6.5 Рекурсивні функції
- •6.6 Прототипи функцій
- •8. Рядки в с
- •4.1 Прототипи
- •4.2 Функції перетворення буферів
- •4.3 Функції перевірки літер
- •4.4 Рядок символів
- •4.5 Операції з рядками:
- •4.6 Символьні константи
- •9. Покажчики
- •5.1 Визначення та ініціалізація покажчиків
- •5.2 Визначення покажчиків:
- •5.3 Масиви
- •5.6 Копіювання рядка
- •5.7 Посилання та оператор &
- •5.9 Посилання в якості результатів функції
- •5.10 Покажчики на функцію
- •Тип_функціі (* імя_покажчика) (специфікація_параметрів);
- •5.11 Покажчики на void
- •5.12 Арифметика покажчиків
- •10. Структури, об’єднання, перерахування
- •7.1 Структури
- •7.2 Ключове слово typedef
- •7.3 Об’єднання
- •7.4Перераховуваний тип (Enum)
- •Enum dataType
- •Enum day
- •11 Динамічне виділення пам'яті
5.4 Дійсні типи даних
Тип даних float, скорочення від «floating point», призначений для відображення дійсних чисел. Розмір пам’яті який виділяється для змінної типу float визначений розміром машинного слова. Як правило це 4 байти, з яких 1 біт відводиться для знака, 8 біт для надлишкової експоненти і 23 біта для мантиси, діапазон значень змінної типу float приблизно дорівнює від 3.14E-38 до 3.14E+38.
Тип float використовується у випадках коли не потрібно подвійної точності. Літерали типу float мають використовувати суфікси, в інакшому випадку вони будуть інтерпретуватися як тип double. Приклади літералів типу float: 3.1415926f, 4.0f, 6.022e+23f.
Змінні типу float визначаються використовуючи ключове слово float.
Приклад 8. Оголошення змінних типуfloat.
float pi, chislo;
Приклад 9 . Оголошення та ініціалізація змінних типуfloat.
float pi = 3.1415926f, chislo = 4.0f;
Тип даних doubleсхожий до типу float. Відміна полягає у тому що double дозволяє зберігати дійсні числа подвійної точності. Розмір типу, як правило, два машинних слова, тобто для більшості ПК, 8 байт.
Біти пам'яті розподіляються в такий спосіб: 1 біт для знака, 11 біт для експоненти і 52 біта для мантиси. З обліком опущеного старшого біта мантиси діапазон значень змінної типу double дорівнює від 1.7E-308 до 1.7E+308.
Приклади літералів типу double: 3.1415926535897932, 4.0, 6.022e+23. Використання 4 замість 4.0 буде інтерпретовано як int.
Змінні типу double визначаються використовуючи ключове слово double.
Приклад 10. Оголошення змінних типуdouble.
double pi, chislo;
Приклад 11. Оголошення та ініціалізація змінних типуdouble.
double pi = 3.1415926535897932, chislo = 4.0;
У деяких реалізаціях мови С існує тип long double,розмір якого, як правило, три машинних слова, тобто для більшості ПК, 12 байт.
Приклад 12.
unsigned int b;
int c; /*мається на увазі signed int c */
unsigned d; /*мається на увазі unsigned int d */
signed f; /*мається на увазі signed int f */
unsigned char symbol = ‘в’;
unsigned short total = 123; /* unsigned short int total */
unsigned long apples= 23444232; /*unsigned long int apples */
Загальна інформація про описані вище прості типи даних представлена в табл.. 5.1 (з врахуванням того що розмір машинного слова 4 байти).
Таблиця 5.1 – Прості типи даних
Типи даних |
Розмір пам’яті, байт |
Діапазон значень |
[signed] int |
4 |
від - 2147483648 до 2147483647 |
[signed] char |
1 |
від -128 до 127 |
float |
4 |
від 3.14E-38 до 3.14E+38 |
double |
8 |
від 1.7E-308 до 1.7E+308 |
[signed] long [int] |
4 |
від - 2147483648 до 2147483647 |
[signed] short [int] |
2 |
від - 32768 до 32767 |
long double |
12 |
від 3.4E-4932 до 3.4E+4932 |
unsigned int |
4 |
від 0 до 4294967295 |
unsigned short [int] |
2 |
від 0 до 65535 |
unsigned long [int] |
4 |
від 0 до 4294967295 |
unsigned char |
1 |
від 0 до 255 |
5. Оператори керування
Оператори керування обчислювальним процесом використовуються для організації: розгалуження, циклічного повторення операторів програми, а також передачі керування в необхідне місце програми залежно від виконання певних умов.