- •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.5 Структура простої с програми
Програма складається з сукупності однієї або більш функцій, одна з яких повинна називатися main(). Заголовок містить операторів (директиви) препроцесора, наприклад, #include і імяфункциі. Ім'я функції можна дізнатися по круглих дужках, які можуть бути порожніми. Тіло функції поміщене у фігурні дужки і складається з ряду операторів, кожний з яких закінчується крапкою з комою:
Заголовок
-----------------------------------------------
#include<stdio.h>
int main(void)
-----------------------------------------------
Тіло
-----------------------------------------------
{
int q;
q=1;
printf(“q=%d \n”,q);
return 0;
}
------------------------------------------------
В даному прикладі тіло програми містить оператора оголошення, що оголошує ім'я і тип використовуваної змінної. Крім того, присутній оператор привласнення, що привласнює значення змінної. Потім слідує оператор друку, який викликає функцію printf(). Функція main() закінчується оператором повернення.
Коротко кажучи, проста програма ANSI C повинна мати наступний формат:
#include<stdio.h>
int main(void)
{
Операторы
return 0;
}
2.6 Організація введення-виведення
Мова С має могутню бібліотеку функцій введення-висновку (есліне наймогутнішу серед всіх мов програмування). Розглянемо дві з них - printf() і scanf().
Функція printf()
Формат функції:
printf(“Управляюча строка”, список аргументів);
Управляюча строка - рядок символів, що показує, як повинні бути надруковані параметри. У рядку, що управляє, міститься інформація двох різних видів:символы, печатаемые текстуально;
ідентифікатори даних, звані також специфікаторами перетворення.
Список аргументів - це перераховані через кому друковані параметри, які можуть бути:
змінними;
константами;
виразами, що обчислюються тут же при виведенні на друк.
Кожному аргументу із списку повинна відповідати одна специфікація перетворення, відповідна типу даного:
%d – для цілих чисел;
%f – для дійсних чисел;
%c – для виведення символа;
%s – для виведення рядка.
Наприклад:
int i=5;
char symbol=’A’;
float pi=3.14159;
char *str=”Hello!”;
printf(“%d %c %f %s”,i,symbol,pi,str);
Функція scanf()
Функція scanf() приймає значення з консолі (клавіатури) до натиснення клавіші Enter, перетворить одержані символи і значення записує за адресою змінної.
Формат функції:
scanf(%специфікатор_типу”,&им’я_змінної>)
Якщо вам потрібно ввести деяке значення і привласнити його змінною одного з базових типів, то перед ім'ям змінної потрібно ставити &. Якщо ви хочете ввести значення строкової змінної, використати & не потрібно.
Наприклад:
int a;
float b;
char s1,s2[10];
printf(“Enter a: “);
scanf(“%d”,&a);
printf(“Enter b: “);
scanf(“%f”,&b);
printf(“Enter symbol: “);
scanf(“%c”,&s1);
printf(“Enter string: “);
scanf(“%s”,s2);
2.7 Компіляція в системі Linux
Хай, наприклад, за допомогою текстового редактора біл підготовлений наступний код програми :
#include<stdio.h>
int main()
{
printf(“This is my first C-program!”);
return 0;
}
Файли, що містять код програми, повинні мати розширення .с. Збережемо нашу програму під ім'ям myprg.c.
Щоб перевести код програми в машинний код, необхідно виконати компіляцію програми. В результаті буде одержаний виконуваний файл.
Наприклад, щоб скомпілювати програму myprg, необхідно ввести команду:
gcc myprg.c
Якщо в програмі немає синтаксичних помилок, то в результаті виконання цієї команди буде одержаний файл а.out. Це виконуваний файл, що містить результат компіляції даної програми. Для запуску на виконання цього файлу введіть команду:
a.out
В результаті роботи програми на екрані з'явиться:
This is my first C-program!
Якщо необхідно зберегти исполняемій файл (а.out), перейменуйте його. Інакше, після виконання наступної компіляції якої-небудь програми, він буде замінений новим файлом а.out.
Компілятор gcc також створює файл об'єктного коду, що має те ж саме основне ім'я, що і початковий файл, і розширення .о ( у нашому випадку файл об'єктного коду називатиметься myprg.o). Але компонувальник після створення виконуваної програми цей файл видаляє. Проте, якщо початкова програма складається з декількох файлів початкового коду, файли об'єктного коду зберігаються. Трохи пізніше ми детально розглянемо роботу з програмами, що складаються з декількох файлів.
Ви можете зіткнутися з проблемою, що полягає в тому, що вікно, в якому виконується програма, зникає після закінчення роботи програми. Якщо таке відбувається, ве можете зробити припинення виконання програми, що припиняється при натисненні клавіші Enter. Для цього в кінці програми перед оператором return додайте виклик функції getch(). Ця функція считиваєткод натиснутої клавіші, тому програма робить паузу до тих пір, поки ви не натиснете Enter.