add negative number support

This commit is contained in:
2026-04-01 06:58:37 +00:00
parent dcf434bd10
commit 9629c2c3cc
+6 -9
View File
@@ -36,9 +36,6 @@ class Fraction:
num = int(num)
if num <= 0:
raise ValueError("Числитель должен быть положительным")
return num
@staticmethod
@@ -53,17 +50,17 @@ class Fraction:
den = int(den)
if den <= 0:
raise ValueError("Знаменатель должен быть положительным")
if den == 0:
raise ValueError("Знаменатель не может быть равен нулю")
return den
# ------------------------
# ПРОВЕРКА ПРАВИЛЬНОЙ ДРОБИ
def validate_proper_fraction(self):
if self._numerator >= self._denominator:
if abs(self._numerator) >= abs(self._denominator):
raise ValueError(
"Это не правильная дробь (числитель должен быть меньше знаменателя)"
"Это не правильная дробь (модуль числителя должен быть меньше модуля знаменателя)"
)
# ------------------------
@@ -75,7 +72,7 @@ class Fraction:
# ------------------------
# МЕТОД №2: СУММА ЦИФР ЗНАМЕНАТЕЛЯ
def sum_digits_denominator(self) -> int:
return sum(int(d) for d in str(self._denominator))
return sum(int(d) for d in str(abs(self._denominator)))
# ------------------------
# СТРОКА ИНФОРМАЦИИ
@@ -115,7 +112,7 @@ def main():
frac_input = input_fraction()
# Константы
frac1 = Fraction(1, 2)
frac1 = Fraction("1", "2")
frac2 = Fraction("32", "540")
fractions = [frac_input, frac1, frac2]