Материал: Lab4 отчет

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Федеральное агентство связи

Ордена Трудового Красного Знамени

Федеральное государственное бюджетное образовательное

учреждение высшего образования

Московский технический университет связи и информатики»

 

Кафедра «Сетевых информационных технологий и сервисов»

 

Отчёт по лабораторной работе №4 по дисциплине «Программирование на языке Python»

 

Выполнил студент группы

Москва, 2020

Задание 1: Необходимо добавить часы, минуты, секунды к заданному времени. На вход дается строка hh:mm:ss, и три числа hrs, mins и sec означающие часы, минуты и секунды, необходимые добавить к данной строке. На выходе должна быть получена строка формата hh:mm:ss

Решение: Для решения задачи воспользуемся встроенной библиотекой datetime, а точнее методами strptime, strftime класса datetime и функцией timedelta. Код функции time_adjust() представлен ниже:

def time_adjust(time: str, d_hour: int, d_minute: int, d_second: int):

pattern = "%H:%M:%S"

new_time = d.datetime.strptime(time, pattern) + d.timedelta(seconds=d_second, minutes=d_minute, hours=d_hour)

return d.datetime.strftime(new_time, pattern)

Функция была протестирована на трех значениях (рисунок 1).

Рисунок 1 – Значения для тестирования функции

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

Рисунок 2 – Результат работы программы

Можно сделать вывод о том, что программа прошла тестирование успешно.

Задание 2: Создать функцию, которая вернет ближайшую к текущей страницы главу. Если две главы одинаково близко, то выбирается та, которая находится на большей по порядку странице.

Решение: Создадим цикл по словарю, содержащему название главы и номер страницы, с которой она начинается, и будем высчитывать расстояние до заданной страницы. Необходимо найти 2 главы, между началами которых находится страница, определить ближайшую и выйти из цикла. Код программы представлен ниже:

def nearest_chapter(book_dict: dict, page: int):

delta = 0

flag = True

curr_chapt = ""

for chapter, f_page in book_dict.items():

if flag:

delta = abs(f_page - page)

curr_chapt = chapter

flag = False

else:

if abs(f_page - page) <= delta:

curr_chapt = chapter

else:

return curr_chapt

return curr_chapt

Протестируем программу на 3-х примерах (рисунок 3):

Рисунок 3 - Значения для тестирования функции

Результат работы программы представлен на рисунке 4:

Р исунок 4 – Результат работы программы.

Можно сделать вывод о том, что программа прошла тестирование успешно.

Вывод: В данной лабораторной работе были разработаны

  1. Программа, позволяющая увеличивать значение времени

  2. Программа, позволяющая находить ближайшую к заданной странице главу.