Вот такая задача:
Вычислить и вывести на экран в виде таблицы значения ф-ии F на интервале от X До Хк с шагом dx.
f=a(x+7)^2-b,при x<5,b<>0;
(x-cd)/dx,при x>5,b=0;
x/c,в остальных случаях.
где a,b,c,d-действительные числа.
Ф-ия F должна принимать действит.значения,ели выражение
(Aц ИЛИ Вц) ИЛИ (Aц ИЛИ Сц) не равно нулю ,и целое в противном случае.
Через Aц,Вц,Сц обозначены целые чсти значений a,b,c,
операция ИЛИ-поразрядная.
...
программу на С пишу в первый раз.
помогите ,пожалуйста, разобраться.
почему-то результат всегда считается по последнему условию...
а условие,которое обозначено ** вообще не принимается компилятором...
ошибки наверняка синтаксические...и глупые...(
#include <iostream.h>
int main()
{
int x,xk,dx;
float a,b,c,d,f;
x= 1;
xk= 10;
dx= 2;
cout << "What is..a=";
cin >> a;
cout << "b=";
cin >> b;
cout << "c=";
cin >> c;
cout << "d=";
cin >> d;
while (x<xk)
{
if (x<5 && b!=0)
{
f=a*(x+7)*(x+7)-b;
}
if (x>5 && b==0)
{
f=(x-c*d)/dx;
}
else f=x/c;
if (int(a) | int(b))|(int(a) | int©) f=int(f); **
cout << f;
cout << " \n";
x=x+dx;
};
}
#include <iostream.h>Ну, а с If-ом у тебя во-первых не было скобок, охватывающих все выражение (в С/С++ это обязательно), а во-вторых - условие должно быть обратным... У тебя получалось, что функция принимает ЦЕЛЫЕ значения, когда выражение НЕ равно нулю.
int main()
{
int x,xk,dx;
float a,b,c,d,f;
x= 1;
xk= 10;
dx= 2;
cout << "What is..a=";
cin >> a;
cout << "b=";
cin >> b;
cout << "c=";
cin >> c;
cout << "d=";
cin >> d;
while (x<xk) {
if (x<5 && b!=0) {
f=a*(x+7)*(x+7)-b;
}
else // <--- Ты забыла ELSE
if (x>5 && b==0) {
f=(x-c*d)/dx;
}
else f=x/c;
if(! ((int(a) | int(b)) | (int(a) | int©)) ) f = int(f);
cout << f << " \n";
x=x+dx;
};
return 0;
}
про For не знала ....спасибо)
вот еще...проблемка возникла со структурированием...
это та же задача,только с функциями...
программа постоянно выдает результат 0.
что не так?помогите разобраться
#include <iostream.h>
float a,b,c,d,f,x,xk,dx;
//------------------------------------------------------------------------------
void result_1(float res)
{
res=a*(x+7)*(x+7)-b;
}
//------------------------------------------------------------------------------
void result_2(float res)
{
res=(x-c*d)/(a*x);
}
//------------------------------------------------------------------------------
void result_3(float res)
{
res=x/c;
}
//------------------------------------------------------------------------------
void check_1()
{
if (x<5 && b!=0) result_1(f);
else
if (x>5 && b==0) result_2(f);
else result_3(f);
}
//------------------------------------------------------------------------------
void check_2()
{
if (! ((int(a) | int(b)) | (int(a) | int©)) ) f=int(f);
}
//------------------------------------------------------------------------------
int main()
{
x= 1;
xk= 10;
dx= 2;
cout << "What is..a=";
cin >> a;
cout << "b=";
cin >> b;
cout << "c=";
cin >> c;
cout << "d=";
cin >> d;
while (x<xk)
{
check_1;
check_2;
cout << f << "\n";
x=x+dx;
}
}
void result_1(float res)
{
res=a*(x+7)*(x+7)-b;
}
void result_1(float &res)В остальных функциях, принимающих значение, и меняющих ИХ же - точно так же, передавай ссылки...
{
res=a*(x+7)*(x+7)-b;
}