Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab 5 отчет

.docx
Скачиваний:
23
Добавлен:
28.06.2021
Размер:
40.06 Кб
Скачать

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

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

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

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

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

 

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

 

Отчёт по лабораторной работе №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 – Результат работы программы

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

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

  1. Программа, позволяющая переводить числа в диапазоне [0, 999] в их строковое представление на английском языке

  2. Программа, позволяющая находить сумму цифр всех чисел в диапазоне (0, n)

Соседние файлы в предмете Программирование на Python