Страница 1 из 1

C - вычислить значения функции

Добавлено: 17 июн 2008, 19:41
koka
Задание

Вычислить и вывести на экран в виде таблицы значения функции F на интервале
от Хнач. до Хкон. с шагом dX.
f = a*x*x + b, если x - 1 < 0 и b - x != 0;
f = x - a/x, если x - 1 > 0 и b + x == 0;
В остальных случаях x/c
где а, Ь, с — действительные числа.
Функция F должна принимать действительное значение, если выражение
(Ац ИЛИ Вц) МОД2 (Вц И Сц)
не равно нулю, и целое значение в противном случае. Через Ац, Вц и Сц обозна*
чены целые части значений а,fc,с, операции И, ИЛИ и МОД2 (сложение по мо*
дулю 2) — поразрядные. Значения а, 6, с, Хнач., Хкон., dX ввести с клавиатуры.

Код: Выделить всё

#include "stdafx.h"
#include <stdio.h>

int main(int argc, char* argv[])
{
  double Xn, Xk, dX, a, b, c, y;
  
  printf("Xn, Xk, dX, a, b, c: ");
  scanf("%lf%lf%lf%lf%lf%lf", &Xn, &Xk, &dX, &a, &b, &c);

  double x = Xn;

  printf("----------------------\n");
  printf("|    X     |   Y     |\n");
  printf("----------------------\n");

  for(;x <= Xk; x += dX)
  {
    if(x - 1 < 0 && b - x != 0)
    {
      y = (a * x * x) + b;
    }
    else
    {
      if(x - 1 > 0 && b + x == 0)
      {
        y = (x - a)/x;
      }
      else
      {
        y = x/c; 
      }
    }
    
    if((int(a) | int(b)) ^ (int(b) & int(c)))
      printf("|%.2f      |%.2f     |\n", x, y);
    else
      printf("|%.2f      |%d       |\n", x, int(y));

  }
  
  printf("----------------------\n");

	return 0;
}
Привет.
Написал код, работает в Visual C++ 6.0. вроде.
Хотелось узнать правильно ли я сделал условие "(Ац ИЛИ Вц) МОД2 (Вц И Сц)"?

Re: C - вычислить значения функции

Добавлено: 18 июн 2008, 12:17
Albor
koka писал(а): Функция F должна принимать действительное значение, если выражение
(Ац ИЛИ Вц) МОД2 (Вц И Сц)
не равно нулю, и целое значение в противном случае.

Как я понял задание, функцию нужно вызывать с аргументами, в зависимости от последнего условия в задании (то ли с целымыи значениями, то ли с действидельными), поэтому нужно перегрузить 2 варианта функции. А приведенный код не решает задачу правильно.