
- •Введення
- •1. Структура та обсяг дисципліни
- •2. Основи програмування на мові с
- •2.1 Найпростіші конструкції мови
- •2.2 Типи даних
- •2.4 Операції мови с
- •2.5 Структура простої с програми
- •2.6 Організація введення-виведення
- •2.7 Компіляція в системі Linux
- •2.8 Організація розгалужень в програмі
- •2.9 Організація циклів
- •2.10 Оператор break
- •2.11 Оператор continue
- •2.11 Масиви
- •2.12 Функції
- •2.13 Вызов функции с переменным числом параметров
- •2.14 Рекурсивні функції
- •2.15 Читання і запис текстових файлів
- •2.16 Структури даних
- •2.17 Перелік|перерахування| (enumeration)
- •2.18 Об'єднання (union)
- •3. Операційні системи і системне програмування
- •3.1. Поняття операційної системи
- •4. Корисні команди Linux
- •4.1. Загальні|спільні| команди
- •4.1.1. Команда arch – виведення архітектури комп'ютера
- •4.1.2. Команда clear – очищення екрану
- •4.1.3. Команда date
- •4.1.9. Команда uptime – інформація про роботу системи
- •4.1.10. Команда users – інформація про користувачів
- •4.1.11. Команди w, who і whoami інформація про користувачів
- •4.1.12. Команда xf8config – настройка графічної підсистеми
- •4.2. Команди для роботи з текстом
- •4.2.1. Команди diff і cmp
- •4.2.2. Команди grep і egrep – текстовий фільтр
- •4.2.3. Команди more и less – посторінкове виведення
- •4.2.4. Команди head і tail – виведення начала і хвоста файлу
- •4.2.5. Команда wc – підрахунок слів у файлі
- •5. Захист інформації в інформаційних системах
- •5.1 Основні завдання забезпечення безпеки
- •5.2 Базові поняття криптографії
- •5.2.1 Поняття криптографічного алгоритму і протоколу
- •5.2.2 Криптосистеми з секретним ключем
- •5.2.3 Криптосистеми із відкритим ключем
- •5.2.4. Гибридні криптосистеми
- •5.2.5. Цифрові підписи
- •5.2.6. Сертифікати
- •5.3. Принципи аутентифіекації і керування доступом
- •5.3.1. Основи аутентифікації
- •5.3.2. Основи керування доступом
- •5.4. Аутентифікація та керування доступом в unix
- •5.4.1. Облікові записи користувачів
- •5.4.2. Аутентифікація
- •5.4.3. Керування доступом
- •6. Програмний інтерфейс unix. Системні виклики і функції стандартних бібліотек
- •6.1. Підтримка програмування в oc unix. Вивчення передачі інформації
- •6.2. Змінні оточення
- •6.3. Обробка помилок
- •6.4. Правила формування і засоби розбору командних рядків
- •7. Операції над файлами
- •7.1 Файлові операції posix
- •7.2. Збирання інформації про атрибути файла
- •7.3. Операції над каталогами
- •Література
2.4 Операції мови с
Якщо вираз містить декілька операцій, то порядок виконання дій визначається пріоритетом цих операцій. Крім пріоритету операції характерізуються кількістю лперандів (одномісні, двомісні, тримісні), а також асоциативністю – порядкои виконання при однакових пріоритетах (зліва направо або справа наліво). У навеленій нижче таблиці представлені всі операції мови С в порядку убування пріоритету.
Таблиця 1
Пріо-рітет |
Знак операції |
Число опер андів |
Асо ціат ивні сть |
Назва |
Приклади |
1 |
2 |
3 |
4 |
5 |
6 |
1 |
[] |
|
→ |
Індексні дужки |
arr1 [ і ], агг2 [j+1 ] |
1 |
( ) |
|
→ |
Виклик функції |
sin ( х), а * ( b + з ) |
2 |
! |
1 |
← |
Логічне НЕ |
!(а>b) |
2 |
~ |
1 |
← |
Побітове НЕ |
~ а |
2 |
++ -- |
1 |
← |
Приріст, зменшення на 1 |
і ++, j - - |
2 |
( ) |
|
← |
Приведення типів |
b = ( bуtе ) |
2 |
+ - |
1 |
← |
Зміна знака |
а=-b |
3 |
* |
2 |
→ |
Множення |
а*b |
3 |
/ |
2 |
→ |
Ділення |
а/b |
3 |
% |
2 |
→ |
Остача |
а % b ( а і b - цілі) |
4 |
+ |
2 |
→ |
Додавання |
а + b |
4 |
- |
2 |
→ |
Віднімання |
а-b |
5 |
<<>> |
2 |
→ |
Зрушення вліво, управо |
а >> n, а << n (а і n - цілі) |
5 |
>>> |
|
→ |
Зрушення із заповненням 0 |
а >>> n (а і n - цілі) |
6 |
< <= > >= |
2 |
→ |
Операції відношення |
а < b, а > b, а >= b, а <= b |
7 |
== != |
2 |
→ |
Операшї відношення |
а == b, а!=b |
8 |
& |
2 |
→ |
Побітове І |
а & b ( а і b - цілі) |
9 |
^ |
2 |
→ |
Побітове, що виключає, АБО |
а ^ b ( а і b - цілі) |
|
| |
2 |
→ |
Побітове АБО |
а | b ( а і b - цілі) |
11 |
&& |
2 |
→ |
Логічне І |
а&&b |
12 |
|| |
2 |
→ |
Логічне АБО |
а||b |
13 |
?: |
3 |
→ |
Операція «?» |
х > у ? 5 : 6 |
14 |
= |
2 |
← |
Привласнення |
а = b |
14 |
+= _= *= /= %= != ^= <<= >>= >>>= |
2 |
← |
Виконання бінарної операції і привласнення |
а += b (аналогічно а = а + b ), а /= b ( аналогічно а = а / b ) |