# Индивидуальное контрольное задание по Теме 8 Выполнил: Тимошенко А.А. Проверил: Козлюк Д.А. ## Задание: Вариант 16: Разработайте функцию с 2 аргументами, которая для заданного словаря (аргумент функции) с любыми ключами и с числовыми значениями создаёт новый словарь с теми же ключами и со значениями, равными синусам от значений из входного словаря, и записывает новый словарь в бинарный файл с заданным именем (аргумент функции). Проверьте функцию на примере двух разных входных словарей. По указанному преподавателем варианту контрольного задания обратитесь к индивидуально-му заданию с таким номером в теме 7, разработайте функцию, на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов. ## Решение: Модуль 1: ``` import math import pickle def process_dictionary_sinus(input_dict, filename): #создаю новый словарь с синусами значений new_dict = {} for key, value in input_dict.items(): new_dict[key] = math.sin(value) #записываю новый словарь в бинарный файл with open(filename, 'wb') as file: pickle.dump(new_dict, file) return new_dict # Дополнительная функция для чтения из бинарного файла def read_from_binary_file(filename): """ Чтение словаря из бинарного файла """ with open(filename, 'rb') as file: loaded_dict = pickle.load(file) return loaded_dict ``` Модуль 2: ``` import sinus_dict_module as sdm def simple_test(): #создам два словаря для теста dict1 = {'точка1': 0, 'точка2': 1.57, 'точка3': 3.14} dict2 = {'данные1': 2.5, 'данные2': -1.2, 'данные3': 0.8} #обрабатываем оба словаря result1 = sdm.process_dictionary_sinus(dict1, 'dict1.bin') result2 = sdm.process_dictionary_sinus(dict2, 'dict2.bin') #выводим результаты print("Словарь 1:", dict1) print("Результат 1:", result1) print("Словарь 2:", dict2) print("Результат 2:", result2) #проверяем запись в файлы print("Из файла 1:", sdm.read_from_binary_file('dict1.bin')) print("Из файла 2:", sdm.read_from_binary_file('dict2.bin')) if __name__ == "__main__": simple_test() ``` Вывод: ```` Словарь 1: {'точка1': 0, 'точка2': 1.57, 'точка3': 3.14} Результат 1: {'точка1': 0.0, 'точка2': 0.9999996829318346, 'точка3': 0.0015926529164868282} Словарь 2: {'данные1': 2.5, 'данные2': -1.2, 'данные3': 0.8} Результат 2: {'данные1': 0.5984721441039564, 'данные2': -0.9320390859672263, 'данные3': 0.7173560908995228} Из файла 1: {'точка1': 0.0, 'точка2': 0.9999996829318346, 'точка3': 0.0015926529164868282} Из файла 2: {'данные1': 0.5984721441039564, 'данные2': -0.9320390859672263, 'данные3': 0.7173560908995228} ````