форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
80 строки
2.4 KiB
Markdown
80 строки
2.4 KiB
Markdown
# Контрольное задание по теме 8
|
|
Симанков Б., А-02-23
|
|
|
|
# Задание
|
|
Разработать функцию, на ее основе создать модуль. Создать второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов.
|
|
|
|
Разработайте анонимную функцию, вычисляющую значение a*sin(x)/x, где a,x – аргументы функции. Рассчитайте эту функцию в интервале значений х: 0<x≤50 с шагом 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("x=", x, "→ y=", values[i])
|
|
|
|
|
|
>>> 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
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|