Форум программистов, компьютерный форум CyberForum.ru

Написать программу которая вычисляет число пи с заданной точностью - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.76
venox
1 / 1 / 0
Регистрация: 08.01.2013
Сообщений: 24
16.09.2013, 11:46     Написать программу которая вычисляет число пи с заданной точностью #1
написать программу которая вычисляет число пи с заданной точностью, если известно 1-1/3+1/5-1/7+... при суммировании большого количества членов приближается к ПИ/4.Вывести сумму и количество членов ряда.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2013, 11:46     Написать программу которая вычисляет число пи с заданной точностью
Посмотрите здесь:

C++ Написать программу, которая по введенному значению аргумента вычисляет значение функции, заданной в виде графика
C++ Написать программу, которая вычисляет выражение
Написать программу, которая вычисляет целую степень, в которую необходимо возвести число 2, чтобы получить число, ближайшее меньшее либо равное числу, C++
Напишите программу, которая по заданной входной последовательности вычисляет ее медиану C++
C++ Написать программу, которая предлагает пользователю ввести число, вычисляет его разрядность и сумму всех цифр и выводить результаты в консоль
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,308
16.09.2013, 12:00     Написать программу которая вычисляет число пи с заданной точностью #2
Что конкретно у тебя не получается? Где код?
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
16.09.2013, 12:21     Написать программу которая вычисляет число пи с заданной точностью #3
Примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
 
int main()
{
    float presition;
    float sum = 1;
    int k = 1;
    system ("chcp 1251>0");
    std::cout << "Введите требуемую точность: " ; std::cin >> presition;
 
    do
                sum += (1.0 - 2.0 * (k%2)) / (2 * k + 1);
    while (1.0 / (2 * ++k + 1) > presition / 4);
 
    std::cout << 4 * sum << std::endl;
    system("pause");
    return 0;
}
Catstail
Модератор
 Аватар для Catstail
21493 / 10246 / 1669
Регистрация: 12.02.2012
Сообщений: 17,131
16.09.2013, 13:20     Написать программу которая вычисляет число пи с заданной точностью #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream.h>
 
double Piq(double eps, double s=0, int k=0,int g=1)
{
    double p;
    p=1.0/(2*k+1);
    s+=p*g;
    if (p < eps) 
    {
        cout <<  "Number of elemets = " << k << endl;
        return s;
    }
    return Piq(eps,s,k+1,-g); 
}
 
int main(int argc, char* argv[])
{
    double Pi=4*Piq(0.0001);
    cout << Pi << endl;
    return 0;
}
Добавлено через 58 минут
Цитата Сообщение от Ilot Посмотреть сообщение
presition
- не "presition", а precision
Raali
16.09.2013, 13:39
  #5

Не по теме:

Цитата Сообщение от Catstail Посмотреть сообщение
- не "presition", а precision
неточность в слове "точность"

Ilot
16.09.2013, 14:12
  #6

Не по теме:

поФиг. Главное мой алгоритм проще и наглляднее.

Catstail
Модератор
 Аватар для Catstail
21493 / 10246 / 1669
Регистрация: 12.02.2012
Сообщений: 17,131
16.09.2013, 14:21     Написать программу которая вычисляет число пи с заданной точностью #7
Цитата Сообщение от Ilot Посмотреть сообщение
Главное мой алгоритм проще и наглляднее.
- (без обид) - не сказал бы...

У тебя каждый виток цикла выполняет (по сравнению с моим) лишнее умножение с плавающей точкой, лишнее вычитание и лишнее вычисление остатка. Правда, оперативной памяти твой код требует меньше.

Кстати, ТС просил еще напечатать к-во членов ряда.
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
16.09.2013, 14:37     Написать программу которая вычисляет число пи с заданной точностью #8
Catstail, никто не мешает ввести новую переменную, но замечание верное сам обратил внимание но из-за особенностей данного форума отредактировать пост не мог:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
 
int main()
{
    float presition;
    float sum = 0.0, pred = 1.0;
    int k = 0;
    system ("chcp 1251>0");
    std::cout << "Введите требуемую точность: " ; std::cin >> presition;
 
    do
    {
        sum += (1.0 - 2.0 * (k%2)) * pred;
    }
    while ( (pred = 1.0 / (2 * ++k + 1)) > presition / 4);
 
    std::cout << 4 * sum << std::endl;
    system("pause");
    return 0;
}
А вызов ф-и не требует машинного времени?
Кстати, ТС просил еще напечатать к-во членов ряда.
C++
1
    std::cout << k << std::endl;
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
16.09.2013, 14:42     Написать программу которая вычисляет число пи с заданной точностью #9
Цитата Сообщение от Ilot Посмотреть сообщение
А вызов ф-и не требует машинного времени?
еще как требует. к тому же при каждом вызове функции все ее параметры помещаются в стек. а это тоже лишние затраты
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
16.09.2013, 14:43     Написать программу которая вычисляет число пи с заданной точностью #10
Цитата Сообщение от _ Посмотреть сообщение
еще как требует. к тому же при каждом вызове функции все ее параметры помещаются в стек. а это тоже лишние затраты
Вот и я о том же.
Catstail
Модератор
 Аватар для Catstail
21493 / 10246 / 1669
Регистрация: 12.02.2012
Сообщений: 17,131
16.09.2013, 14:58     Написать программу которая вычисляет число пи с заданной точностью #11
Окончательный ответ, какой подход производительнее, может дать только развернутый тест.
Voivoid
 Аватар для Voivoid
580 / 256 / 12
Регистрация: 31.03.2013
Сообщений: 1,284
16.09.2013, 15:14     Написать программу которая вычисляет число пи с заданной точностью #12
Современные компиляторы умеют производить оптимизацию хвостовой рекурсии. Так что никаких лишних затрат у рекурсивной реализации не будет
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
16.09.2013, 15:48     Написать программу которая вычисляет число пи с заданной точностью #13
Ну что начнем бадаться?
Во-первых у вас ряд синтаксических ошибок ну да ладно. Во-вторых, на моем компьютере ваша программа дохнет при точности 10-5, а моя ведет себя адекватно и при 10-30. А все потому, что стек ограничен и не столь лоялен к перерасходу памяти. За сим откланиваюсь или у вас есть еще аргументы?
Voivoid
 Аватар для Voivoid
580 / 256 / 12
Регистрация: 31.03.2013
Сообщений: 1,284
16.09.2013, 16:01     Написать программу которая вычисляет число пи с заданной точностью #14
Какие тут могут быть аргументы-то? Все и так очевидно, рекурсия более декларативна и при этом так же эффективна как и циклы. Единственный её минус в том, что не все компиляторы поддерживают tail-call оптимизацию
Vasya2195
Сообщений: n/a
26.05.2014, 10:39     Написать программу которая вычисляет число пи с заданной точностью #15
А просто на СИ напишите пожалуйста эту программу)
zer0mail
2187 / 1870 / 187
Регистрация: 03.07.2012
Сообщений: 6,651
Записей в блоге: 1
26.05.2014, 12:48     Написать программу которая вычисляет число пи с заданной точностью #16
Цитата Сообщение от Ilot Посмотреть сообщение
моя ведет себя адекватно и при 10-30
Вести-то может, но точность только 7-8 знаков
По условию не вполне ясно, какая точность может понадобиться. Если, скажем, 100 или 10000 знаков...
Программа Super_PI считает 1млн знаков< 20 сек. Понятно, что там используется другой ряд, но все же...

Может кто кинуть ссылку на код, дающий 1000+ знаков Пи?

Цитата Сообщение от Vasya2195 Посмотреть сообщение
А просто на СИ напишите пожалуйста эту программу)
1. Зачем
2. На бейсик и сотню других языков не надо?
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
29.05.2014, 08:49     Написать программу которая вычисляет число пи с заданной точностью #17
Цитата Сообщение от zer0mail Посмотреть сообщение
Вести-то может, но точность только 7-8 знаков
Суть не в этом, а в дизайне программы. В случае с рекурсией происходит переполнение стека.
А по вопросу точности это больше к алгоритмам нужно присматриваться. А тут без отличного знания математики никак.
Voivoid
 Аватар для Voivoid
580 / 256 / 12
Регистрация: 31.03.2013
Сообщений: 1,284
29.05.2014, 20:42     Написать программу которая вычисляет число пи с заданной точностью #18
Цитата Сообщение от Ilot Посмотреть сообщение
В случае с рекурсией происходит переполнение стека.
Лол, хватит уже всякое старье типа borland c++ 3.1 юзать. Напоминаю, что 2014 год на дворе, давно уже компиляторы выполняют оптимизацию хвостовой рекурсии
Ilot
30.05.2014, 08:18
  #19

Не по теме:

Voivoid, боже как вы меня достали. У меня стоит компилятор GCC 4.9.0. Так, что угамонитесь.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2014, 09:05     Написать программу которая вычисляет число пи с заданной точностью
Еще ссылки по теме:

C++ Написать программу, которая вычисляет, сколько раз введенное с клавиатуры число встречается в массиве
C++ Написать программу, которая вычисляет значение e^2 с точностью до 0,001
Написать программу, которая вычисляет значение sin(6\o ) з точностью до 0,001 C++

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

Или воспользуйтесь поиском по форуму:
Voivoid
 Аватар для Voivoid
580 / 256 / 12
Регистрация: 31.03.2013
Сообщений: 1,284
30.05.2014, 09:05     Написать программу которая вычисляет число пи с заданной точностью #20
Цитата Сообщение от Ilot Посмотреть сообщение
Voivoid, боже как вы меня достали. У меня стоит компилятор GCC 4.9.0. Так, что угамонитесь.
Ну так зачем людей вводить в заблуждение. А то ведь начитаются советов доморощенных экспертов
Yandex
Объявления
30.05.2014, 09:05     Написать программу которая вычисляет число пи с заданной точностью
Ответ Создать тему
Опции темы

Текущее время: 09:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru