[C++] Funkcja logiczna

0

Napisz funkcję logiczną która zwraca w wyniku informację czy dla zadanej przez parametr x udało się obliczyć:

f(x)=2x/pierw(x-4)*(x+15.5)
Wartość funkcji f(x) ma być zwrócone jako y drugi parametr funkcji. Następnie napisz program który dla kolejnych liczb od x=3.5,3.75,...,x=6 wyświetli wartość f(x) lub info, że wartość jest nieokreślona.

#include <iostream>
#include <math.h>

using namespace std;


bool logic (float x,float y);

int main()
{
	float y;
	for(float x=3.5;x<=6;x+=0.25)
	{
		cout<<logic(x,y)<<endl;
	}
	
	return 0;
}



bool logic (float x,float y)
{
	y=2*x/sqrt(x-4)*(x+15.5);
	
	if(sqrt(x-4)*(x+15.5)==0)
	cout<<"Wartosc nie dostepna"<<endl;
	else
	return true;
	
}

Na razie mam coś takiego nie dokońca działa poprawnie bo wyświetla chyba dla wartości 4 błąd i jakąś liczbę a dla reszty same 1...

1
bool logic(double x,double &y)
  {
   if(x==4) return false;
   y=2*x/sqrt(x-4)*(x+15.5);
   return true; 
  }

int main()
  {
   for(double x=3.5;x<=6;x+=0.25)
      {
       double y;
       if(logic(x,y)) cout<<y<<endl;
       else cout<<"Wartosc nie dostepna"<<endl;
      }
   return 0;
  }
1
bool fun(float x, float *y){
    if(sqrt(x-4)*(x+15.5)==0){
        return false;
    }
    else{
        *y = 2*x / (sqrt(x-4)*(x+15.5));
    }
    return true;
}



int main(){
    float y;

    for(float x=3.5; x<=6; x+=0.25){
        if(fun(x, &y)){
            cout<<y<<endl;
        }
    }

    return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1