|
|
|
| только начал изучать С++
программа выдает неправильное решение
y=x*x+x-1
f(x,y)=
y*y*y-1, при abs(y)<=1
при 1<=abs(y)<=2
5/8*y-1, при abs(y)>2
код программы
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include<iostream>
#include<math.h>
using namespace std;
int _tmain()
{
double f, x, y;
cout << " Vvedite x = ";
cin >> x;
y = x*x+x-1;
if (abs(y)<=1)
{
f=pow(y,3)-1;
cout<< "\n f="<<f;
}
if (abs(y)>=1 && abs(y)<=2)
{
f=2*y-1;
cout<< "\n f="<<f;
}
else
f=(5/8)*y-1;
cout << "\n f= "<< f;
getch ();
return 0;
} | |
|
|
|
|
|
|
|
для: артем111
(06.11.2010 в 15:36)
| | Во первых у тебя в задании есть неточность, а именно:
f(x,y)=y*y*y-1, при abs(y)<=1
f(x,y)=2*y-1, при 1<=abs(y)<=2, т.е. если у тебя y=1 то сначала выполнится 1ый if(), а затем 2-ой.
#include <iostream>
using namespace std;
int main()
{
double x, y, f;
cin>>x;
y=x*x+x-1;
if(y<=1 && y>=-1)
{
f=y*y*y-1;
}
if((y>=-2 && y<-1) && (y>1 && y<=2))
{
f=2*y-1;
}
if(y<-2 && y>2)
{
f=5*y/8-1;
}
cout<<f;
cin>>x;
return 1;
} |
| |
|
|
|