def DIV_QQ_Q(rational1, rational2): # Деление дробей # Кривоконь Максим result = [[0], [0]] result[0] = integer.MUL_ZZ_Z( rational1[0], rational2[1]) # умножение числителя на знаменатель result[1] = integer.MUL_ZZ_Z( rational1[1], rational2[0]) # умножение знаменателя на числитель if integer.POZ_Z_D(result[0]) == '-' and integer.POZ_Z_D( result[1]) == '-': # Если и числитель и знаменатель result[0] = integer.MUL_ZM_Z(result[0]) # с минусами, то сокращаем их result[1] = integer.MUL_ZM_Z(result[1]) elif integer.POZ_Z_D(result[1]) == '-': result[1] = integer.ABS_Z_N(result[1]) result[0] = integer.MUL_ZM_Z(result[0]) return RED_Q_Q(result) # сокращение дроби
def RED_Q_Q(Q): # Гурьянов Савелий # Сокращение дроби if integer.POZ_Z_D(Q[0]): nod = nat.GCF_NN_N(integer.ABS_Z_N(Q[0]), integer.ABS_Z_N( Q[1])) # Делим числитель и знаменатель на их НОД Q[0] = integer.DIV_ZZ_Z(Q[0], nod) Q[1] = integer.DIV_ZZ_Z(Q[1], nod) return Q else: return Q
def on_btn_z_poz_released(self): try: z1 = self.get_z_z(1) result = integer.POZ_Z_D(z1) if result == 2: sign = '>' elif result == 0: sign = '=' else: sign = '<' self.add_history_record('%d %s 0' % ( common.Z_to_num(z1), sign, )) except Exception as e: self.on_exception(e)
def test_negative(self): number = [1, 3, [3, 4, 2]] expect = 1 result = integer.POZ_Z_D(number) self.assertEqual(result, expect)
def test_positive(self): number = [0, 3, [3, 4, 2]] expect = 2 result = integer.POZ_Z_D(number) self.assertEqual(result, expect)
def test_zero(self): zero = [0, 1, [0]] expect = 0 result = integer.POZ_Z_D(zero) self.assertEqual(result, expect)