Lab1 отчет
.docxФедеральное агентство связи
Ордена Трудового Красного Знамени
Федеральное государственное бюджетное образовательное
учреждение высшего образования
Московский технический университет связи и информатики»
Кафедра «Сетевых информационных технологий и сервисов»
Отчёт по лабораторной работе №1 по дисциплине «Программирование на языке Python»
Выполнил студент группы
Москва, 2020
Задание 1: Написать функцию, которая принимает список чисел и возвращает сумму всех простых чисел из этого списка.
Решение: Разработаем блок-схему работы программы (рисунок 1).
Р исунок 1 – Блок-схема работы программы.
Вынесем определение того, является ли число простым, в отдельную функцию is_prime():
def is_prime(num):
if num <= 1: # отрицательные числа, 0 и 1 не являются простыми
return False
if num % 2 == 0 and num > 2: # четные числа не могут быть простыми
return False
return all(num % i for i in range(3, int(sqrt(num)) + 1, 2))
Функция sum_primes() будет использовать функцию is_prime() для фильтрации входного массива:
def sum_primes(array):
if len(array) == 0:
return "None"
x = sum(list(filter(lambda num: is_prime(num), array)))
if x > 0:
return x
else:
return "None"
Р езультат работы программы представлен на рисунке 2.
Рисунок 2 – Результат работы программы
Задание 2: Написать функцию, которая принимает строку, а затем возвращает строку, закодированную азбукой Морзе.
Решение: Разработаем словарь, где каждому элементу кодируемого алфавита поставлено в соответствие его значение в азбуке Морзе. Далее разделим буквы в исходной строке пробелами и заменить все соответствующие элементы. Исходный код функции encode-morse() представлен ниже:
def encode_morse(string):
morse_dict = {'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.', 'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..', 'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.','S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-','Y': '-.--', 'Z': '--..', ' ': ' ', '0': '-----','1': '.----', '2': '..---', '3': '...--', '4': '....-', '5': '.....','6': '-....', '7': '--...', '8': '---..', '9': '----.','&': '.-...', "'": '.----.', '@': '.--.-.', ')': '-.--.-', '(': '-.--.',':': '---...', ',': '--..--', '=': '-...-', '!': '-.-.--', '.': '.-.-.-','-': '-....-', '+': '.-.-.', '"': '.-..-.', '?': '..--..', '/': '-..-.' }
string = string.upper()
for letter in set(string):
try:
string = string.replace(letter, morse_dict[letter])
except KeyError:
raise KeyError
return string
Результат работы программы представлен на рисунке 3.
Рисунок 3 – Результат работы программы
Проведем обратное преобразование строки на сайте https://morsedecoder.com/ (рисунок 4)
Рисунок 4 – Проверка работы программы
Задание 3: Написать функцию, кодирующую строки следующим образом:
Отразить строку
Заменить гласные следующим образом:
a
=> 0
e
=> 1
i
=> 2
о=> 2
u
=> 3
Добавить «аса» в конец слова
Решение: Разработаем словарь, с помощью которого можно заменить гласные в слове по указанному правилу. Затем отразим его и добавим в конец необходимую последовательность. Исходный код программы представлен ниже:
def encode_str(string):
vowel_encode_dict = {
"a": "0",
"e": "1",
"i": "2",
"o": "2",
"u": "3"
}
for key in vowel_encode_dict.keys():
string = string.replace(key, vowel_encode_dict[key])
return str(string[::-1] + "aca")
Результат работы программы представлен на рисунке 5:
Рисунок 5 – Результат работы программы.
Вывод: В данной лабораторной работе были разработаны
Программа для суммирования элементов массива, являющихся простыми числами.
Программа, шифрующая сообщение азбукой Морзе.
Программа, шифрующая слово по заданному в условии правилу.