Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Сделайте прогу на пайтоне Калькулятор дробей

Быстрый стояк Ученик (96), на голосовании 1 месяц назад
Мне нужно срочно
Голосование за лучший ответ
Дмитрий Дмитриев Просветленный (40393) 2 месяца назад
Программа: Калькулятор дробей
python
from fractions import Fraction

def print_menu():
print("Калькулятор дробей")
print("1. Сложение")
print("2. Вычитание")
print("3. Умножение")
print("4. Деление")
print("5. Выход")

def get_fraction(prompt):
while True:
try:
user_input = input(prompt)
return Fraction(user_input)
except ValueError:
print("Некорректный ввод. Пожалуйста, введите дробь в формате 'числитель/знаменатель' или целое число.")

def main():
while True:
print_menu()
choice = input("Выберите операцию (1-5): ")

if choice == '5':
print("Выход из программы.")
break

if choice in ['1', '2', '3', '4']:
frac1 = get_fraction("Введите первую дробь (например, 1/2): ")
frac2 = get_fraction("Введите вторую дробь (например, 3/4): ")

if choice == '1':
result = frac1 + frac2
operation = "Сложение"
elif choice == '2':
result = frac1 - frac2
operation = "Вычитание"
elif choice == '3':
result = frac1 * frac2
operation = "Умножение"
elif choice == '4':
result = frac1 / frac2
operation = "Деление"

print(f"{operation}: {frac1} и {frac2} = {result}")
else:
print("Некорректный выбор. Пожалуйста, выберите номер от 1 до 5.")

if __name__ == "__main__":
main()

Объяснение кода:
Импорт библиотеки: Мы используем модуль fractions для работы с дробями. Он автоматически упрощает дроби и обрабатывает арифметические операции.
Функция print_menu: Отображает меню с доступными операциями.
Функция get_fraction: Запрашивает у пользователя ввод дроби и обрабатывает возможные ошибки ввода.
Основная функция main:
Цикл позволяет пользователю выбирать операции до тех пор, пока он не решит выйти.
В зависимости от выбора выполняется соответствующая операция с введенными дробями.
Результат выводится на экран.
Как использовать:
Скопируйте код в файл с расширением .py, например, fraction_calculator.py.
Запустите программу с помощью Python: python fraction_calculator.py.
Следуйте инструкциям на экране для выполнения операций с дробями.
Этот калькулятор является базовым примером, и вы можете расширить его функциональность, добавив больше операций или улучшив интерфейс!
Быстрый стоякУченик (96) 2 месяца назад
ошибка не запускается
Рустам Абдрашитов Мыслитель (9542) 2 месяца назад
 import math 
import cmath

def add(x, y): return x + y
def subtract(x, y): return x - y
def multiply(x, y): return x * y
def divide(x, y):
if y == 0:
return "Ошибка: Деление на ноль!"
return x / y
def power(x, y): return x ** y
def square_root(x):
if x < 0:
return "Ошибка: Негативный корень!"
return math.sqrt(x)

def sin_function(angle):
"""Вычисляет синус угла в градусах."""
radians = math.radians(angle)
return math.sin(radians)

def cos_function(angle):
"""Вычисляет косинус угла в градусах."""
radians = math.radians(angle)
return math.cos(radians)

def complex_operations():
real = float(input("Введите действительную часть комплексного числа: "))
imag = float(input("Введите мнимую часть комплексного числа: "))
z = complex(real, imag)

print(f"Комплексное число: {z}")
print(f"Модуль: {abs(z)}")
print(f"Аргумент: {cmath.phase(z)}")

def trigonometric_functions():
angle = float(input("Введите угол в градусах: "))

print(f"Синус: {sin_function(angle)}")
print(f"Косинус: {cos_function(angle)}")
print(f"Тангенс: {math.tan(math.radians(angle))}")

def get_number(prompt):
while True:
try:
return float(input(prompt))
except ValueError:
print("Ошибка: Пожалуйста, введите корректное число.")

def get_numbers():
num1 = get_number("Введите первое число: ")
num2 = get_number("Введите второе число: ")
return num1, num2

def format_result(result):
"""Форматирует результат для вывода без .0 у целых чисел и с периодической дробью для деления."""
if isinstance(result, str): # Если результат - строка (например, ошибка)
return result
elif result.is_integer(): # Если число целое
return int(result)

# Проверяем на периодическую дробь (например, 0.3333...)
str_result = str(result)

if str_result.startswith('0.') and '3' in str_result[2:]:
count_threes = str_result[2:].count('3')
if count_threes > 5: # Если больше 5 троек подряд
return f"{str_result[0]}.(3)"

return str_result

def main():
operations = {
'1': (add, "+"),
'2': (subtract, "-"),
'3': (multiply, "*"),
'4': (divide, "/"),
'5': (power, "^"),
'6': (square_root, "√"),
'7': (complex_operations, "Комплексные числа"),
'8': (trigonometric_functions, "Тригонометрические функции"),
'9': (sin_function, "Синус"),
'10': (cos_function, "Косинус"),
'11': (None, "Выход")
}

print("Добро пожаловать в калькулятор!")

while True:
print("\nВыберите операцию:")
for key in operations.keys():
operation_symbol = operations[key][1] if operations[key][1] else key
print(f"{key}. {operation_symbol}")

choice = input("Введите номер операции (1-11): ")

if choice in operations:
if choice in ['1', '2', '3', '4', '5', '6']:
num1, num2 = get_numbers()
result = operations[choice][0](num1, num2) if choice != '6' else operations[choice][0](num1)
formatted_result = format_result(result)
print(f"Результат: {formatted_result}")
elif choice in ['9', '10']: # Синус и косинус требуют только один аргумент
angle = get_number("Введите угол в градусах: ")
result = operations[choice][0](angle)
formatted_result = format_result(result)
Рустам АбдрашитовМыслитель (9542) 2 месяца назад
 operation_name = "Синус" if choice == '9' else "Косинус" 
print(f"Результат ({operation_name}): {formatted_result}")
elif choice == '7':
print("\nКомплексные числа:")
complex_operations()
elif choice == '8':
print("\nТригонометрические функции:")
trigonometric_functions()
elif choice == '11':
print("Спасибо за использование калькулятора! До свидания!")
break
else:
print("Неверный ввод! Пожалуйста, выберите номер от 1 до 11.")

if __name__ == "__main__":
main()
Рустам Абдрашитов Мыслитель (9542) Рустам Абдрашитов, это продолжение кода все в 1 не влезло
Рустам АбдрашитовМыслитель (9542) 2 месяца назад
Тут не только дроби это самый топовый калькулятор
Похожие вопросы