diff --git a/TEMA8/Mod1.py b/TEMA8/Mod1.py index cf05b61..88c7ac4 100644 --- a/TEMA8/Mod1.py +++ b/TEMA8/Mod1.py @@ -1,2 +1,11 @@ -perm1=input('Mod1:Введите значение = ') -print('Mod1:Значение perm1=',perm1) +import random +import math +def create_tuple(N, V, W): + sin_func = lambda x: math.sin(x)/x if x != 0 else 1 + results = [] + for i in range(N): + x = random.gauss(V, W) + result = sin_func(x) + results.append(round(result, 6)) + return tuple(results) + diff --git a/TEMA8/Mod2.py b/TEMA8/Mod2.py index 88c5b37..7ea3636 100644 --- a/TEMA8/Mod2.py +++ b/TEMA8/Mod2.py @@ -1,11 +1,11 @@ -def alpha(): - print('****ALPHA****') - t=input('Значение t=') - return t - -def beta(q): - print('****BETA****') - import math - expi=q*math.pi - return math.exp(expi) - +import Mod1 +print('Тестируем функцию create_tuple...\n') +test_cases = [ + (5, 0, 1), + (3, 2, 0.5), + (4, -1, 0.2), +] +for i, (N, V, W) in enumerate(test_cases, 1): + result = Mod1.create_tuple(N, V, W) + print(f"Тест {i}: N={N}, V={V}, W={W}") + print(f"Результат: {result}\n") diff --git a/TEMA8/test.md b/TEMA8/test.md new file mode 100644 index 0000000..838a284 --- /dev/null +++ b/TEMA8/test.md @@ -0,0 +1,50 @@ +# Индивидуальное контрольное задание по теме 8 + +Капитонов Михаил, А-02-23 + +## Задание +По указанному преподавателем варианту контрольного задания обратитесь к индивидуальному заданию с таким номером в теме 7, разработайте функцию, на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов. + +Функция: +Разработайте функцию с 3 аргументами: N, V, W, создающую кортеж с заданным числом N элементов - результатов вычисления функции sin(X)/X, где Х – случайное, нормально распределенное число с математическим ожиданием V и стандартным отклонением W. Значение sin(X)/X должно вычисляться с помощью анонимной функции. Результат основной функции – созданный кортеж. Проверить эту функцию на примере. + +## Решение + +```py +#Модуль 1 +import random +import math +def create_tuple(N, V, W): + sin_func = lambda x: math.sin(x)/x if x != 0 else 1 + results = [] + for i in range(N): + x = random.gauss(V, W) + result = sin_func(x) + results.append(round(result, 6)) + return tuple(results) + +#Модуль 2 +import Mod1 +print('Тестируем функцию create_tuple...\n') +test_cases = [ + (5, 0, 1), + (3, 2, 0.5), + (4, -1, 0.2), +] +for i, (N, V, W) in enumerate(test_cases, 1): + result = Mod1.create_tuple(N, V, W) + print(f"Тест {i}: N={N}, V={V}, W={W}") + print(f"Результат: {result}\n") + +Тестируем функцию create_tuple... #Запустил модуль 2 + +Тест 1: N=5, V=0, W=1 +Результат: (0.994858, 0.249104, 0.91095, 0.98991, 0.949274) + +Тест 2: N=3, V=2, W=0.5 +Результат: (0.557395, 0.425528, 0.456684) + +Тест 3: N=4, V=-1, W=0.2 +Результат: (0.771282, 0.927371, 0.854999, 0.878237) + +``` \ No newline at end of file