#include "MatPi.h" #include #define _USE_MATH_DEFINES using namespace std; #pragma once class MatPi { public: double nLim, kLim, gLim; MatPi(); MatPi(int long long o, int long long j, int long long k); void wprowadz_nLim(); void wprowadz_kLim(); void wprowadz_gLim(); void Pi01(); void Pi02(); void Pi03(); ~MatPi(); }; #include "MatPi.h" #include using namespace std; float nLim, kLim, gLim; MatPi::MatPi() { nLim = 0; kLim = 0; gLim = 0; } MatPi::MatPi(int long long o, int long long j, int long long k) { nLim = o; kLim = j; gLim = k; } MatPi::~MatPi() { //destruktor } void MatPi::wprowadz_nLim() { double o; do { cout << "Wprowadz licze bo obliczenia ze wzoru Wallisa:\n" << endl; cin >> o; } while (o <= 0); nLim = o; } void MatPi::wprowadz_kLim() { double j; do { cout << "Wprowadz liczbe do obliczenia ze wzoru Bariley-Borwein-Plouffe:\n" << endl; cin >> j; } while (j <= 0); kLim = j; } void MatPi::wprowadz_gLim() { double k; do { cout << "Wprowadz liczbe do obliczenia ze wzoru Lebinza:\n" << endl; cin >> k; } while (k <= 0); gLim = k; } void MatPi::Pi01() { double w = 1, l, m, i = 1; for (i; i <= nLim; i++) { l = (4 * (i * i)); m = (l - 1); w *= (l / m); } cout << "Przyblizona wartosc liczby Pi wedlug wzoru Wallisa:\n" << w * 2 << endl; } void MatPi::Pi02() { double s = 0, x, y, i = 1; do { x = (1 / (pow(16, i))); y = ((4 / (8 * i + 1)) - (2 / (8 * i + 4)) - (1 / (8 * i + 5)) - (1 / (8 * i + 6))); s += (x * y); i++; } while (i <= kLim); cout << "Przyblizona wartosc liczby Pi wedlug wzoru Wallisa:\n" << s << endl; } void MatPi::Pi03() { int i = 0; double s = 0; //s = suma while (i <= gLim) { s += ((pow((-1), i)) / ((2 * i) + 1)); i++; } cout << "Przyblizona wartosc Pi wedlug wzoru Lebinza:" << "\n" << s * 4 << endl; } int main() { int d; MatPi* obj1; obj1 = new MatPi(); MatPi * obj2; obj2 = new MatPi(); MatPi * obj3; obj3 = new MatPi(); (*obj1).wprowadz_nLim(); (*obj2).wprowadz_kLim(); (*obj3).wprowadz_gLim(); blablabla: cout << "Ktory wynik chcesz wywolac?" << "\n" << "1 - Wallisa" << "\n" << "2 - Bailey-Borwein-Plouffe " << "\n" << "3 - Lebinza" << "\n" << "4 - Wszystkie" << "\n" << endl; cin >> d; switch (d) { case 1: (*obj1).Pi01(); break; case 2: (*obj2).Pi02(); break; case 3: (*obj3).Pi03(); break; case 4: (*obj1).Pi01(); (*obj2).Pi02(); (*obj3).Pi03(); break; default: cout << "Nie dokonales wyboru!" << endl; goto blablabla; } (*obj1).~MatPi(); (*obj2).~MatPi(); (*obj3).~MatPi(); system("PAUSE"); }