def SUB_PP_P(list1, stepen1, list2, stepen2): # Вычитание многочленов # Семёнов Михаил for i in range(len(stepen2)): list2[i][0] = integer.MUL_ZM_Z( list2[i][0]) # Все коэффициенты домножаем на -1 и складываем return ADD_PP_P(list1, stepen1, list2, stepen2)
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 on_btn_z_mulm_released(self): try: z1 = self.get_z_z(1) result = integer.MUL_ZM_Z(z1) self.add_history_record('%d * (-1) = %d' % ( common.Z_to_num(z1), common.Z_to_num(result), )) except Exception as e: self.on_exception(e)
def SUB_QQ_Q(list1, list2): # Дашкин Дамир # Вычитание дробей list2[0] = integer.MUL_ZM_Z( list2[0]) # Умножаем числитель второй дроби на -1 и складываем return ADD_QQ_Q(list1, list2)
def test_negative(self): number = [1, 3, [3, 4, 2]] expect = [0, 3, [3, 4, 2]] result = integer.MUL_ZM_Z(number) self.assertEqual(result, expect)
def test_zero(self): zero = [0, 1, [0]] expect = [1, 1, [0]] result = integer.MUL_ZM_Z(zero) self.assertEqual(result, expect)