Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_pr1_4567C.doc
Скачиваний:
1
Добавлен:
16.11.2019
Размер:
155.65 Кб
Скачать

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

Тема: Алгебра многочленів. Скінчені множини та розріджені матриці. Керування купою

Завдання.

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

  1. Написати функції, що:

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

б) знаходить множину всіх цілих коренів многочлена;

в) знаходить локальний мінімум многочлена на заданій множині цілих чисел.

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

4) Керування купою. Реалізувати фунції для виділення блока вільної динамічної пам'яті (купи) заданого розміру (результатом роботи процедури повинна бути -1, якщо блок такого розміру виділений бути не може) та для звільнення місця в купі (повторного долучення в список вільної пам'яті блоку, виділеного раніше).

Подання.

  1. Числові множини:

- лінійний список елементів;

- циклічний список елементів;

- двонаправлений список.

  1. Многочлени від однієї змінної з цілими коефіцієнтами:

- лінійний список пар <коефіцієнт, степінь змінної>;

- циклічний список пар;

- двонаправлений список пар.

  1. Розріджені числові матриці : списками, вузли яких подають ненульові елементи рядків та стовпчиків матриці (кожен вузол – це 5-ка , де - відповідно номер рядка, - номер стовпчика, - сам ненульовий елемент матриці, - покажчик на наступний не нульовий елемент в -му рядку, - покажчик на наступний не нульовий елемент в -му словачку) та двома масивами довжини , що задають голови цих списків.

4) Алгоритмами динамічного розподілу пам'яті називають алгоритми, що дозволяють виділяти і звільняти різні за розміром блоки пам'яті, беручи їх з однієї великої області пам'яті (купи). Тут і далі використовуються терміни блок і область, що позначають сукупність суміжних комірок пам'яті. Будемо вважати, що вся наявна вільна пам'ять подана у виді списку вільних блоків. У початковий момент у списку тільки один блок, що містить усю вільну пам'ять (=купу). Кожний блок містить заголовок із розмірами блока і покажчиком на наступний блок. Виділення вільної пам'яті на запит часто виконується або за методом “оптимального за розміром”, або за методом “першого прийнятного”. Перший метод полягає в тому, що серед усіх блоків, що мають розмір, не менший необхідного, вибирається блок із найменшим розміром. Другий метод полягає в тому, що виділенню підлягає перший у порядку перегляду елементів списку блок, розмір котрого не менше необхідного. Якщо блок, обраний за одним з двох зазначених методів, має розмір, що перевищує зазначений при запиті, він розщеплюється на два: перший блок має необхідний розмір і дається у відповідь на запит, другий блок (залишок) залишається в списку вільної пам'яті. При звільненні блока суміжні блоки склеюються.

Вказівки:

виконати аналіз та проектування ЖЦП;

провести автономне тестування та відлагодження всіх процедур і функцій та комплексне тестування всієї програми;

операції та процедури оформити у вигляді модуля;

підготувати Звіт про виконання Лабораторної роботи .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]