Предмет: Информатика, автор: qwmateo

СРОЧНО ПОМОГИТЕ PYTHON

Даны две дроби a/b и c/d. Проверьте, что они равны.

Для решения этой задачи создайте класс Fraction и реализуйте в нём метод equal(self, other), проверяющий равенство объекта self и объекта other. Этот метод должен возвращать логическое значение (True или False).

Конструктор объекта класса Fraction должен принимать на вход два целых числа (числитель и знаменатель дроби). Значения по умолчанию для этих параметров равны 1.

Числитель должен быть записан в переменную self.numerator.

Знаменатель должен быть записан в переменную self.denominator.

Также в классе должен быть предусмотрен метод read(self), который будет читать строку вида a/b с клавиатуры, и вычленять из неё два числа, записывая их в переменные класса. Метод должен возвратить число 0 в таком случае.

Если в этом методе введена строка, не соответствующая вышеуказанному формату - запись чисел в объект производить не нужно, а метод должен возвратить число 1 в таком случае.

Формат входных данных
В первой строке даются два целых числа a и b, разделенные символом «/» (|a|,|b| ≤ 109; b ≠ 0).
Во второй строке даются два целых числа c и d, разделенные символом «/» (|c|,|d| ≤ 109; d ≠ 0).

Формат выходных данных
Выведите «YES», если a/b = c/d, и «NO» иначе.

входные данные выходные данные
1/2
2/4
YES

24/72
2/6
YES

КЛАСС ДОЛЖЕН БЫТЬ РЕАЛИЗОВАН НАД ЭТИМ КОДОМ (это проверка написания)

import sys
import io
import logging

logging.basicConfig(format='%(message)s')

try:
f = Fraction()
except NameError:
logging.error('В программе не объявлен класс Fraction')
sys.exit(1)
except TypeError:
logging.error('В конструкторе класса Fraction должны быть предусмотрены два значения по умолчанию')
sys.exit(1)

f1 = Fraction(1, 2)
f2 = Fraction(3, 4)

try:
r = f1.equal(other=f2)
if not isinstance(r, bool):
logging.error('Метод "equal" объекта Fraction должен возвращать логическое значение')
sys.exit(1)
except AttributeError:
logging.error('В объекте Fraction отсутствует метод "equal"')
sys.exit(1)
except TypeError:
logging.error('Метод "equal" объекта Fraction должен принимать на вход параметры "self" и "other"')
sys.exit(1)

Ответы

Автор ответа: asilvejstruk
1

Ответ:

class Fraction:

   def __init__(self, numerator=1, denominator=1):

       self.numerator = numerator

       self.denominator = denominator

   

   def read(self):

       try:

           a, b = map(int, input().split('/'))

           self.numerator = a

           self.denominator = b

           return 0

       except ValueError:

           return 1

   

   def equal(self, other):

       return self.numerator * other.denominator == self.denominator * other.numerator


qwmateo: Формат выходных данных
Выведите «YES», если a/b = c/d, и «NO» иначе. Можешь пожаалуйста дописать код
asilvejstruk: fraction1 = Fraction()
fraction1.read()
fraction2 = Fraction()
fraction2.read()

if fraction1.equal(fraction2):
print("YES")
else:
print("NO")
Похожие вопросы
Предмет: Математика, автор: ollapepsicola