ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 19.08.2020

Просмотров: 999

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

2


18.10.06

М ІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

Запорізький національний технічний університет

Факультет інформатики та обчислювальної техніки

ОБ’ЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ

ТА МОВА С++

Методичні вказівки і завдання до лабораторних робот

для студентів спеціальності 8.090801

"Мікроелектроніка та напівпровідникові прилади"

2006


Об’єктно-орієнтоване програмування та мова С++. Методичні вказівки і завдання до лабораторних робот для студентів спеціальнос-ті 8.090801 "Мікроелектроніка та напівпровідникові прилади".

/ Укл. Пінчук В.П., - Запоріжжя: ЗНТУ, 2006.- 31 с.

Укладач: В.П. Пінчук, доцент, канд. фіз.-мат. наук,

Рецензент: Н.І. Біла, доцент, канд. фіз.-мат. наук,

Відповідальний за випуск: Г.В. Корніч, професор

Затверджено
на засіданні кафедри обчислювальної математики,
протокол №
10 від 20.06.2006 р.

Видання містить індивідуальні завдання, вказівки та рекомендації до виконання лабораторних робот з дисципліни "Об’єктно-орієнтоване програмування та мова С++", а також правила оформлення звітів по виконаним роботам. Наведено список літератури, яку рекомендовано для підготовки до лабораторних занять.


Зміст

1 Зміст та оформлення лабораторної роботи 4

2 Теми лабораторних робот 5

3 Варіанти завдань до лабораторних робот 6

Лабораторна робота 1 6

Лабораторна робота 2 8

Лабораторна робота 3 10

Лабораторна робота 4 14

Лабораторна робота 5 16

Лабораторна робота 6 20

Лабораторна робота 7 23

Лабораторна робота 8 25

4 Довідкова інформація

5 Література 26

Додаток А. Таблиця варіантів завдань 27

Додаток Б. Зразок титульної сторінки лабораторної роботи 28

Додаток В. Застосування класів для створення ефектів анімації 29

1 ЗМІСТ ТА ОФОРМЛЕННЯ
ЛАБОРАТОРНОЇ РОБОТИ

Лабораторні роботи виконуються у 7 семестрі, вони мають мету практичного закріплення знань з основ технології сучасного програмування, яка застосовується при реалізації складних програмних проектів. Для виконання лабораторних робот передбачається використання знань, що отримані при вивченні дисципліни "Інформатика. програмування та алгоритмічні мови", яка вичається у 3 семестрі, а також на лекціях у поточному семетрі з даної дисципліни. Крім того, завдання передбачають застосування певних відомостей з курсу вищої математики та чисельних методів аналізу: розв’язування систем лінійних рівнянь та інших задач лінійної алгебри, методів розв’язування нелінійних рівнянь та систем, інтегрування диференційних рівнянь та систем, інтерполяції та апроксимації даних, обчислення одно- та багатовимірних інтегралів та інших.

Лабораторні завдання побудовані так, що відповідають так званому методу проектів. Останнє означає, що теми лабораторних завдань логічно і по змісту пов'язані між собою так, що після виконання останньої лабораторної роботи студент завершує певну комплексну розробку - проект. Після кожної лабораторної роботи студент оформлює проміжний звіт, а після завершення останньої роботи складається остаточний повний звіт. Для захисту лабораторної роботи треба показати викладачу працюючу програму і дати усну відповідь на контрольні запитання.

Для виконання лабораторних робот передбачається застосування мови програмування С++, операційного середовища типу Windows або Linux i компіляторів, які відповідають стандарту ANSI/ISO C++. Дані до тестування розроблених програм студент обирає самостійно або по рекомендації викладача. Тестові розрахунки повинні переконливо свідчити про те, що розроблена програма або програмні засоби діють належним чином. У завданнях, де передбачається програмування операцій графічного виведення можливо застосування 16-розрядої графіки на основі платформи DOS Standard.

По кожній лабораторній роботі оформляється звіт, він повинен відповідати діючим стандартам ЗНТУ. Зразок титульного листа лабораторного звіту наведено у Додатку А. Загальна структура звіту по лабораторній роботі повинна бути такою:


- титульна сторінка;

- формулювання задачі;

- опис алгоритму;

- опис класів, не стандартних типів, функцій, процедур і
інших об’єктів, що були застосовані при виконанні завдання;

- програма, протоколи її роботи;

- висновки.

2 ТЕМИ ЛАБОРАТОРНИХ РОБОТ

1. Динамічний розподіл пам'яті, покажчики та посилання

2. Побудова класів та їх використання

3. Динамічні класові типи

4. Перевантаження операцій

5. Введення/ виведення потоками, робота з файлами,
створення нових потокових операцій

6. Функції та класи з шаблонами

7. Успадкування, атрибути доступу та віртуальні функції

8. Обробка надзвичайних ситуацій

3 ВАРІАНТИ ЗАВДАНЬ
ДО ЛАБОРАТОРНИХ РОБОТ

Нижче наведено теми лабораторних робот і завдання до кожної з них (8 тем і 65 завдань).

Лабораторна робота 1

Тема: Динамічний розподіл пам'яті, покажчики та посилання

Варіант 1

Надана група паралельно з’єднаних резисторів. Кількість резисторів і опір кожного з них відомі. Створити програму, що обчислює загальний опір групи резисторів і долю теплової потужності (у відсотках), що виділяється кожним резистором. Для збереження величин опору резисторів застосувати динамічний масив. Для виконання операцій введення/виведення (у тому числі файлового) застосувати:

- стандартні функції;

- потокові операції.

Нижче наведені робочі формули для розрахунків.

Загальний опір R групи резисторів r1,r2, ... , rN:

.

Доля теплової потужності, що виділяється k-тим резистором:

.

Варіант 2

Надано список виборців, елементом якого є прізвище виборця та його ініціали. Розмір списку наперед не відомий, довжина прізвища виборця не перевищує 30 літерів. Створити програму упорядкування списку по алфавіту. Для обробки списку застосувати динамічний масив. Список виборців знаходиться у файлі з іменем 'Voter_1.txt', упорядкований список розташувати у файлі 'Voter_2.txt'.

Варіант 3

Створити функції, які повертають значення машинної похибки та розмір (у бітах) мантиси бінарного коду для дійсних типів float, double, long double. Виконати дослідження машинної похибки, встановити розмір мантиси бінарного коду, який відповідає кожному з вказаних типів.

Варіант 4

Створити функції для створення та знищення одновимірного динамічного масиву. Передбачити контроль успішності виділення пам’яті при створенні масиву. Тип елемента масиву: char, int, long, double, char*.

Варіант 5

Створити функцію сортування (впорядковування) одновимірного масиву з елементами наданого типу. Передбачити параметр функції, який дає змогу виконувати впорядковування елементів масиву: а) по збільшенню значень елементів; б) по зменшенню.

Варіант 6

Написати функцію, яка створює копію іншого двовимірного динамічного масиву. Тип елемента масиву обрати самостійно.

Варіант 7


Створити функцію, яка знаходить найбільший і найменший елементи одновимірного масиву. Тип елемента масиву обрати самостійно.

Варіант 8

Створити функцію, яка створює одновимірний динамічний масив таким чином, що він є конкатенацією (тобто отриманий з’єднанням) двох заданих масивів одного типу. Тип елемента масиву обрати самостійно.

Варіант 9

Надана прямокутна матриця А розміром NM. Створити функцію, яка знаходить сідлові точки матриці. Сідлові точки - це елементи матриці, які визначаються таким чином:

мінімаксна сідлова точка:

;

максимінна сідлова точка:

.

Тип елемента матриці обрати самостійно. Написати програму, що демонструє правильну роботу створеної функції.

Варіант 10

Надана квадратна матриця з елементами дійсного типу розміром NN. Створити функцію, що перетворює її у обернену матрицю. Для збереження допоміжних масивів застосувати динамічні масиви. Написати програму, що демонструє правильну роботу створеної функції.

Варіант 11

Система N лінійних рівнянь надана матрицею A та вектором правих частин B. Написати процедуру, що розв’язує систему за мето-дом Гауса. Процедура повинна зберігати вихідну матрицю A та вектор правих частин B. Створити програму для тестування проце- дури із використанням псевдовипадкових чисел, знайти найбільшу похибку для вектора-розв’язку. Значення елементів матриці A та вектору B вибирати з інтервалу [0,1].

Варіант 12

Написати програму для візуального дослідження якості генератора випадкових чисел. Програма повинна зображувати кожну пару випадкових чисел із набору, що генерується, точкою або колом малого діаметру у графічному вікні. Для побудови програми рекомендується застосувати модуль rgraph.h. Для отримання псевдовипадкових чисел можна застосувати функцію frand(a,b) з модулю syst.h.

Лабораторна робота 2

Тема: побудова класів та їх використання

Варіант 1

Створити клас для роботи з трьох вимірними векторами. Передбачити функції для виконання таких операцій:

- консольне введення і виведення значень вектора;

- файлове введення і виведення значень вектора;

- ініціалізація вектора;

- складання та віднімання векторів;

- обчислення довжини вектора.

Варіант 2

Створити клас Person. Змінна типу Person повинна вміщувати таку інформацію про деяку людину:

- прізвище, ім’я та по-батькові (масив типу char розміром 80 символів);

- адреса (масив типу char розміром 150 символів);

- рік народження (значення типу int);

- телефон (масив типу char розміром 20 символів);

- зріст, вага (значення типу float).

Передбачити функції для виконання таких операцій:

- консольне введення і виведення значень типу Person;

- ініціалізація.

Варіант 3

Створити клас Alfa таким чином, щоб при створенні першого і знищенні останнього об’єкта цього типу на екран видавалися відповідні повідомлення.