СР4
.docxМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение
высшего образования
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Инженерная школа новых производственных технологий
Направление подготовки: 12.03.02 Оптотехника
ООП: Оптико-электронные приборы и системы
САМОСТОЯТЕЛЬНАЯ РАБОТА №4
дисциплина "Основы программирования на Python"
Выполнила:
студентка группы _________________
Проверил:
преподаватель _________________ В. Петровский
Томск - 2023
ЦЕЛЬ РАБОТЫ: обрести навыки работы с файлами.
ЗАДАНИЕ: на основе самостоятельной работы №3 реализовать программу, так, чтобы в файл формата *.xlsx, по столбцам, записывались все отсортированные массивы с указанием, в начальных ячейках, времени их сортировки и названия алгоритма сортировки, а в самый первый столбец файла записать неотсортированный массив. При реализации программы все алгоритмы сортировки должны быть представлены в виде функций, а также реализовать функцию записи в файл формата *.xlsx.
ХОД РАБОТЫ
В начале кода импортируются необходимые модули: openpyxl для работы с файлами Excel, time для измерения времени выполнения, datetime для форматирования времени, randint для генерации случайных чисел.
Создается новый файл Excel с помощью функции openpyxl.Workbook(), и активный лист выбирается с помощью book.active.
Формируется список lst из 10 случайных чисел в диапазоне от 1 до 1000. Затем в ячейку A1 записывается заголовок "Неотсортированный".
Определяется функция array(a, b), которая принимает список a и номер столбца b. Функция заполняет столбец b на листе Excel значениями из списка a. Вызывается функция array(lst, 1), чтобы записать неотсортированный список в столбец 1 на листе Excel.
Определяется функция selection_sort(lst), которая выполняет сортировку выбором. Внутри двух вложенных циклов происходит поиск минимального элемента и его перемещение на правильную позицию. Функция возвращает отсортированный список lst. Измеряется время выполнения сортировки выбором с помощью time.perf_counter(). Вызывается функция selection_sort(lst) для сортировки списка lst. Затем измеряется время после сортировки и вычисляется разница, которая представляет время выполнения алгоритма. Время форматируется в строку с помощью datetime.timedelta(seconds=t1). Результат записывается в ячейку B1 на листе Excel.
Аналогичным образом выполняются сортировки вставками, пузырьком, Шелла и быстрая сортировка. Каждый алгоритм сортировки измеряет время выполнения и записывает результаты в соответствующие ячейки на листе Excel.
После сортировки всех алгоритмов, файл Excel сохраняется с именем "BEBRA.xlsx", и поток работы с файлом закрывается с помощью book.close().
РЕЗУЛЬТАТЫ:
Таким образом, в данной работе была реализована программа, которая выполняет сортировку списка случайных чисел различными алгоритмами сортировки, а затем записывает результаты в файл Excel.
Также были приобретены навыки работы с модулем openpyxl для создания и записи данных в файлы Excel, понимание различных алгоритмов сортировки, таких как сортировка выбором, вставками, пузырьком, Шелла и быстрая сортировка, использование функций и циклов для реализации алгоритмов сортировки, измерение времени выполнения кода с помощью модуля time и форматирование времени с помощью модуля datetime, генерация случайных чисел с помощью модуля random.