решить систему

  • Автор темы Katte
  • Дата начала
K

Katte

#1
Задание:
вычислить и вывести на экран в виде таблицы значение функции F на интервале от Xнач до Xконч с шагом Dx
задана система:

a*(x^2)+b при х-1<0 и b-x не равно 0
F: (x-a)/x при x-1>0 и b-x=0
x/c в остальных случаях

где a,b,c -действительные числа.
Фунцкия F должна принимать действительные значения,если выражения
(Ац ИЛИ Вц)МОД2 (Вц И Сц)
не равно нулю,и целое значение в противном случае.Через Ац,Вц и Сц обозначены целые значения a,b,c,операции И,ИЛИ и МОД2(сложение по модулю 2)-поразрядные.Значения a,b,c,Хнач.Хконч.Dx ввести с клаиватуры
В основном программа выполнена с использованием оператора if что огорчает моего преподователя ввиду своей сложности организации , также обнаружены ошибки, а именно в задании (Ац ИЛИ Вц)МОД2 (Вц И Сц) прошу помощи в этом вопросе

#include <cstdlib>
#include <iostream>
#include <stdio.h>
using namespace std;

float F(float a,float b, float c, float x, int *err){
*err=1;
float res;
if (c!=0){res=x/c; *err=0;}

if ((b-x)!=0){
if ((x-1)<0) {
res=a*x*x+b; *err=0;
}
}
else {
if (x-1>0){
if ((b+x)==0){res=((x-a)/x); *err=0;}
}
}
int ac=a;
int bc=b;
int cc=c;

if (((ac^bc)||(bc^cc)==0)){res=(int) res;}


return res;
}

int main(int argc, char *argv[])
{
float x,a,b,c,Xn,Xk,Dx,y;
int err;
printf("Insert a,b,c,Xn,Xk,Dx\n");
scanf("%f %f %f %f %f %f",&a,&b,&c,&Xn,&Xk,&Dx);
printf("-----------------------------\n");
printf("| X | F |\n");
printf("-----------------------------\n");
x=Xn;
while (x<=Xk) {
y=F(a,b,c,x,&err);
printf(" %9.2lf ",x);
if (err==0){printf(" %9.2lf\n ", y);} else {printf("Error!!!\n");}
x+=Dx;
}
printf("--------------------------\n");
system("PAUSE");
return EXIT_SUCCESS;
}