Kłopot z ( f(x) + | f(x) | ) / 2

0

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:

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ść :)

2

Niech funkcja nie zwraca inta tylko floata jak chcesz mieć liczby z przecinkami ;] Tak samo argument tej funkcji. Skoro chcesz tam pchać liczbę zmiennoprzecinkową to taką przyjmuj za argument a nie inta.

0

Dziękuje :))

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