SimankovBV 4 дней назад
Родитель 3f8a47226e
Сommit 3634d98b72

Двоичные данные
TEMA8/Figure_1.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 17 KiB

@ -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")

@ -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()

@ -0,0 +1,79 @@
# Контрольное задание по теме 8
Симанков Б., А-02-23
# Задание
Разработать функцию, на ее основе создать модуль. Создать второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов.
Разработайте анонимную функцию, вычисляющую значение a*sin(x)/x, где a,x – аргументы функции. Рассчитайте эту функцию в интервале значений х: 0<x50 с шагом 0.5 и при некотором значении коэффициента a. Обеспечьте запись рассчитанных значений в текстовый файл по одному значению на строке. Отобразите рассчитанные значения в виде графика.
# Решение
Содержание func_calc.py:
```py
>>> 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)
Загрузка…
Отмена
Сохранить