rendered paste bodySkaiciavimai.h :
#include <iostream>
using namespace std;
#include <fstream>
#include <math.h>
static double ln2 = 0.693147180559945;
class Skaic {
public:
int Redukcija();
double Teikrou(double x1, double eps1);
void Pagr_skaic();
double gx();
double geps();
double gx2();
int gind1();
int gind2();
int gind3();
double gtv_red1(int i);
double gtv_red2(int i);
double gtv_te1(int i);
int git();
double gte();
void ix(double xi);
void ix2(double xi2);
void ieps(double epsi);
void iind1(int i );
void iind2(int i);
void iind3(int i);
Skaic();
~Skaic();
private:
int ind1, ind2, ind3;
int it, t;
double x, x2 ;
double eps, te;
double tv_red2[1000];
double tv_red1[1000];
double tv_te1[1000];
};
-----------------------------------
Skaiciavimai.cpp :
#include "Skaiciavimai.h"
#include "DuomRez.h"
using namespace std;
double Skaic::gx() { return x; }
double Skaic::geps() {return eps; }
double Skaic::gx2() { return x2; }
int Skaic::gind1() { return ind1; }
int Skaic::gind2() {return ind2; }
int Skaic::gind3() { return ind3; }
double Skaic::gtv_red1(int i) {return tv_red1[i]; }
double Skaic::gtv_red2(int i) {return tv_red2[i]; }
double Skaic::gtv_te1(int i) {return tv_te1[i]; }
int Skaic::git() { return it; }
double Skaic::gte() {return te; }
void Skaic::ix(double xi) { x = xi; }
void Skaic::ix2(double xi2) { x2 = xi2; }
void Skaic::ieps(double epsi) { eps = epsi; }
void Skaic::iind1(int i ) { ind1 = i; }
void Skaic::iind2(int i) { ind2 = i; }
void Skaic::iind3(int i) { ind3 = i; }
Skaic::Skaic() {}
int Skaic::Redukcija() {
x++;
int t = 0;
while (x>=2) { x=x/2; tv_red2[ind2] = x; ind2 = ind2 +1; t++; }
if (t==0) while (x<1) { x=x*2; tv_red1[ind1] = x; ind1 = ind1+1; t--;}
x--;
cout << "ind2 = " << ind2 << "ind1 = " << ind1;
return t;
}
double Skaic::Teikrou(double x1, double eps1) {
double y,bn1,r,an, bn=1;
y=x1;
double z = y;
double pi=1;
int k=0, n=1;
while (fabs(z) > eps1)
{
bn1=bn;
an=n*x1;
if ( k==1) { k=0; bn=2*n+1; n=n+1;} //k==1
else { k=1; bn=2; } //k==0
r=an/(bn1*bn);
pi=1/(1+pi*r);
z=z*(pi-1);
y=y+z;
tv_te1[ind3] = t*ln2+y;
ind3 = ind3+1;
it++;
}
return t*ln2+y;
}
void Skaic::Pagr_skaic() {
bool taip = false;
t = Redukcija();
te = Teikrou(x, eps);
cout << "[=-{-----------------------------\n";
cout << "[=-{ Skaiciavimai atlikti!\n";
cout << "[=-{-----------------------------\n\n";
}
----------------------------
DuomRez.h
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
class DuomRez {
public:
DuomRez();
~DuomRez();
void IvestiIsF(char file[]);
void IvestiIsK(double k, double l);
void TRezultatai(char TRezFailas[]);
void GRezultatai(char GRezFailas[]);
};
---------------------------------------
DuomRez.cpp
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
class DuomRez {
public:
DuomRez();
~DuomRez();
void IvestiIsF(char file[]);
void IvestiIsK(double k, double l);
void TRezultatai(char TRezFailas[]);
void GRezultatai(char GRezFailas[]);
};
#include "DuomRez.h"
#include "Skaiciavimai.h"
Skaic* s = new Skaic();
DuomRez::DuomRez() {}
void DuomRez::IvestiIsF(char file[]) {
double fx, feps;
s->iind1(0); s->iind2(0); s->iind3(0);
if(file != NULL) {
ifstream f(file);
f >> fx >> feps;
s->ix(fx);
s->ieps(feps);
s->ix2(fx);
f.close();
}
else
cout << "[=-{ Failas tuscias !\n";
if(s->gx2() <= -1) {
cout << "[=-{ Ivesti Duomenys yra blogi !\n";
}
else
cout << "[=-{ Duomenys Ivesti !\n\n";
}
void DuomRez::IvestiIsK(double k, double l) {
s->iind1(0); s->iind2(0); s->iind3(0);
s->ix(k);
s->ieps(l);
s->ix2(k);
cout << s->gx() << " " << s->geps();
if(s->gx2() <= -1)
cout << "[=-{ Ivesti Duomenys yra blogi !\n";
else
cout << "[=-{ Duomenys Ivesti !\n\n";
}
void DuomRez::TRezultatai(char TrezFailas[])
{
if (TrezFailas != NULL)
{ int j = 1; int k = 1;
ofstream f(TrezFailas);
f<<"[==----------------------------+!+-----------------------------\n";
f<<"[=-{ Tarpiniai Rezultatai: \n";
f<<"[=-{\n";
f<<"[=-{ Ivestas x = " << s->gx2() << "\n";
f<<"[=-{\n";
for (int i = 0; i < s->gind2(); i++) {
f<<"[=-{ Redukcijos ciklas " << j << " ; Tarpiniai redukuoti x, kai ivestas x >=2 : " << s->gtv_red2(i) << "\n";
}
f<<"[=-{\n";
for (int i = 0; i < s->gind1(); i++) {
f<<"[=-{ Redukcijos ciklas " << j << " ; Tarpiniai redukuoti x, kai ivestas x < 1 : " << s->gtv_red1(i) << "\n";
}
f<<"[=-{\n";
for (int i = 0; i < s->gind3() ; i++) {
f<<"[=-{ Iteracijos cinklas " << j++ << " ; Teikrou algoritmo reiksmiu seka : " << s->gtv_te1(i) << "\n" ;
}
f<<"[==----------------------------+!+-----------------------------\n";
f.close();
cout << "Failo issaugojimas baigtas\n";
cout << "[==----------------------------+!+-----------------------------\n";
cout <<"[=-{ Tarpiniai Rezultatai: \n";
cout << "[=-{\n";
cout << "[=-{ Ivestas x = " << s->gx2() << "\n";
cout << "[=-{\n";
for (int i = 0; i < s->gind2(); i++) {
cout << "[=-{ Redukcijos ciklas " << k << " ; Tarpiniai redukuoti x, kai ivestas x >=2 : " << s->gtv_red2(i) << "\n";
}
cout << "[=-{\n";
for (int i = 0; i < s->gind1(); i++) {
cout << "[=-{ Redukcijos ciklas " << k << " ; Tarpiniai redukuoti x, kai ivestas x < 1 : " << s->gtv_red1(i) << "\n";
}
cout << "[=-{\n";
for (int i = 0; i < s->gind3(); i++) {
cout << "[=-{ Iteracijos ciklas " << k++ << " ; Teikrou algoritmo reiksmiu seka : " << s->gtv_te1(i) << "\n";
}
cout << "[==----------------------------+!+-----------------------------\n\n";
}
else
cout << "Failas neisrinktas\n";
}
void DuomRez::GRezultatai(char rezFailas[])
{
if (rezFailas != NULL)
{
ofstream f(rezFailas);
f <<"[==----------------------------+!+-----------------------------";
f <<"[=-{ Galutiniai Rezultatai: ";
f <<"[=-{";
f <<"[=-{ Ivestas x = " << s->gx2() << "\n";
f <<"[=-{ Tikroji Ln(1+x) reiksme = " << log(1+s->gx2()) << "\n";
f <<"[=-{ Gauta reiksme naudojant Teikrou algr. = " << s->gte();
f <<"[=-{ Ivykusiu iteraciju skaicius = " << s->git();
f <<"[=-{ Busimo grafiko absiciu reziu intervalas : (-1 ; " << s->gx2() << " ]";
f <<"[==----------------------------+!+-----------------------------\n";
f.close();
cout << "[=-{ Failo issaugojimas baigtas\n";
cout <<"[==----------------------------+!+-----------------------------\n";
cout <<"[=-{ Galutiniai Rezultatai: \n";
cout <<"[=-{\n";
cout <<"[=-{ Ivestas x = " << s->gx2() << "\n";
cout <<"[=-{ Tikroji Ln(1+x) reiksme = " << log(1+s->gx2()) <<"\n";
cout <<"[=-{ Gauta reiksme naudojant Teikrou algr. = " << s->gte() << "\n";
cout <<"[=-{ Ivykusiu iteraciju skaicius = " << s->git() ;
cout <<"[=-{ Busimo grafiko abscisiu reziu intervalas : (-1 ; " << s->gx2() << " ]\n";
cout <<"[==----------------------------+!+-----------------------------\n\n";
}
//[=-{ Failas neisrinktas arba negalima irasyti � nurodyta vieta");
else
cout << "[=-{ Failas neisrinktas\n\n";
}
--------------------------------
main.cpp :
#include "DuomRez.h"
#include "Skaiciavimai.h"
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[]) {
ifstream f;
int sk;
char eil[20]; double xklav; double epsklav;
DuomRez* duom = new DuomRez();
Skaic* skaic = new Skaic();
while (true) {
while (true) {
cout << "[=-{----------------!+!----------------\n";
cout << "[=-{ Galimos Komandos : ";
cout << "[=-{----------------!+!----------------\n";
cout << "[=-{ 1. Nuskaityti faila; \n";
cout << "[=-{ 2. Ivesti duom. klaviatura; \n";
cout << "[=-{ 3. Skaiciuoti; \n";
cout << "[=-{ 4. Isvesti Tarpinius Rezultatus; \n";
cout << "[=-{ 5. Isvesti Galutinius Rezultatus; \n";
cout << "[=-{ 6. Iseiti is programos. \n";
cout << "[=-{----------------!+!----------------\n";
cout << "[=-{ Pasirinkite: \n\n";
cin >> sk;
break;
}
switch (sk) {
case 1: {
char fpav[20];
cout << "[=-{ Prasome ivesti duomenu failo pavadinima: \n";
cin >> fpav;
duom->IvestiIsF(fpav);
break;
}
case 2: {
cout << "[=-{-----------------------------\n";
cout << "[=-{ Iveskite duomenis is klaviaturos: Pirmiausia Argumenta x, tada eps !\n";
cin >> xklav >> epsklav;
duom->IvestiIsK(xklav,epsklav);
cout <<"[=-{-----------------------------\n\n";
break;
}
case 3: {
skaic->Pagr_skaic();
break;
}
case 4: {
cout << "[=-{ Iveskite Tarpiniu Rezultatu failo varda: \n";
cin >> eil;
duom->TRezultatai(eil);
break;
}
case 5: {
cout << "[=-{ Iveskite Galutiniu Rezultatu failo pavadinima: \n";
char grfpav[20];
cin >> grfpav;
duom->GRezultatai(grfpav);
break;
}
case 6: {
exit(0);
}
}
}
}