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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.76
venox
1 / 1 / 0
Регистрация: 08.01.2013
Сообщений: 26
#1

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

16.09.2013, 11:46. Просмотров 3590. Ответов 24
Метки нет (Все метки)

написать программу которая вычисляет число пи с заданной точностью, если известно 1-1/3+1/5-1/7+... при суммировании большого количества членов приближается к ПИ/4.Вывести сумму и количество членов ряда.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2013, 11:46     Написать программу которая вычисляет число пи с заданной точностью
Посмотрите здесь:
C++ Написать программу, которая вычисляет значение e^2 с точностью до 0,001
Написать программу, которая вычисляет значение sin(6\o ) з точностью до 0,001 C++
C++ Написать программу, которая по введенному значению аргумента вычисляет значение функции, заданной в виде графика
Написать программу, которая вычисляет целую степень, в которую необходимо возвести число 2, чтобы получить число, ближайшее меньшее либо равное числу, C++
C++ Написать программу, которая вычисляет, сколько раз введенное с клавиатуры число встречается в массиве
C++ Написать программу, которая предлагает пользователю ввести число, вычисляет его разрядность и сумму всех цифр и выводить результаты в консоль
Напишите программу, которая по заданной входной последовательности вычисляет ее медиану C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,364
16.09.2013, 12:00     Написать программу которая вычисляет число пи с заданной точностью #2
Что конкретно у тебя не получается? Где код?
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 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
Модератор
22515 / 10920 / 1774
Регистрация: 12.02.2012
Сообщений: 18,067
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
Модератор
22515 / 10920 / 1774
Регистрация: 12.02.2012
Сообщений: 18,067
16.09.2013, 14:21     Написать программу которая вычисляет число пи с заданной точностью #7
Цитата Сообщение от Ilot Посмотреть сообщение
Главное мой алгоритм проще и наглляднее.
- (без обид) - не сказал бы...

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

Кстати, ТС просил еще напечатать к-во членов ряда.
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 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
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
16.09.2013, 14:43     Написать программу которая вычисляет число пи с заданной точностью #10
Цитата Сообщение от _ Посмотреть сообщение
еще как требует. к тому же при каждом вызове функции все ее параметры помещаются в стек. а это тоже лишние затраты
Вот и я о том же.
Catstail
Модератор
22515 / 10920 / 1774
Регистрация: 12.02.2012
Сообщений: 18,067
16.09.2013, 14:58     Написать программу которая вычисляет число пи с заданной точностью #11
Окончательный ответ, какой подход производительнее, может дать только развернутый тест.
Voivoid
674 / 277 / 12
Регистрация: 31.03.2013
Сообщений: 1,339
16.09.2013, 15:14     Написать программу которая вычисляет число пи с заданной точностью #12
Современные компиляторы умеют производить оптимизацию хвостовой рекурсии. Так что никаких лишних затрат у рекурсивной реализации не будет
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
16.09.2013, 15:48     Написать программу которая вычисляет число пи с заданной точностью #13
Ну что начнем бадаться?
Во-первых у вас ряд синтаксических ошибок ну да ладно. Во-вторых, на моем компьютере ваша программа дохнет при точности 10-5, а моя ведет себя адекватно и при 10-30. А все потому, что стек ограничен и не столь лоялен к перерасходу памяти. За сим откланиваюсь или у вас есть еще аргументы?
Voivoid
674 / 277 / 12
Регистрация: 31.03.2013
Сообщений: 1,339
16.09.2013, 16:01     Написать программу которая вычисляет число пи с заданной точностью #14
Какие тут могут быть аргументы-то? Все и так очевидно, рекурсия более декларативна и при этом так же эффективна как и циклы. Единственный её минус в том, что не все компиляторы поддерживают tail-call оптимизацию
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2014, 10:39     Написать программу которая вычисляет число пи с заданной точностью
Еще ссылки по теме:
C++ Написать программу, которая вычисляет условие >
C++ Написать программу, которая вычисляет выражение
Написать программу, которая вычисляет выражение C++
Написать программу, которая вычисляет условие C++

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

Или воспользуйтесь поиском по форуму:
Vasya2195
Сообщений: n/a
26.05.2014, 10:39     Написать программу которая вычисляет число пи с заданной точностью #15
А просто на СИ напишите пожалуйста эту программу)
Yandex
Объявления
26.05.2014, 10:39     Написать программу которая вычисляет число пи с заданной точностью
Ответ Создать тему
Опции темы

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