Изменил(а) на 'TEMA8/test.md'

Этот коммит содержится в:
2025-11-10 09:09:58 +00:00
родитель 095bf9eeb7
Коммит cf7311c708

Просмотреть файл

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