math для выполнения большинства вычислений.
1. Создание класса Trigonometry
Начнем с определения класса Trigonometry. В этом классе не будет необходимости в конструкторе __init__, так как все методы будут принимать аргументы напрямую.
class Trigonometry:
# Методы класса будут здесь
2. Реализация функций вычисления
Теперь добавим методы для каждой тригонометрической функции. Для этого нам понадобится импортировать модуль math.
import math
class Trigonometry:
def calculate_cosine(self, angle_radians):
"""
Вычисляет косинус угла.
Аргумент angle_radians должен быть в радианах.
"""
return math.cos(angle_radians)
def calculate_sine(self, angle_radians):
"""
Вычисляет синус угла.
Аргумент angle_radians должен быть в радианах.
"""
return math.sin(angle_radians)
def calculate_tangent(self, angle_radians):
"""
Вычисляет тангенс угла.
Аргумент angle_radians должен быть в радианах.
"""
return math.tan(angle_radians)
def calculate_arcsine(self, value):
"""
Вычисляет арксинус значения.
Значение value должно быть в диапазоне [-1, 1].
Возвращает угол в радианах.
"""
if not (-1 <= value <= 1):
raise ValueError("Значение для арксинуса должно быть в диапазоне [-1, 1]")
return math.asin(value)
def calculate_arccosine(self, value):
"""
Вычисляет арккосинус значения.
Значение value должно быть в диапазоне [-1, 1].
Возвращает угол в радианах.
"""
if not (-1 <= value <= 1):
raise ValueError("Значение для арккосинуса должно быть в диапазоне [-1, 1]")
return math.acos(value)
def calculate_arctangent(self, value):
"""
Вычисляет арктангенс значения.
Возвращает угол в радианах.
"""
return math.atan(value)
def degrees_to_radians(self, angle_degrees):
"""
Переводит угол из градусов в радианы.
"""
return math.radians(angle_degrees)
3. Примеры использования класса
Теперь покажем, как можно использовать созданный класс и его методы.
# Создаем экземпляр класса
trig_calculator = Trigonometry()
# Пример 1: Перевод градусов в радианы
angle_degrees = 90
angle_radians = trig_calculator.degrees_to_radians(angle_degrees)
print(f"Угол {angle_degrees} градусов в радианах: {angle_radians}")
# Пример 2: Вычисление синуса, косинуса и тангенса
# Для 90 градусов (pi/2 радиан)
print(f"Синус {angle_degrees} градусов: {trig_calculator.calculate_sine(angle_radians)}")
print(f"Косинус {angle_degrees} градусов: {trig_calculator.calculate_cosine(angle_radians)}")
# Тангенс 90 градусов не определен, но для угла, близкого к 90, можно показать
# Возьмем 45 градусов (pi/4 радиан)
angle_degrees_45 = 45
angle_radians_45 = trig_calculator.degrees_to_radians(angle_degrees_45)
print(f"Тангенс {angle_degrees_45} градусов: {trig_calculator.calculate_tangent(angle_radians_45)}")
# Пример 3: Вычисление арксинуса, арккосинуса и арктангенса
value_sin = 0.5
arcsin_result = trig_calculator.calculate_arcsine(value_sin)
print(f"Арксинус {value_sin} (в радианах): {arcsin_result}")
print(f"Арксинус {value_sin} (в градусах): {math.degrees(arcsin_result)}")
value_cos = 0.5
arccos_result = trig_calculator.calculate_arccosine(value_cos)
print(f"Арккосинус {value_cos} (в радианах): {arccos_result}")
print(f"Арккосинус {value_cos} (в градусах): {math.degrees(arccos_result)}")
value_tan = 1
arctan_result = trig_calculator.calculate_arctangent(value_tan)
print(f"Арктангенс {value_tan} (в радианах): {arctan_result}")
print(f"Арктангенс {value_tan} (в градусах): {math.degrees(arctan_result)}")
Полный код:
import math
class Trigonometry:
def calculate_cosine(self, angle_radians):
"""
Вычисляет косинус угла.
Аргумент angle_radians должен быть в радианах.
"""
return math.cos(angle_radians)
def calculate_sine(self, angle_radians):
"""
Вычисляет синус угла.
Аргумент angle_radians должен быть в радианах.
"""
return math.sin(angle_radians)
def calculate_tangent(self, angle_radians):
"""
Вычисляет тангенс угла.
Аргумент angle_radians должен быть в радианах.
"""
return math.tan(angle_radians)
def calculate_arcsine(self, value):
"""
Вычисляет арксинус значения.
Значение value должно быть в диапазоне [-1, 1].
Возвращает угол в радианах.
"""
if not (-1 <= value <= 1):
raise ValueError("Значение для арксинуса должно быть в диапазоне [-1, 1]")
return math.asin(value)
def calculate_arccosine(self, value):
"""
Вычисляет арккосинус значения.
Значение value должно быть в диапазоне [-1, 1].
Возвращает угол в радианах.
"""
if not (-1 <= value <= 1):
raise ValueError("Значение для арккосинуса должно быть в диапазоне [-1, 1]")
return math.acos(value)
def calculate_arctangent(self, value):
"""
Вычисляет арктангенс значения.
Возвращает угол в радианах.
"""
return math.atan(value)
def degrees_to_radians(self, angle_degrees):
"""
Переводит угол из градусов в радианы.
"""
return math.radians(angle_degrees)
# --- Примеры использования ---
if __name__ == "__main__":
trig_calculator = Trigonometry()
print("--- Перевод градусов в радианы ---")
angle_degrees_example = 180
angle_radians_example = trig_calculator.degrees_to_radians(angle_degrees_example)
print(f"Угол {angle_degrees_example}° в радианах: {angle_radians_example} радиан")
print(f"Проверка: {angle_radians_example} ≈ {math.pi} (pi)")
print("\n--- Вычисление синуса, косинуса, тангенса ---")
# Угол 30 градусов
angle_30_degrees = 30
angle_30_radians = trig_calculator.degrees_to_radians(angle_30_degrees)
print(f"Угол: {angle_30_degrees}° ({angle_30_radians} радиан)")
print(f"Синус({angle_30_degrees}°): {trig_calculator.calculate_sine(angle_30_radians)}")
print(f"Косинус({angle_30_degrees}°): {trig_calculator.calculate_cosine(angle_30_radians)}")
print(f"Тангенс({angle_30_degrees}°): {trig_calculator.calculate_tangent(angle_30_radians)}")
# Угол 45 градусов
angle_45_degrees = 45
angle_45_radians = trig_calculator.degrees_to_radians(angle_45_degrees)
print(f"\nУгол: {angle_45_degrees}° ({angle_45_radians} радиан)")
print(f"Синус({angle_45_degrees}°): {trig_calculator.calculate_sine(angle_45_radians)}")
print(f"Косинус({angle_45_degrees}°): {trig_calculator.calculate_cosine(angle_45_radians)}")
print(f"Тангенс({angle_45_degrees}°): {trig_calculator.calculate_tangent(angle_45_radians)}")
print("\n--- Вычисление арксинуса, арккосинуса, арктангенса ---")
# Значение для арксинуса
value_for_arcsin = 0.5
arcsin_result_rad = trig_calculator.calculate_arcsine(value_for_arcsin)
print(f"Арксинус({value_for_arcsin}): {arcsin_result_rad} радиан")
print(f"Арксинус({value_for_arcsin}): {math.degrees(arcsin_result_rad)}°")
# Значение для арккосинуса
value_for_arccos = 0.5
arccos_result_rad = trig_calculator.calculate_arccosine(value_for_arccos)
print(f"Арккосинус({value_for_arccos}): {arccos_result_rad} радиан")
print(f"Арккосинус({value_for_arccos}): {math.degrees(arccos_result_rad)}°")
# Значение для арктангенса
value_for_arctan = 1.0
arctan_result_rad = trig_calculator.calculate_arctangent(value_for_arctan)
print(f"Арктангенс({value_for_arctan}): {arctan_result_rad} радиан")
print(f"Арктангенс({value_for_arctan}): {math.degrees(arctan_result_rad)}°")
print("\n--- Обработка ошибок ---")
try:
trig_calculator.calculate_arcsine(2.0)
except ValueError as e:
print(f"Ошибка при вычислении арксинуса: {e}")
Пояснения для школьника:
- Мы создали "коробку" (класс) под названием
Trigonometry. В этой коробке будут храниться все наши инструменты (функции) для работы с углами. - Каждый "инструмент" (метод) в этой коробке умеет делать что-то одно:
calculate_cosine: считает косинус угла.calculate_sine: считает синус угла.calculate_tangent: считает тангенс угла.calculate_arcsine: находит угол по его синусу.calculate_arccosine: находит угол по его косинусу.calculate_arctangent: находит угол по его тангенсу.degrees_to_radians: переводит градусы в радианы. Это важно, потому что большинство компьютерных функций работают с радианами.
- Когда мы хотим что-то посчитать, мы сначала "достаем" нашу коробку (создаем объект
trig_calculator = Trigonometry()), а потом используем нужный инструмент, например,trig_calculator.calculate_sine(...). - Внутри функций мы используем готовые математические функции из модуля
math, чтобы не изобретать велосипед. Например,math.cos()для косинуса. - Для арксинуса и арккосинуса есть важное правило: значение, которое мы им даем, должно быть от -1 до 1. Если дать другое, программа сообщит об ошибке.
Математические формулы (для справки):
Перевод градусов в радианы:
\[ \text{радианы} = \text{градусы} \times \frac{\pi}{180} \]Например, для 90 градусов:
\[ 90 \times \frac{\pi}{180} = \frac{\pi}{2} \]Основные тригонометрические тождества:
\[ \sin^2(\alpha) + \cos^2(\alpha) = 1 \] \[ \tan(\alpha) = \frac{\sin(\alpha)}{\cos(\alpha)} \]Обратные тригонометрические функции:
Если \( \sin(\alpha) = x \), то \( \alpha = \arcsin(x) \)
Если \( \cos(\alpha) = x \), то \( \alpha = \arccos(x) \)
Если \( \tan(\alpha) = x \), то \( \alpha = \arctan(x) \)
