Завдання на лабораторну роботу №1 з дисципліни "Архітектура комп'ютера. Апаратне забезпечення"

Завдання на лабораторну роботу №1 з дисципліни

“Архітектура комп'ютера. Апаратне забезпечення”

Мета роботи — оволодіти засобами розробки, відлагоджування, компіляції та профілювання програмних засобів мовою Go для операційної системи Linux.

Порядок виконання:

1. Розробити програмні засоби мовою Go для вирішення задачі відповідно до варіанту.

2. Виконати декомпозицію розробленого програмного коду на модулі та функції. Кожна функція за довжиною не повинна перевищувати 10 рядків та не мати більше 3 рівнів вкладеності.

3. Розробити модульні тести для перевірки правильності розробленого програмного коду.

4. Створити тестові набори даних такого обсягу, щоб час виконання програмного коду був не менше за 10 хвилин.

5. Для тестових наборів проаналізувати час виконання програми в цілому та за окремими функціями.

Варіанти завдань:

1. Реалізація контейнера для збереження та пошуку даних на основі бінарного незбалансованого дерева.

2. Рішення системи лінійних рівнянь методом оберненої матриці.

3. Реалізація пошуку всіх послідовностей в рядку, які відповідають заданому шаблону, що складається з набору довільних символів та символу “*”. Символ “*” відповідає довільному набору символів та може зустрічатися в шаблоні декілька разів.

4. Реалізація бібліотечних засобів для додавання та віднімання цілих десяткових чисел довільної розрядності.

5. Реалізація контейнера для збереження множин з довільною кількістю елементів, який підтримує операції перетину, об'єднання та різниці.

6. Реалізація засобів сортування масиву слів у порядку збільшення відстані Левенштейна від заданого слова.

7. Рішення системи лінійних рівнянь методом Монте-Карло.

8. Реалізація декодера послідовностей, які закодовано азбукою Морзе.

9. Реалізація архіватора/розархіватора текстових файлів методом LZW.

10. Реалізація контейнера для збереження дерева з довільною кількістю вузлів та з можливістю навігації.

Звіт повинен містити:

1. Титульний аркуш.

2. Завдання на роботу.

3. Посилання на репозиторій проекту (github, bitbucket тощо).

4. Звіт профайлера.

escort çeşme escort karabük escort kilis escort ıgdır