diff --git a/TEMA8/sinus_dict_module.py b/TEMA8/sinus_dict_module.py new file mode 100644 index 0000000..3321d6f --- /dev/null +++ b/TEMA8/sinus_dict_module.py @@ -0,0 +1,23 @@ +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 diff --git a/TEMA8/test.md b/TEMA8/test.md new file mode 100644 index 0000000..909adde --- /dev/null +++ b/TEMA8/test.md @@ -0,0 +1,69 @@ +# Индивидуальное контрольное задание по Теме 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} +```` \ No newline at end of file diff --git a/TEMA8/test_sinus_module.py b/TEMA8/test_sinus_module.py new file mode 100644 index 0000000..8f78b02 --- /dev/null +++ b/TEMA8/test_sinus_module.py @@ -0,0 +1,23 @@ +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()