avatar
Untitled

Guest 201 13th Mar, 2023

MARKUP 3.21 KB
                                           
                         #include "MatPi.h"
#include <iostream>
#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 <iostream>
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");
}
                      
                                       
To share this paste please copy this url and send to your friends
RAW Paste Data
Recent Pastes
Ta strona używa plików cookie w celu usprawnienia i ułatwienia dostępu do serwisu oraz prowadzenia danych statystycznych. Dalsze korzystanie z tej witryny oznacza akceptację tego stanu rzeczy.
Wykorzystywanie plików Cookie
Jak wyłączyć cookies?
ROZUMIEM