diff --git a/TEMA8/Figure_1.png b/TEMA8/Figure_1.png new file mode 100644 index 0000000..3feda0d Binary files /dev/null and b/TEMA8/Figure_1.png differ diff --git a/TEMA8/func_calc.py b/TEMA8/func_calc.py new file mode 100644 index 0000000..a54deb1 --- /dev/null +++ b/TEMA8/func_calc.py @@ -0,0 +1,21 @@ +import math + + +calc = lambda a, x: a * math.sin(x) / x + + +def calculate_all(a): + results = [] + x = 0.5 + while x <= 50: + y = calc(a, x) + results.append(y) + x += 0.5 + return results + + +def save_results(results): + with open("results.txt", "w") as f: + for y in results: + f.write(f"{y}\n") + print("Результаты сохранены в results.txt") diff --git a/TEMA8/main.py b/TEMA8/main.py new file mode 100644 index 0000000..1ffa555 --- /dev/null +++ b/TEMA8/main.py @@ -0,0 +1,22 @@ +import matplotlib.pyplot as plt +from func_calc import calculate_all, save_results + + +a = float(input("Введите число a: ")) + + +values = calculate_all(a) + + +save_results(values) + + +print("\nПервые 5 значений:") +for i in range(5): + x = 0.5 * (i + 1) + print(f"x={x:.1f} → y={values[i]:.6f}") + + +x_points = [0.5 * i for i in range(1, len(values)+1)] +plt.plot(x_points, values) +plt.show() diff --git a/TEMA8/test.md b/TEMA8/test.md new file mode 100644 index 0000000..a48b8af --- /dev/null +++ b/TEMA8/test.md @@ -0,0 +1,79 @@ + # Контрольное задание по теме 8 +Симанков Б., А-02-23 + + # Задание +Разработать функцию, на ее основе создать модуль. Создать второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов. + +Разработайте анонимную функцию, вычисляющую значение a*sin(x)/x, где a,x – аргументы функции. Рассчитайте эту функцию в интервале значений х: 0>> import math + +>>> calc = lambda a, x: a * math.sin(x) / x + +>>> def calculate_all(a): +>>> results = [] +>>> x = 0.5 +>>> while x <= 50: +>>> y = calc(a, x) +>>> results.append(y) +>>> x += 0.5 +>>> return results + + +>>> def save_results(results): +>>> with open("results.txt", "w") as f: +>>> for y in results: +>>> f.write(f"{y}\n") +>>> print("Результаты сохранены в results.txt") +``` + +Содержание main.py: +```py +>>> import matplotlib.pyplot as plt +>>> from func_calc import calculate_all, save_results + +>>> a = float(input("Введите число a: ")) + +>>> values = calculate_all(a) + +>>> save_results(values) + + +>>> print("\nПервые 5 значений:") +>>> for i in range(5): +>>> x = 0.5 * (i + 1) +>>> print(f"x={x:.1f} → y={values[i]:.6f}") + + +>>> x_points = [0.5 * i for i in range(1, len(values)+1)] +>>> plt.plot(x_points, values) +>>> plt.show() +``` + +Тестирование: +```py +>>> import main +Введите число a: 5 +Результаты сохранены в results.txt + +Первые 5 значений: +x=0.5 → y=4.794255 +x=1.0 → y=4.207355 +x=1.5 → y=3.324983 +x=2.0 → y=2.273244 +x=2.5 → y=1.196944 +``` +График сохранён в файле Figure_1.png +![График](Figure_1.png) + + + + + + + +