- •Мова програмування с Навчальний посібник
- •І. Теоретична частина Структура програми на мові с
- •Базові типи даних
- •Арифметичні операції
- •Функції введення scanf() та виведення printf()
- •Оператори
- •Функції користувача
- •Функції із змінним числом аргументів
- •Функції стандартних бібліотек Функції для роботи із символами (ctype.H)
- •Функції для роботи з каталогами (dir.H)
- •Функції для роботи з ос (dos.H)
- •Функції для роботи з графічним режимом (graphics.H)
- •Математичні функції (math.H)
- •Функції для роботи з рядками (string.H)
- •Функції потокового вводу/виводу (stdio.H)
- •Функції вводу/виводу нижнього рівня (io.H)
- •Функції вводу/виводу консолі та порту (conio.H)
- •Int s[2][3];
- •Int b[2][3][4];
- •Структури
- •Об'єднання
- •Динамічний розподіл пам’яті
- •Void free(void*);
- •Іі. Практична частина Лабораторна робота №1 Тема: Основні конструкції мови с. Програмування простих алгоритмів
- •Лабораторна робота №2 Тема: Створення і використання функцій
- •Лабораторна робота №3 Тема: Використання структур
- •Лабораторна робота №4 Тема: Організація роботи з файлами
- •Рекомендована література
Базові типи даних
В мові С використовуються такі ключові слова, які вказують на різні типи даних:
i
для
опису цілих чисел без
дробової частини
long
short
unsigned
char для опису букв та інших символів
f
для
опису чисел з плаваючою крапкою
double
1. char – символ
Тип може використовуватися для зберігання літери, цифри або іншого символу з множини символів ASCII. Значенням об'єкта типу char є код символу. Тип char інтерпретується як однобайтове ціле з діапазоном значень від -128 до 127.
2. int – ціле
Цілі числа у діапазоні від -32768 до 32767. Як різновиди цілих чисел, у деяких версіях компіляторів існують short – коротке ціле (слово) та long (4 байти) – довге ціле. Хоча синтаксис мови не залежить від ОС, розмірність цих типів може коливатися в залежності від конкретної реалізації. Гарантовано лише, що співвідношення розмірності є наступним: short ≤ int ≤ long.
3. float – число з плаваючою крапкою одинарної точності
Тип призначений для зберігання дійсних чисел. Може представляти числа як у фіксованому форматі (наприклад, число π - 3.14159), так і в експоненціальній формі – 3.4Е+8.
4. double – число з плаваючою крапкою подвійної точності
Приклади описів даних та їх ініціалізації:
int name; float var, var1; double temp; char ch; long height; float income = 2834.12; char val = 12;
int a[10]; /* масив цілих чисел, нумерація елементів масиву від 0 до 9 */
int b[10][10]; /* матриця розміру 10х10 */
char str[]=”Рядок символів”;
char str1[10]; /* Рядок символів */
Цілі типи char, short, int, long можуть використовуватися з модифікаторами signed (із знаком) чи unsigned (без знаку). Цілі без знаку (unsigned) не можуть набувати від'ємних значень, на відміну від знакових цілих (signed). За рахунок цього дещо розширюється діапазон можливих додатних значень типу.
Діапазони значень простих типів даних
Тип |
Діапазон значень |
Розмір (байт) |
сhar |
-128 … 127 |
1 |
short |
-128 … 127 або -32768 ... 32767 |
1 або 2 |
int |
-32768 ... 32767 |
2 або 4 |
long |
-2 147 483 648 ... 2 147 483 647 |
4 |
unsigned char |
0 ... 255 |
1 |
unsigned short |
0 … 65535 |
2 |
unsigned |
|
2 або 4 |
unsigned long |
0 ... 4 294 967 295 |
4 |
float |
±(3.4 10-38 ... 3.4 1038) |
4 |
double |
±(1.7 10-308 ... 1.7 10308) |
8 |
long double |
±(3.4 10-4932 ... 3.4 104932) |
10 |
Вказівник (покажчик) – це змінна або константа стандартного типу даних для збереження адреси змінної визначеного типу. Значення покажчика – це беззнакове ціле, воно повідомляє де розміщена змінна, і нічого не говорить про саму змінну.
Розмір пам'яті для самого покажчика і формат збереженої адреси (вмістиме покажчика) залежить від типу комп'ютера та обраної моделі пам'яті. Константа NULL зі стандартного файлу stdio.h призначена для ініціалізації покажчиків нульовим (незайнятим) значенням адреси.
Змінна типу покажчик оголошується подібно звичайним змінним із застосуванням унарного символу "*".
Використовуючи символ "*" і ключові слова, що застосовуються при описі змінних простих типів, можна утворювати складні декларації, приклади яких наведено нижче.
Складні декларації
Опис змінної |
Пояснення |
int *k, *j ; |
k, j – вказівники на змінні типу int |
int *f (void); |
f – функція без параметрів, яка повертає вказівник на тип int |
int (*pf)(void); |
pf – вказує на функцію без параметрів, яка повертає змінну типу int |
char **a; |
a – вказує на вказівник на char |
int (*daytab)[13]; |
daytab – вказує на масив з тринадцяти елементів типу int |
void *comp(int); |
comp – функція з параметром типу int, яка повертає вказівник на void |
char (*(*x(int))[5])(void); |
x – функція, яка має цілий аргумент і повертає вказівник на масив з п’яти елементів, що містить вказівники на функції без аргументів, які повертають змінні типу char |
char (*(*x[3])(void))[5]; |
x – масив з трьох елементів, що містить вказівники на функції без параметрів, які повертають вказівник на масив із п’яти елементів типу char |