- •Екзаменаційний білет № 1
- •2. Вирішення багатокрітеріальних задач.
- •3. Математичне описування динамічних систем.
- •Екзаменаційний білет № 2
- •3. Моделювання систем за допомогою безперервних марківських ланцюгів.
- •Екзаменаційний білет № 3
- •1. Планування. Управління ресурсами, боротьба з взаємоблокуванням.
- •3. Вирішення багатокрітеріальних задач.
- •Екзаменаційний білет № 4
- •1. Файлові системи. Принципи побудови файлових систем.
- •2. Основні нормальні форми. Характеристика і приклади відносин, що знаходяться в 1нф, 2нф, 3нф.
- •Id, category, product1, product2, product3
- •3. Моделювання систем за допомогою дискретних марківських ланцюгів.
- •Екзаменаційний білет № 5
- •1. Поняття асемблера, компілятора, транслятора, інтерпретатора.
- •2. Основні оператори мови маніпулювання даними. Оператор вибірки даних (одно- і багатотабличні запити оператора select).
- •3. Поняття системи масового обслуговування. Класифікація систем масового обслуговування.
- •Классификация смо и их основные элементы
- •Екзаменаційний білет № 6
- •1. Завантажувачі. Завдання завантажувачів. Принципи побудови завантажувачів.
- •2. Технологія Ethernet.
- •3. Стадії та етапи створення асу тп.
- •Екзаменаційний білет № 7
- •1. Принципи об’єктно-орієнтованого програмування (парадигми програмування, поняття класу).
- •2. Технологія Token Ring.
- •3. Склад і коротка характеристика розділів технічного проекта.
- •Екзаменаційний білет № 9
- •1. Інкапсуляція. Поняття, сфери застосування.
- •2. Характеристика протоколу hdlc.
- •3. Методи боротьби з помилками, що виникають в каналах передачі даних. Завадостійке кодування. Екзаменаційний білет № 10
- •1. Поліморфізм. Поняття, сфери застосування.
- •2. Методи доступу в мережу.
- •3. Основні параметри завадостійких кодів. Принципи виявлення та виправлення помилок.
- •Екзаменаційний білет № 11
- •1. Принципи розробки розподілених клієнт-серверних програм. Особливості розробки мережевих програм з використанням сокетів.
- •2. Характеристика протоколу ip. Адресація в ip-мережах.
- •3. Циклічні коди. Алгоритми кодування і декодування. Циклические коды.
- •Свойства циклических кодов по обнаружению ошибок
- •Екзаменаційний білет № 12
- •1. Багаторівнева комп’ютерна організація – структура й призначення рівнів.
- •2. Характеристика протоколу tcp.
- •3. Статичні методи стиснення інформації. Алгоритм арифметичного стиснення.
- •Екзаменаційний білет № 13
- •1. Схема комп’ютера з єдиною шиною. Основні характеристики та принципи роботи шини комп’ютера.
- •2. Стадії та етапи створення асу тп.
- •3. Оптимальне кодування інформації. Алгоритми формування коду Хофмана та Шенона-Фано.
- •Екзаменаційний білет № 14
- •1. Структура процесора, внутрішні блоки, види регістрів.
- •2. Склад і коротка характеристика розділів технічного проекта.
- •3. Аналого-числові перетворення безперервного сигналу на базі теореми Котельникова в.А.
- •Екзаменаційний білет № 15
- •1. Команди процесора, структура команд. Цикл Фон-Неймана.
- •2. Склад і зміст проектних рішень з технічного забезпечення.
- •3. Протоколи фізичного рівня.
- •Екзаменаційний білет № 16
- •1. Структуру пам’яті комп’ютера. Елементи статичної та динамічної пам’яті.
- •2. Склад і задачі організацій, що беруть участь у роботах зі створення асу тп.
- •3. Характеристика протоколу ip. Адресація в ip-мережах.
- •Екзаменаційний білет № 17
- •1. Переривання, типи, алгоритм обробки переривання процесором.
- •2. Перелік видів випробувань асу тп та їх короткий зміст.
- •3. Характеристика протоколу tcp.
- •Екзаменаційний білет № 18
- •1. Загальні характеристики канального рівня.
- •2. Поняття системи масового обслуговування. Класифікація систем масового обслуговування.
- •Классификация смо и их основные элементы
- •3. Пропускна спроможність двійкового каналу зв’язку з перешкодами та без перешкод.
- •Екзаменаційний білет № 19
- •1. Загальні відомості з теорії систем. Класифікація систем.
- •2. Математичне описування динамічних систем.
- •3. Загальні характеристики канального рівня.
- •Екзаменаційний білет № 20
- •1. Поняття вимірювальної шкали. Види шкал.
- •2. Основні параметри завадостійких кодів. Принципи виявлення та виправлення помилок.
- •3. Стадії та етапи створення асу тп.
- •Екзаменаційний білет № 21
- •1. Показники якості та ефективності та крітерії їх оцінювання.
- •2. Структура процесора, внутрішні блоки, види регістрів.
- •3. Основні параметри завадостійких кодів. Принципи виявлення та виправлення помилок.
- •Екзаменаційний білет № 22
- •1. Вирішення задачі вибору.
- •2. Поняття операційної системи.
- •3. Розрахунок вартості проектних робіт ресурсним методом.
- •Екзаменаційний білет № 23
- •1. Декомпозиція. Компроміси між повнотою та простотою.
- •2. Характеристика протоколу hdlc.
- •3. Застосування елементних кошторисних норм для розрахунку вартості пусконалагоджувальних робіт.
- •Екзаменаційний білет № 24
- •1. Агрегування. Види агрегування.
- •2. Методи доступу в мережу.
- •3. Багатократні та комбіновані методи модуляції.
Екзаменаційний білет № 7
1. Принципи об’єктно-орієнтованого програмування (парадигми програмування, поняття класу).
По мере развития вычислительной техники и усложнения решаемых задач возникали разные парадигмы программирования. Первые компиляторы поддерживали процедурную модель программирования, в основе которой лежит использование функций. Акцент в данной парадигме программирования делался на обработке – алгоритме, необходимом для выполнения требуемых вычислений. Языки поддерживают эту парадигму, предоставляя средства для передачи аргументов функциям и возврата значений из функций. Используя процедурную модель программирования, программисты могли писать программы до нескольких тысяч строк длиной.
С течением времени акцент при разработке программ сместился от проектирования процедур в сторону организации данных. Набор связанных процедур вместе с данными, которые они обрабатывают, часто называют модулем. Новая парадигма программирования реализована в компиляторах языков ALGOL, Pascal и C). Сутью модульного (структурного) программирования является представление программы в виде совокупности взаимосвязанных процедур (или блоков) и тех данных, которыми эти процедуры (или блоки)
оперируют и организация их в виде модулей. При этом сопровождение таких программ намного проще, чем процедурно-ориентированных.
Для написания более сложных задач понадобился новый подход к программированию, которым и стал объектно-ориентированный подход (ООП). В методологии ООП решаемая задача представляется не в виде алгоритмической модели, а в виде совокупности объектов различных классов, которые обмениваются запросами.
ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
Модель объектно-ориентированного программирования основана на нескольких основополагающих концепциях.
Абстракция данных– это возможность определять новые типы данных, с которыми можно работать почти так же, как и с основными типами данных.
Инкапсуляция – это механизм, который объединяет данные и код, манипулирующий этими данными. При этом данные скрываются от доступа извне.
Для реализации этих двух основополагающих концепций в языке C++ используются классы.
Наследование– это процесс, посредством которого один объект может приобретать и дополнять свойства другого. Это означает, что в ООП на основе уже существующих классов можно строить производные классы. При этом производный класс (называемый также классом-потомком) наследует элементы-данные и функции-члены от своих родительских классов (классов-предков), добавляя к ним свои, которые позволяют ему реализовать черты, характерные только для него. Кроме того, в производном классе наследуемые функции могут быть переопределены. Полиморфизм– это свойство кода вести себя по-разному, в зависимости от ситуации, возни-
кающей в момент выполнения. Полиморфизм – это не столько характеристика объектов, сколько характеристика функций-членов класса, которая проявляется, в частности, в возможности использования одного имени функции-члена для функций, имеющих различные типы аргументов, если выполняемые функцией действия определяются типом переданных ей аргументов.
В более общем смысле полиморфизм – это способность объектов различных классов отвечать на вызов функции сообразно типу своего класса.
КЛАССЫ
Термином класс определяется тип объектов. При этом каждый представитель (или экземпляр) класса называется объектом. Каждый объект всегда имеет свое, уникальное состояние, определяемое текущими значениями его данных-членов (элементов-данных). Функциональное назначение класса определяется возможными действиями над объектами класса, которые задаются его функциями-членами (функциями-элементами или методами). Создание объектов данного класса производится специальной функцией-членом, которая называется конструктором, а уничтожение – другой специальной функцией-членом, которая называется деструктором.
Класс позволяет управлять правами доступа к внутренним данных класса,представляя их как открытые (public), закрытые (private) и защищенные (protected). Класс устанавливает четко определенный интерфейс для взаимодействия объектов этого типа с остальным миром. Закрытые методы или данные доступны только внутри этого объекта. Вместе с тем открытые методы и данные, несмотря на то что они заданы внутри объекта, доступны для всех частей про-
граммы. Открытая часть объекта как раз и используется для создания интерфейса объекта с остальным миром.
Описание класса имеет следующий вид:
class <имя_класса>
{
//закрытые функции-члены и данные-члены класса
public:
//открытые функции-члены и данные-члены класса
} <список_объектов>;
В описании класса <список_объектов> не является обязательным. Можно объявить объекты класса позже, по мере необходимости. Хотя <имя_класса> также необязательно,но его обычно указывают. <имя_класса> становится новым именем типа данных, которое используется для объявления объектов этого класса.
Функции и переменные, объявленные внутри объявления класса, становятся членами этого класса. Переменные, объявленные внутри объявления класса, называются данными-членами этого класса; функции, объявленные внутри объявления класса, называются функциями-членами класса. По умолчанию все функции и переменные, объявленные в классе, становятся закрытыми для этого класса. Это означает, что они доступны только для других членов этого класса. Для объявления открытых членов класса используется ключевое слово public, за которым следует двоеточие. Все функции и переменные, объявленные после ключевого слова public, доступны и из других членов класса, и из любой другой части программы.
Пример объявления класса MyTimer, который реализует функции таймера:
class MyTimer
{
int t; //закрытый элемент класса
public:
int get_timer();
void set_timer(int num);
void add();
};
Класс содержит единственную переменную t, которая и будет соответствовать значению таймера. Кроме того, в классе объявлены три функции. Функция get_timer() возвращает текущее значение таймера. Функция set_timer() устанавливает определенное значение таймера, от которого будет вестись отсчет. Функция add() увеличивает значение таймера на единицу.
Хотя функции get_timer(), set_timer() и add() и объявлены в классе
MyTimer, они еще не определены. Для определения функции-члена нужно связать имя класса, частью которого является функция-член, с именем функции. Это достигается за счет написания имени функции вслед за именем класса с двумя двоеточиями. Оператор, записываемый в виде двух двоеточий, называется оператором разрешения области видимости.