Материал: lab 5 отчет

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

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

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

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

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

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

 

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

 

Отчёт по лабораторной работе №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)