Вимоги до лабораторних робіт

ПЕРЕДМОВА

Дане видання не є учбовим посібником по системному програмуванню. Віно включає перелік вимог, яким повинні задовольняти знання студентів перед виконанням ними певної лабораторної роботи, та деякі моменти, на які необхідно звернути увагу в ході роботи.

Звіт про виконання лабораторної роботи повинен бути зданий не пізніше ніж на наступному занятті.


ВИМОГИ ДО ЗВІТУ

В різних ЛР вимоги до звіту можуть варіюватися, але любий звіт повинен складатися з частин, які відповідають нижче наведеним вимогам:

  • описати програму та її призначення;
  • вказувати типи та призначення глобальних змінних;
  • описати методи та прийоми використані при вирішенні поставленої задачі;
  • описати структуру програми.

В лабораторних роботах, які потребують розбору функцій, розбір виконувати за наступним шаблоном:

  • тип поверненого значення;
  • що повернене значення означає;
  • які параметри отримує функція, їх типи, що означають;
  • що виконує функція;
  • особливості;

Якщо функція в якості параметру отримує одну з констант, описану в header файлі, необхідно перерахувати всі споріднені з нею константи і описати їх.

Приклад:

Синтаксис :
    #include <fcntl.h>
    #include <sys\stat.h>
    int open(const char *filename, int access [, unsigned mode]);

    Файл, який включає прототип - io.h

Описання:
    Функція open відкриває файл, ім'я котрого задано параметром filename, і підготовлює його до      наступних операцій читання та / або запису, в залежності від параметру access.
    Для утворення файлу в звичайному режимі, ви можете присвоїти відповідні значення іfmode, або при відкриті файла вказати опції O_CREAT і O_TRUNC зв'язані операцією побітового логічного додавання (OR) з необхідним режимом передачі.
Наприклад:
    open("xmp",O_CREAT|O_TRUNC|O_BINARY,S_IREAD);
створює двійковий файл з атрибутом тільки для читання з ім'ям XMP, причому, Якщо він вже існує, то він обрізається до нульової довжини.
    Для функції open параметр access конструюється шляхом логічного побітового додавання флагів, перерахованих в двох наступних списках. З першого списку може бути використаний тільки один флаг; інші флаги можуть використовуватися в любих логічних комбінаціях.
Список 1: флаги читання / запису .
    O_RDONLY відкриття тільки для читання .
    O_WRONLY відкриття тільки для запису .
    O_RDWR відкриття для читання і запису .
Список 2: інші флаги доступу. 
    O_NDELAY Не використовується; для сумісності з системою UNIX.
    O_APPEND Якщо флажок встановлений, то перед кожною операцією запису, ,вказівник файлу буде встановлюватися на кінець файлу.
    O_CREAT Якщо файл існує, цей флажок не має ніякого значення. Якщо файл не існує, він буде       створений, і біти з аргументу mode будуть використані для установки бітів - атрибутів              файлу, як і в функції chmod.
    O_TRUNC Якщо файл існує, його довжина усікається до 0. Атрибути файлу остаються не          змінними.
    O_EXCL використовується тільки разом з O_CREAT. Якщо файл уже існує, то функція                  повертає помилку.
    O_BINARY Даний флаг може бути встановлений для гарантованого відкриття файлу в двійковому режимі.
    O_TEXT Даний флаг може бути встановлений для гарантованого відкриття файла в текстовому режимі.
    Ці константи (O_...) визначені в файлі fcntl.h.
Якщо ні O_BINARY, ні O_TEXT не вказані, файл відкривається в режимі трансляції, відповідно глобальній змінній іfmode.
    Якщо в побудові параметру access бере участь флаг O_CREAT, вам необхідно вказати аргумент mode з наступних символічних констант, визначених в файлі sys\stat.h.
Значення параметру доступу mode:
    S_IWRITE Дозвіл на запис.
    S_IREAD Дозвіл на читання.
    S_IREAD/S_IWRITE Дозвіл на читання / запис.
Повернені значення: При успішному завершенні open повертає ціле невід'ємне число handle - логічний номер відкритого файла. Вказівник файла (Вказівник поточної позиції)встановлюється на начало файла. При помилці функція повертає значення -1, і змінна errno отримує одне з наступних значень:
    ENOENT - Маршрут або ім'я файла не знайдені;
    EMFILE - Занадто багато відкритих файлів;
    EACCES - Доступ заборонено;
    EINVACC - Невірний код доступу.


Вимоги до оформлення програм

    Тексти програм, написаних студентом, повинні відповідати наступним вимогам:

1. Кожний файл з текстом програми повинен мати заголовок який включає:

  • ім'я файлу;
  • коротку ремарку яка пояснює призначення файлу;
  • рядок який ідентифікує автора.

2. В кінці файлу має бути рядок, який вказує, що це кінець файлу.

3. Вирівнювання тексту повинно відповідати наступним умовам:

  • Директиви препроцесора, об'явлення прототипів функцій, глобальних змінних - вирівнюються в притулок до лівого краю.
  • Кожний оператор або блок операторів, логічно вкладений в інший, зсовується на дві позиції вправо відносно зовнішнього. Фігурна дужка ({), яка означає початок блоку, повинна знаходитись в тому ж рядку, що і оператор, який вміщує цей блок, а дужка, яка означає кінець блоку (}) - в тому ж стовпчику, що починається цей оператор

приклад:

if(a){
  while(i<0){
    i++;
    j++;
    a = 0;
  }
}

        4. Функції та змінні повинні мати осмислені імена які відповідають угорській нотації:

Префікс Тип даних
A Масив (Складний тип)
Ch Символ
Cb Лічильник байтів
Dw Довге ціле без знаку
H Логічний номер
Hdc Логічний номер контексту пристрою
Hwnd Логічний номер вікна
I індекс (Складний тип)
L Довге ціле
Lp Дальній (довгий) покажчик (Складний тип)
N Ціле
Np Ближній (короткий) покажчик
Pt Точка описана парою координат x,y
Sz Рядок який закінчується нулем
W Ціле без знаку

Література до перших трьох ЛР

1. Касаткін А.І. Управление ресурсами. - Минск: Вышейшая школа, 1992.
2. Касаткін А.І. Системное программирование. - Минск: Вышейшая школа, 1991.

Остання зміна: Friday 1 December 2017 12:18 AM