Witam!
Napisałem krótki program który liczy i wypisuje kolejno: f(x), |f(x)| i (f(x) + |f(x)|)/2. (f(x) = x*x - 36)
Mój problem polega na tym iż nie wiem dlaczego ale gdy wywołuje program przy wartości zmiennej:
- krok = 0.5 to: https://imagizer.imageshack.us/v2/597x283q90/706/8fn6.jpg <-- Tu jest problem.
- krok = 1 to: https://imagizer.imageshack.us/v2/597x283q90/842/94z1.jpg <-- Tu jest OK.
Przy 0.5 są tam niespodziewane wartości i nawet nie wiem jak policzone.
Np dla 0 powinno być: -36 | 36 | 35,875
Kod Programu:
#include <iostream>
#include <cmath>
using namespace std;
int x;
double krok = 0.5; //<-- lub double krok = 1;
int funkcja(int x)
{
return x*x - 36;
}
int main()
{
cout << "Podaj x: ";
cin >> x;
for(x; x <= 10; x++)
{
cout
<< funkcja(x) << " | "
<< abs(funkcja(x)) << " | "
<< (funkcja(x) + abs(funkcja(x+krok)))/2 << endl;
}
return 0;
}
Dopiero zaczynam zabawę z C++ więc proszę o wyrozumiałość :)