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

Вычислить число "Пи"

06.02.2017, 18:19. Просмотров 802. Ответов 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. В чём ошибка?
0
Миниатюры
Вычислить число "Пи"  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2017, 18:19
Ответы с готовыми решениями:

Методом вычислить тип треугольника: "не существует", "тупоугольный", "прямоугольный", "остроугольный"
Помогите пожалуйста С помощью метода вычислить тип треугольника::cry: 1) если...

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

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

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

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

4
Tyoma
236 / 75 / 24
Регистрация: 12.05.2010
Сообщений: 209
Завершенные тесты: 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
236 / 75 / 24
Регистрация: 12.05.2010
Сообщений: 209
Завершенные тесты: 3
06.02.2017, 18:56 4
Reska, заработался, все было верно, сум не нужно было задавать, у вас в первой итерации считалось 1, а дальше все верно.
1
ata
270 / 242 / 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

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

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

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


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

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

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