Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Reska
0 / 0 / 2
Регистрация: 13.12.2015
Сообщений: 249
#1

Вычислить число "Пи" - C#

06.02.2017, 18:19. Просмотров 685. Ответов 4
Метки нет (Все метки)

Напишите программу, которая вычисляет число "Пи" с заданной пользователем точностью. Для вычисления значения числа "Пи" воспользуйтесь тем, что значение частичной суммы ряда 1-1/3+1/5-1/7+1/9-... при суммировании достаточно большого количества членов приближается к значению Pi/4.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 static void Main(string[] args)
        {
               
                
 
            double sum;
            SumOfTheSeries( out sum);
            Console.WriteLine("{0:F7}", sum*4);
            
 
            }
 
            static double SumOfTheSeries( out double sum)
            {
            Console.Write("введите точность:");
 
            double eps = Convert.ToDouble(Console.ReadLine());
            sum = 0;
            int i = 0;
            double a = 0;
            do
            {
                
                
                a = Math.Pow(-1.0, i) * (1.0 / (2.0 * i + 1.0));
                sum +=a;
                i++;
   
            }
            while (Math.Abs(a) > eps);
            Console.WriteLine("просуммировано {0}", i);
            return sum;
        }
Просуммировано 501, а должно быть 502. В чём ошибка?
http://www.cyberforum.ru/csharp-beginners/thread1443077.html
0
Миниатюры
Вычислить число "Пи"  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2017, 18:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вычислить число "Пи" (C#):

Описать класс "поезд", содержащий поля "пункт назначения", "номер поезда", "время отправления"
Помогите пожалуйста с классом Описать класс «поезд», содержащий следующие...

Подсчитать общее число вхождений в текст символов "+" и "–"
Пожалуйста помогите решить на C#!Срочно надо!Дан текст. Подсчитать общее число...

Проблема при сравнении: "Оператор ">" не может применяться к операндам типа "Т" и "Т""
Добрый день , пишу сортировку , все делаю на основе Т , но вот в чем проблемма...

Построить иерархию классов "Студент", "преподаватель", "персона", "заведующий кафедрой"
Построить иерархию классов: Студент, преподаватель, персона, заведующий...

Как вычислить значение "y" на интервале "x" по графику функции?
Как вычислить значение "y" на интервале "x" по графику функции.

4
Tyoma
51 / 51 / 15
Регистрация: 12.05.2010
Сообщений: 167
Завершенные тесты: 3
06.02.2017, 18:31 #2
У вас нет первого элемента ряда (1), соответственно в вашем случае изначально переменной sum надо задавать значение 1 и выводить не i, а i + 1.
0
Reska
0 / 0 / 2
Регистрация: 13.12.2015
Сообщений: 249
06.02.2017, 18:49  [ТС] #3
выводит 7,14...

Добавлено через 3 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
            static void Main(string[] args)
        {
               
                
 
            double sum;
            SumOfTheSeries( out sum);
            Console.WriteLine("{0:F6}", sum*4);
            
 
            }
 
            static double SumOfTheSeries( out double sum)
            {
            Console.Write("введите точность:");
 
            double eps = Convert.ToDouble(Console.ReadLine());
            sum = 0;
            int i = 0;
            double a = 0;
            do
            {
                
                
                a =Math.Pow(-1.0, i) * (1.0 / (2.0 * i + 1.0));
                sum +=a;
                i++;
   
            }
            while (Math.Abs(a) > eps);
            Console.WriteLine("просуммировано {0}", i+1);
            return sum;
        }
только если так
0
Tyoma
51 / 51 / 15
Регистрация: 12.05.2010
Сообщений: 167
Завершенные тесты: 3
06.02.2017, 18:56 #4
Reska, заработался, все было верно, сум не нужно было задавать, у вас в первой итерации считалось 1, а дальше все верно.
1
ata
269 / 241 / 186
Регистрация: 28.10.2015
Сообщений: 709
07.02.2017, 03:17 #5
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
 
class Program
{
    public static void Main()
    {
        double x = Double.MaxValue;
        double y = 0.0;
        int i;
        for (i = 1; Math.Abs(x) > 0.001; i++)
        {
            x = (i % 2 == 0 ? -1.0 : 1.0) / (double)(2 * i - 1);
            y += x;
        }
        Console.WriteLine(4.0 * y);
        Console.WriteLine(i);
    }
}
1
07.02.2017, 03:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2017, 03:17
Привет! Вот еще темы с решениями:

Прибавление строк string a="a"+"b" |=какой то число
у меня такая простая ситуация хотел вывести на экран (так для проверки)...

Напишите программу, которая подсчитывает, сколько учащихся получило "2", "3", "4" и "5"
Помогите, пожалуйста, с решением следующей задачи: учащиеся сдают экзамены по...

Составить программу по управлению манипулятором "мышь". Выбор типа курсора организовать по нажатию на клавиши "q","w","r
Составить программу по управлению манипулятором "мышь". Выбор типа курсора...

Дано натуральное число. Верно ли, что цифра "а" встречается реже чем цифра "b"
дано натуральное число верно ли что цифра "а" встречается реже чем цифра "b"


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru