lab 5 отчет
.docxФедеральное агентство связи
Ордена Трудового Красного Знамени
Федеральное государственное бюджетное образовательное
учреждение высшего образования
Московский технический университет связи и информатики»
Кафедра «Сетевых информационных технологий и сервисов»
Отчёт по лабораторной работе №5 по дисциплине «Программирование на языке Python»
Выполнил студент группы
Москва, 2020
Задание 1: Написать функцию, которая принимает число от 0 до 999 включительно и возвращает строковое представление этого числа на английском
Решение: Для того, чтобы сформировать корректную строку, необходимо последовательно выделить разряды в заданном числе и интерпретировать их в соответствии с правилами английского языка. Также необходимо создать словарь, который будет содержать соответствие числа и его английского перевода. Код программы представлен ниже:
def num_to_eng(num: int):
ones = {0: "Zero", 1: "One", 2: "Two", 3: "Three", 4: "Four", 5: "Five", 6: "Six", 7: "Seven", 8: "Eight",9: "Nine"}
afterones = {10: 'Ten', 11: "Eleven", 12: "Twelve", 13: "Thirteen", 14: "Fourteen", 15: "Fifteen", 16: "Sixteen", 17: "Seventeen", 18: "Eighteen", 19: "Nineteen"}
tens = {2: "Twenty", 3: "Thirty", 4: "Fourty", 5: "Fifty", 6: "Sixty", 7: "Seventy", 8: "Eighty", 9: "Ninety"}
eng_num = ""
if num//100 > 0:
eng_num += ones[num//100] + " Hundred "
num %= 100
if num == 0:
return eng_num
if num//10 > 1:
eng_num += tens[num//10] + " "
if num % 10 != 0:
eng_num += ones[num % 10]
return eng_num
elif num//10 == 1:
eng_num += afterones[num]
else:
eng_num += ones[num % 10]
return eng_num
Проверим работу написанной функции на примерах, содержащих различные возможные варианты сформированной строки (рисунок 1).
Рисунок 1 - Значения для тестирования функции
Результат работы программы представлен на рисунке 2:
Рисунок 2 – Результат работы программы
Можно сделать вывод о том, что программа прошла тестирование успешно.
Задание 2: Написать функцию, которая посчитает сумму цифр всех чисел в диапазоне (0, n)
Решение: Для решения данной задачи необходимо склеить все числа в заданном диапазоне в строку и найти ее длину. Код программы представлен ниже:
def digits(num: int):
return len("".join(list(map(str, list(range(1, num))))))
Протестируем программу на заданных значениях (рисунок 3)
Рисунок 3 - Значения для тестирования функции
Результат работы программы представлен на рисунке 4.
Рисунок 4 – Результат работы программы
Можно сделать вывод о том, что программа прошла тестирование успешно.
Вывод: В данной лабораторной работе были разработаны
Программа, позволяющая переводить числа в диапазоне [0, 999] в их строковое представление на английском языке
Программа, позволяющая находить сумму цифр всех чисел в диапазоне (0, n)