- •6.080401 «Інформаційні управляючи системи і технології» 6.080402 «Інформаційні технології проектування»
- •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 Структури даних
- •3. Операційні системи
- •3.1. Поняття операційної системи
- •3.1.1 Призначення операційної системи
- •3.1.2 Операційна система як розширена машина
- •3.1.3 Операційна система як розподілювач ресурсів
- •3.2 Класифікація сучасних операційних систем
- •4 Архітектура операційних систем
- •4.1 Базові поняття архітектури операційних систем
- •4.1.1 Ядро системи. Привілейований режим і режим користувача
- •4.2 Реалізація архітектури операційних систем
- •4.2.1 Монолітні системи
- •4.2.2 Багаторівневі системи
- •4.3 Системи з мікроядром
- •4.4 Концепція віртуальних машин
- •5. Підтримка програмування в oc unix.
- •5.1. Вивчення передачі інформації
- •5.2. Змінні оточення
- •5.3. Обробка помилок
- •5.4. Правила формування і засоби розбору командних рядків
- •6. Логічна організація файлових систем
- •6. 1. Поняття файла і файлової системи
- •6.1.1. Поняття файла
- •6.1.2. Поняття файлової системи
- •6.1.3. Типи файлів
- •6.1.4. Імена файлів
- •6. 2. Організація інформації у файловій системі
- •6.2.1. Розділи
- •6.2.2. Каталоги
- •6.2.3. Зв’язок розділів і структури каталогів
- •6. 3. Зв’язки
- •6. 3. 1. Жорсткі зв’язки
- •6. 3. 2. Символічні зв’язки
- •6. 4. Атрибути файлів
- •6. 5. Операції над файлами і каталогами
- •6. 5. 1. Підходи до використання файлів процесами
- •6. 5. 2. Загальні відомості про файлові операції
- •7. Файлові операції posix
- •7.1. Відкриття і створення файлів
- •7.2. Закриття файла
- •7.3. Читання і записування даних
- •7.4. Збирання інформації про атрибути файла
- •7.5 Операції над каталогами
- •Література
2.9 Організація циклів
Ділянки програми, які можуть багато разів повторюватися в процесі одного запуску програми, називаються циклами. У кожному циклі має бути умова його повторення. Якщо ця умова перевіряється до входу в цикл, говорять, що це цикл з передумовою, а якщо умова перевіряється в кінці циклу, то такий цикл називається циклом з постумовою. Цикл з передумовою може жодного разу не виконатися, тоді як цикл з постумовою виконується як мінімум один раз.
Оператор while
Оператор while є циклом з передумовою. Нижче наведений синтаксис оператора:
while(умова)
оператор
Умовою має бути булевий вираз. Внутрішній оператор циклу (тіло циклу) виконується до тих пір, поки значенням умова буде істина. Звичайно цикл охоплює декілька операторів, тоді їх потрібно об’єднати в блок.
Наприклад, наведений далі фрагмент програми дозволяє визначити суму всіх парних чисел від 4 до 56.
int S=0,i=4;
while(i<=56)
{
S+=i;
i+=2;
}
Оператор do-while
Цикл do-while є циклом з постумовою. Нижче наведений синтаксис цього оператора.
do
оператор
while(умова)
Умова має бути булевого типу. Одне виконання оператора do-while завжди забезпечене. Подальші виконання визначаються значенням умови. Якщо воно істинне, то цикл виконується. Інакше виконання циклу завершується. Аналогічно іншим операторам управління як внутрішній оператор можна використовувати блок.
Для виконання попередньої задачі відповідний фрагмент програми з застосуванням оператора do-while має такий вигляд.
int S=0,i=4;
do
{
S+=i;
i+=2;
}
while(i<=56)
Оператор for
Цикли while і do-while можуть реалізувати всі запити користувача по організації циклічних обчислень. Проте в тих випадках, коли відома кількість повтореньциклу зручно віикористовувати цикл for. З циклом for звичайно зв’язане поняття управляючої змінної циклу, яка набуває початкового значення при вході в цикл, змінюється згідно із законом, визначеним у заголовку циклу після кожного його виконання і порівнюється з деяким межовим значенням для вироблення рішення про продовження обчислень або їх завершення. Нижче наведений синтаксис циклу.
for(ініціалізація_управляючої_змінної;
перевірка_умови_закінчення_циклу;
зміна_значення_управляючої_змінної)
оператор
Як управляюча змінна використовуються змінні будь-яких числових типів.
Наприклад, наведений далі фрагмент програми дозволяє визначити суму всіх парних чисел від 2 до 38:
int i, S=0;
for(i=2; i<=38;i+=2)
S+=i;
2.10 Оператор break
Оператор break використовується у таких випадках:
для виходу з оператора switch;
для виходу з циклу;
Перший варіант використовування оператора break вже розглянуто у підрозд. 2.8.
Для виходу з циклу оператор break розтошовують у циклі як внутрішній оператор умовного оператора if, як це зроблено у наступному прикладі, де оператор break дозволяє запобігти ділення на 0.
…
for(i=0;i<x;i++)
{
…
if(b==i)
break;
Y=a/(b-i);
…
}
2.11 Оператор continue
Оператор continue використовується тільки в циклах. Він перериває виконання операторів, що складають тіло циклу і повертає управляння заголовку циклу. При цьому заголовок працює так, ніби чергова ітерація завершилася. Конкретно в циклах while і do-while управляння передається умові, а в циклі for – третьому елементу заголовка, змічуючому управляючу змінну. У наступному прикладі, якщо b==i, обчислення Y не відбудеться, але виконання циклу буде продовжено.
for(i=0;i<x;i++)
{
…
if(b==i)
continue;
Y=a/(b-i);
…
}