コード例 #1
0
ファイル: RED_Q_Q.cpp プロジェクト: NeeChoo/colloquium_cpp
void RED_Q_Q(fraction &RED)
{
	integer NOD;
	
	NOD = GCF_NN_N(ABS_Z_N(RED.numenator), RED.denominator); //Ищем НОД числителя и знаменатель
	
	RED.numenator = DIV_ZZ_Z(ABS_Z_N(RED.numenator), NOD); //Делим числитель на НОД
	RED.denominator = DIV_ZZ_Z(RED.denominator, NOD);//Делим знаменатель на НОД
}
コード例 #2
0
ファイル: ADD_ZZ_Z.c プロジェクト: greg-kargin/DM43
struct INTEGER SUB_ZZ_Z(struct INTEGER summand1, struct INTEGER summand2)  // result = summand1 + summand2
  {
  struct INTEGER result;
  /* Проверить числа на равенство */
  if (COM_NN_D(ABS_Z_N(summand1), ABS_Z_N(summand2)) == 0)
    {
    /* Числа равны по модулю */
    if (POZ_Z_D(summand1) == POZ_Z_D(summand2))
      /* знаки одинаковы */
      {
      result.natural_part = ADD_NN_N(ABS_Z_N(summand1), ABS_Z_N(summand2));
      result.sign = summand1.sign;
      }
    else
      {
      /* знаки разные */
      result.natural_part.index = 0;
      result.natural_part.number = (int*)malloc( sizeof(int) );
      result.natural_part.number[0] = 0;
      result.sign = 0;
      
      }
    }
  else
    {
    /* Числа не равны */
    if (POZ_Z_D(summand1) == POZ_Z_D(summand2))
      {
      /* Знаки совпадают */
      result.natural_part = ADD_NN_N(ABS_Z_N(summand1), ABS_Z_N(summand2));
      result.sign = POZ_Z_D(summand1);
      }
    else
      {
      /* Знаки разные */
      result.natural_part = SUB_NN_N(ABS_Z_N(summand1), ABS_Z_N(summand2));
      result.sign = POZ_Z_D(summand1);
      }
    }

  return result;
  }