#include <iostream> // konsolinio darbo režimo priemonės cin ir cout
#include <iomanip> // manipuliatorių biblioteka
#include <cmath>
using namespace std; // naudojama std vardų erdvė
const double eps = 0.001;// tikslumo konstanta skaičiavimams
// su slankaus kablelio skaičiais
// Funkcijų prototipai
void ReiksmiuLentele (double a, double b, double cp, double cg, double ch, double iq, double iw);
double ReiksmeY (double a, double b, double c, double x);
double ReiksmeX (double a, double b, double c);
int main()
{
double cp, // pradinė funkcijos argumento reikšmė
cg, // galutinė funkcijos argumento reikšmė
ch, // funkcijos argumento žingsnis
a,
b,
iq,
iw;
// Dialogas duomenų xpr, xgal ir hx įvedimui
cout << "Programa darba pradejo" << endl;
cout << "Iveskite a reiksme." << endl;
cin >> a;
cout << "Iveskite b reiksme." << endl;
cin >> b;
cout << "Iveskite pradine argumento reiksme." << endl;
cin >> cp;
cout << "Iveskite galutine argumento reiksme." << endl;
cin >> cg;
cout << "Iveskite zingsnio reiksme." << endl;
cin >> ch;
cout << "Iveskite intervalo q reiksme" << endl;
cin >> iq;
cout << "Iveskite intervalo w reiksme" << endl;
cin >> iw;
ReiksmiuLentele(a, b, cp, cg, ch, iq, iw);
cout << "Programa darba baige." << endl;
return 0;
}
// Funkcijos reikšmių spausdinimas lentele:
// xp - pradinė reikšmė;
// xg - galutinė reikšmė;
// hx - žingsnis
void ReiksmiuLentele (double a, double b, double cp, double cg, double ch, double iq, double iw)
{
double c;
cout << "----------------------------------" << endl;
cout << "| Argumentas | Funkcijos reiksme |" << endl;
cout << "----------------------------------" << endl;
cout << right; // lygiuoti pagal dešinę pusę
cout << fixed; // spausdinti fiksuotu formatu
cout.precision(5); // spausdinti 5 skaičius po kablelio
c = cp;
while (c <= cg)
{
// Tikrinami funkcijos rėžiai ir trūkiai
if (a * b - c != 0)
{
if (ReismeY(a, b, c, ReiksmeX(a, b, c)) < iq && ReismeY(a, b, c, ReiksmeX(a, b, c)) > iw)
// Funkcijos reikšmė egzistuoja
cout << "| " << c << setw(7);
cout << "|" << setw(6) << ReiksmeY(a, b, c, ReiksmeX(a, b, c));
cout << setw(10) << "|" << endl;
c = c + ch;
}
else
{
// Funkcijos reikšmė neegzistuoja
cout << "| " << setw(5) << c;
cout << " | NE |" << endl;
}
}
cout << "----------------------------------" << endl;
}
}
// Vienos funkcijos reikšmės skaičiavimas:
// x - argumento reikšmė;
double ReiksmeY (double a, double b, double c, double x)
{
return 2 * (b + a) + pow(x, 2) / sqrt(c);
}
double ReiksmeX (double a, double b, double c)
{
return 1 / (a - c * b);
}