// Visual C++ 2010 console application
// pi
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
#define LIM 100000000
void main()
{
double a = 2, b = 1, pi = 1, n = 0;
bool flag = true;
do
{
n++;
pi *= a / b;
if (flag == true)
{
b += 2.;
flag = false;
}
else
{
a += 2.;
flag = true;
}
}
while (n < LIM);
pi *= 2;
cout << endl << setprecision(8)<< " PI = " << pi;
fflush(stdin);
cin.get();
}
Дальнейшая точность вычисления требовательна ко времени, и с каждым порядком в 10 раз!!!
Другие языки программирования и технологии
Каr найти число 'ПИ". Нужна формула! тоесть пример на языке программирования C++ или C# или pascal или php или javascrip
По ряду Шарпа, например (день назад отвечал) :
var p,s:real; k:integer;
begin
write('a: '); p:=1; s:=1; k:=1;
repeat p:=-p/3*k/(k+2); k:=k+2; s:=s+p until abs(p) < 1e-12;
writeln('pi=',2*sqrt(3)*s:0:12); readln
end.
var p,s:real; k:integer;
begin
write('a: '); p:=1; s:=1; k:=1;
repeat p:=-p/3*k/(k+2); k:=k+2; s:=s+p until abs(p) < 1e-12;
writeln('pi=',2*sqrt(3)*s:0:12); readln
end.
На википедии есть формулы для нахождения PI, реализовать их итеративно или рекурсивно не так уж и сложно.
Вычислить значение π можно с использованием бесконечного разложения:
π /4 = 1 - 1/3 + 1/5 - 1/7 - .
Вычисления продолжать до тех пор, пока очередной член ряда не окажется меньше 0.0000001 (или введите свою точность)
program a1;
var x, s,p, sl, zn: real;
begin
s:=0;
x:=1; sl:=1; zn:=-1;
while sl>=0.0000001 do
begin
zn:=(-1)*zn;
sl:=1/x;
s:=s+sl*zn;
x:=x+2
end;
p:=s*4;
writeln(p);
π /4 = 1 - 1/3 + 1/5 - 1/7 - .
Вычисления продолжать до тех пор, пока очередной член ряда не окажется меньше 0.0000001 (или введите свою точность)
program a1;
var x, s,p, sl, zn: real;
begin
s:=0;
x:=1; sl:=1; zn:=-1;
while sl>=0.0000001 do
begin
zn:=(-1)*zn;
sl:=1/x;
s:=s+sl*zn;
x:=x+2
end;
p:=s*4;
writeln(p);
на википедии в статье про пи есть
с помощью рядов разных можно найти
с помощью рядов разных можно найти
Вроде бы ряд какой-то есть.
Выведи отсюда ;)))
S=Pi R^2
http://altera-pars.narod.ru/Qadra/form_pi_1.htm
можна так
===========================
uses Crt;
const
n=10000000;
r=46340;
r2=46340*46340;
var
i,pass : LongInt;
x,y : real;
{$F+}
begin
WriteLn('Поехали! ');
Randomize;
pass:=0;
for i:=1 to n do
begin
x:=Random(r+1);
y:=Random(r+1);
if ( x*x+y*y < r2 ) then INC(pass);
end;
TextColor(GREEN);
WriteLn('Число ПИ получилось равным: ',(pass/i*4):0:5);
ReadLn;
end.
===================
ну а на Си вот тут глянь (формула Гаусса)
http://algolist.manual.ru/maths/count_fast/pi.php
S=Pi R^2
http://altera-pars.narod.ru/Qadra/form_pi_1.htm
можна так
===========================
uses Crt;
const
n=10000000;
r=46340;
r2=46340*46340;
var
i,pass : LongInt;
x,y : real;
{$F+}
begin
WriteLn('Поехали! ');
Randomize;
pass:=0;
for i:=1 to n do
begin
x:=Random(r+1);
y:=Random(r+1);
if ( x*x+y*y < r2 ) then INC(pass);
end;
TextColor(GREEN);
WriteLn('Число ПИ получилось равным: ',(pass/i*4):0:5);
ReadLn;
end.
===================
ну а на Си вот тут глянь (формула Гаусса)
http://algolist.manual.ru/maths/count_fast/pi.php
Олег и Юрий, найти пи через формулу длины окружности не прокатит ибо у нас нет эталонной длины окружности, чтобы ее делить на радиус....
"Пи" есть ничто иное как отношение длины экватора к диаметру Земного шара в плоскости, проходящей через экватор.
#include "stdafx.h"
#include
using namespace std;
int main()
{
int a; //делимое
int b; // делитель
int c; // частное
int d; // остаток
int r;
int e ; // счётчик
int f = 0; // переменная
cin >> a >> b >> e;
c = a / b;
r = a % b ;
cout << c << ".";
do
{
f++;
a = r * 10;
if (a > 9)
{
d = a / b;
}
cout << d;
} while (f < e );
system("pause");
}
#include
using namespace std;
int main()
{
int a; //делимое
int b; // делитель
int c; // частное
int d; // остаток
int r;
int e ; // счётчик
int f = 0; // переменная
cin >> a >> b >> e;
c = a / b;
r = a % b ;
cout << c << ".";
do
{
f++;
a = r * 10;
if (a > 9)
{
d = a / b;
}
cout << d;
} while (f < e );
system("pause");
}
Похожие вопросы
- У вас такие же ощущения от языков программирования ? (C++ vs C#)
- Где используются языки программирования Java, C#, C++, Ruby, PhP, Python и JavaScript?
- Найти число Фибоначчи, ближайшее к заданному натуральному числу N. (программирование в языке Си)
- Стоит ли параллельно школьной программе изучать другой язык программирования? Или углубляться в школьный Pascal?
- Язык программирования c++, в массиве, найти положительные числа
- Стоит ли изучать язык программирования C++ ?И какое преимущество этого языка? Где он мне пригодится ?
- Основные различия языка программирования C# от С++.
- Почему некоторые личности утверждают, что первым языком программирования должен быть basic или pascal?
- Вопрос по языку программирования C# (СиШарп) (очень простой вопрос)
- Я учусь в 5 классе и хочу научится языку программирования C++.