Вы находитесь на странице: 1из 27

Министерство науки и высшего образования российской федерации

Федеральное государственное бюджетное образовательное учреждение


высшего образования
«Российский экономический университет имени Г.В. Плеханова»
Кемеровский институт (филиал)
Техникум информационных технологий, экономики и права

ОТЧЕТ О ВЫПОЛНЕНИИ
ЛАБОРАТОРНОЙ РАБОТЫ
«Сравнительный анализ методов вычисления числа Пи стандартными
средствами»
Студента 2 курса,191 группы
Лебедев Захар Геннадьевич
Направление 09.02.03 – «Программирование в компьютерных системах»

Руководитель:
Преподаватель информационных дисциплин
М.В Валеев
_____________________

Работа защищена

«_____________»

«___»__________________20_____г.

Кемерово 2021
Содержание
Задача №1.................................................................................................................3
Задача №2.................................................................................................................8
Задача №3...............................................................................................................13
Задача №4...............................................................................................................18
Задача №5...............................................................................................................23

2
Задача №1
1.1 Постановка задачи
Написать программу для вычисления числа Пи методом Грегори-Лебница.
1.2 Структурные требования
n не может быть <=0.
1.3 Описание работы
1.3.1 Используемые переменные
n- число переменных;
s- для расчётов;
i- для цикла;
z-для расчётов.
1.3.2 Псевдокод программы
Начало
Объявление переменных n,s,i,z;
Ввод n;
Если (n<0);{
Вывод Ошибка;
}
Иначе{
Цикл for (i = 1; i <= n; i++) {
s = s + z * 4 / (2 * i + 1);
z = -z;
}
Вывод s с 10 знаками после запятой;
}
Конец

3
1.3.3 Блок-схема алгоритма

Начало

Ввод
s=4,I,z=-
1,n.

n<0

I=1; i<=n;
i=i+1

s=s+z*4/(2*i+1);
z=-z

Вывод
“Ошибка” Ввод s

Конец

4
1.3.4 Листинг программой реализации
using namespace std;
int main() {
setlocale(0, "rus");
float s = 4, i, z = -1, n;
cout << "Алгоритм вычисления числа Пи с помощью метода Грегори–
Лейбница" << endl;
cout << "Введите число точности пи" << endl;
cin >> n;
if (n < 0) {
cout << "Ошибка" << endl;
}
else {
for (i = 1; i <= n; i++) {
s = s + z * 4 / (2 * i + 1);
z = -z;
}
cout << fixed << setprecision(10) << s << endl << endl;
}
}

1.3.5 Листинг программой реализации


Dim z As Integer
z = -1
s=4
n = Selection
For i = 1 To n
s = s + z * 4 / (2 * i + 1)
If z < 0 Then
z=1
Else:
z = -1
5
End If
Next
Cells(2, 2) = s
End Sub
1.3.6 Результаты

Рисунок 1-Ввод слагаемых=5

Рисунок 2-Ввод слагаемых=10

Рисунок 3Ввод слагаемых=100

Рисунок 4-Ввод слагаемых=1000

Рисунок 5- результаты Excel

6
1.3.7 Табличные расчёты программы
Число
слагае
мых Excel C Δ ε,%
2,9760 2,9760 0,1655 5,56
5 46176 46085 465681 26%
3,2323 3,2323 0,0907 2,80
10 15809 15779 231252 68%
3,1514 3,1514 0,0099 0,31
100 93401 93073 004190 42%
3,1425 3,1425 0,0009 0,03
1000 91654 91476 988229 18%

7
Задача №2
2.1 Постановка задачи
Написать программу для вычисления числа Пи методом Мадхавы.
2.2 Структурные требования
n не может быть <=0.
2.3 Описание работы
2.3.1 Используемые переменные
n- число переменных;
s- для расчётов;
i- для цикла;
z-для расчётов.
2.3.2 Псевдокод программы
Начало
Объявление переменных n,s,i,z;
Ввод n;
Если (n<0);{
Вывод Ошибка;
}
Иначе{
Цикл for (i = 1; i <= n; i++) {
s = s - z / ((2 * i + 1) * exp((i)*log(3)));
z = -z;
}
s = s * sqrt(12);
Вывод s с 10 знаками после запятой;
}
Конец

8
2.3.3 Блок-схема алгоритма

Начало

Ввод
s=1,z=1,i
=1,n

n<0

i=1;
i<=n;
i=i+1

s=s-z/
((2*i+1)*exp((i)*log(3)));

z=-z;

Вывод
“Ошибка” s=s*sqrt(12)

Вывод s

Конец

9
2.3.4 Листинг программой реализации
using namespace std;
int main() {
setlocale(0, "rus");
cout << "Алгоритм вычесления числа пи ряд матхавы" << endl;
cout << "введите число точности пи " << endl;
double s = 1, z = 1, i = 1, n;
cin >> n;
if (n < 0) {
cout << "Ошибка" << endl;
}
else{
for (i = 1; i <= n; i++) {
s = s - z / ((2 * i + 1) * exp((i)*log(3)));
z = -z;
}
s = s * sqrt(12);
cout << fixed << setprecision(10) << s << endl << endl;
}
}
2.3.5 Листинг программной реализации в MS Excel
Dim n, k, pi, d As Double

n = Selection
s=1
z=1
k = Sqr(12)

For i = 1 To n
s = s - z / ((2 * i + 1) * Exp((i) * Log(3)))
10
If z < 0 Then
z=1
Else:
z = -1
End If
Next
s=s*k
Cells(2, 3) = s
End Sub 
2.3.6 Результаты

Рисунок 1- Ввод слагаемых=5

Рисунок 2-Ввод слагаемых=10

Рисунок 3-Ввод слагаемых=100

Рисунок 4-Ввод слагаемых=500

Рисунок 5-Таблица результатов Excel

11
2.3.7 Табличные расчёты программы
Число
слагаемых Excel C Δ ε,%
3,14130878 0,000283868
5 3,141308785 6 0 0,0090%
3,14159330 0,000000651
10 3,141593305 5 0 0,0000%
3,14159265 0,000000000
100 3,141592654 4 1 0,0000%
3,14159265 0,000000000
500 3,141592654 4 1 0,0000%

12
Задача №3
3.1 Постановка задачи
Написать программу для вычисления числа Пи методом Нилакаланта
3.2 Структурные требования
n не может быть <=0.
3.3 Описание работы
3.3.1 Используемые переменные
n- число переменных;
s- для расчётов;
i- для цикла;
z-для расчётов.
3.3.2 Псевдокод программы
Начало
Объявление переменных n,s,i,z;
Ввод n;
Если (n<0);{
Вывод Ошибка;
}
Иначе{
Цикл for (i = 2; i <= n; i++) {
s = s + 4 * z / (i * (i + 1) * (i + 2));
i = i + 2;
z = -z;
}
Вывод s с 10 знаками после запятой;
}
Конец

13
3.3.3 Блок-схема алгоритма

Начало

Ввод
s=3,z=1,i=
2,n

n<0

i=2;
i<=n;
i=i+1

s=s+4*z/
(i*(i+1)*(i+2));
i=i=2;

z=-z

Вывод

“Ошибка” Вывод s

14
Конец
3.3.4 Листинг программой реализации
using namespace std;
int main() {
setlocale(0, "rus");
cout << "Алгоритм вычесления числа пи ряд николанта" << endl;
cout << "введите число точности пи " << endl;
float s = 3, z = 1, i = 2, n;
cin >> n;
if (n < 0) {
cout << "Ошибка" << endl;
}
else{
for (i = 2; i <= n; i++) {
s = s + 4 * z / (i * (i + 1) * (i + 2));
i = i + 2;
z = -z;
}
cout << fixed << setprecision(10) << s << endl << endl;
}
}
3.3.5 Листинг программной реализации в MS Excel
Dim n, i, s, z As Double

s=3
z=1
n=5

For i = 2 To n
s = s + 4 * z / (i * (i + 1) * (i + 2))
15
i=i+2
If z > 0 Then
z = -1
Else:
z=1
End If
Next
Cells(2, 2) = s
End Sub 
3.3.6 Результаты

Рисунок 1 –Ввод слагаемых 5

Рисунок 2 –Ввод слагаемых 10

Рисунок 3 –Ввод слагаемых 100

Рисунок 4-Ввод слагаемых 1000

Рисунок 5 – Результаты Excel

16
3.3.7 Табличный расчет программы
Число
слагаемых Excel C Δ ε,%
0,006026355
5 3,147619048 3,147619009 5 0,1915%
0,011581985
10 3,147619048 3,153174639 2 0,3673%
0,010016767
100 3,147619048 3,151609421 3 0,3178%
0,010014621
1 000 3,147619048 3,151607275 5 0,3178%

17
Задача №4
4.1 Постановка задачи
Написать программу для вычисления числа Пи методом Эйлера.
4.2 Структурные требования
n не может быть <=0.
4.3 Описание работы
4.3.1 Используемые переменные
n- число переменных;
s- для расчётов;
i- для цикла;
4.3.2 Псевдокод программы
Начало
Объявление переменных n,s,i,;
Ввод n;
Если (n<0);{
Вывод Ошибка;
}
Иначе{
Цикл for (i = 1; i <= n; ++i)
s = s + 1 / pow(i, 2);
s = sqrt(6 * s); }
Вывод s с 10 знаками после запятой;
}
Конец

18
4.3.3 Блок-схема алгоритма

Начало

Ввод
s=0,i,n

n<0

i=1;
i<=n;
i=i+1

s=s+1/pow(i,2);
s= sqrt(6*s)

Вывод Вывод s
“Ошибка”

19
Конец

4.3.4 Листинг программой реализации


using namespace std;
int main() {
setlocale(0, "rus");
cout << "Алгоритм вычесления числа пи Формула Эйлера " << endl;
cout << "введите число точности пи " << endl;
double s = 0, i, n;
cin >> n;
if (n < 0) {
cout << "Ошибка" << endl;
}
else{
for (i = 1; i <= n; ++i)
s = s + 1 / pow(i, 2);
s = sqrt(6 * s);
}
cout << fixed << setprecision(10) << s << endl << endl;
}
4.3.5 Листинг программной реализации в MS Excel
Dim n, i, s, z As Double

s=3
z=1
n=5
20
For i = 2 To n
s = s + 4 * z / (i * (i + 1) * (i + 2))
i=i+2
If z > 0 Then
z = -1
Else:
z=1
End If
Next
Cells(2, 2) = s
End Sub
4.3.6 Результаты

Рисунок 1- Ввод слагаемых=5

Рисунок 2- Ввод слагаемых=10

Рисунок 3- Ввод слагаемых=100

Рисунок 4- Ввод слагаемых=1000

21
Рисунок 5 – Таблица результатов Excel

4.3.7 Табличный расчёт программы


Число
слагаемых Excel C Δ ε,%
0,178204952
5 3,049361636 2,963387701 5 6,0136%
0,092231017
10 3,049361636 3,049361636 5 3,0246%
0,009516121
100 3,049361636 3,132076532 7 0,3038%
0,000954597
1000 3,049361636 3,140638056 3 0,0304%

22
5 Задача №5
5.1 Постановка задачи
Алгоритм вычисления числа Пи с помощью метода Валлиса.
5.2 Структурные требования
n не может быть <=0.
5.3 Описание работы
5.3.1 Используемые переменные
n- число переменных;
s- для расчётов;
i- для цикла;
5.3.2 Псевдокод программы
Начало
Объявление переменных n,s,i;
Ввод n;
Если (n<0);{
Вывод Ошибка;
}
Иначе{
Цикл for (i = 2; i <= n; i) {
s = s * pow(i, 2) / ((i - 1) * (i + 1));
i = i + 2;
23
}
Вывод s с 10 знаками после запятой;
}
Конец

5.3.3 Блок-схема алгоритма

Начало

Ввод
s=0,i,n

n<0

i=2;
i<=n;
i=i+1

s=s+1/pow(i,2) /((i-
1)*(i+1));
i=i+2;

24
Вывод
Вывод s
“Ошибка”

Конец

5.3.4 Листинг программой реализации


using namespace std;
int main() {
setlocale(0, "rus");
cout << "Алгоритм вычесления числа пи Формула Валлиса " << endl;
cout << "введите число точности пи " << endl;
double s = 2, i = 2, n;
cin >> n;
if (n < 0) {
cout << "Ошибка" << endl;
}
else{
for (i = 2; i <= n; i) {
s = s * pow(i, 2) / ((i - 1) * (i + 1));
i = i + 2;
}
cout << fixed << setprecision(10) << s << endl << endl;
}
}
5.3.5 Листинг программой реализации в MS Excel

25
Dim n, s As Double
Dim i As Double
n = 10
s=0
For i = 1 To n Step 1
s=s+1/i^2
Next
s = Sqr(6 * s)
Cells(2, 2) = s
End Sub

5.3.6 Результаты

Рисунок 1 – Ввод слагаемых 5

Рисунок 2 – Ввод слагаемых 10

Рисунок 3 – Ввод слагаемых 100

Рисунок 4 – Ввод слагаемых 1000

Рисунок 5 - Таблица результатов Excel

26
5.3.7 Табличный расчёт программы
Число
слагаемых Excel C Δ ε,%
2,84444444 0,297148209
5 2,844444444 4 1 10,4466%
3,00217595 0,139416698
10 3,002175955 5 9 4,6439%
0,015513753
100 3,1260789 3,1260789 3 0,4963%
3,14002381 0,001568834
1 000 3,140023819 9 9 0,0500%

27