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

Вычисление точности числа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить радиус и центр окружности минимального радиуса http://www.cyberforum.ru/cpp-beginners/thread894735.html
Определить радиус и центр окружности минимального радиуса, проходящей хотя бы через три различные точки заданного множества точук на плоскости.
C++ Игра гонки Игра гонки. Суть игры машины "падают" сверху игрок управляет своей машиной, уворачивается от столкновений. http://www.cyberforum.ru/cpp-beginners/thread894731.html
C++ Найдите во введенной строке все подстроки вида «ХХ.ХХХ.Х», где Х – цифра, и выведите их на экран
Найдите во введенной строке все подстроки вида «ХХ.ХХХ.Х», где Х – цифра, и выведите их на экран. (Задачка проде простенькая, возможно я что-то напутал, не знаю как вывести на экран только «ХХ.ХХХ.Х», подсобите чем можете) Вот моя работа:
C++ Программирую в DEV C++ нужны библиотеки для работы с Excel
Здравствуйте, столкнулся с необходимостью обращаться на r/w к Excel файлу. При чем программа предположительно будет работать на одной из самых старых версий экселя. (я в них не разбираюсь, а человек для которого пишется программа не может сложить в уме два однозначных числа, так что попытки выяснить хоть что-то об ОС или версии Excel не увенчались успехом, но на вид его компьютер ветеран Великой...
C++ fwrite http://www.cyberforum.ru/cpp-beginners/thread894714.html
void write_file()//писать в файл { FILE *f; f=fopen("t.txt", "w"); abitur n1; memset(n1.FIO,0,sizeof(n1.FIO)); scanf("%s",&n1.FIO); scanf("%f", &n1.ocenki); scanf("%f", &n1.sr_bal); fwrite(&n1,sizeof(abitur),1,f);
C++ Стек: Калькулятор ОБЗ Написать программу, получающую строку с некоторым выражением, записанным обратной бесскобочной записью и находящую его значение. Использование стека обязательно. Пример: 1 2 + ! 4 2 / 2 ^ - = 2. #include <iostream> #include <cstdlib> #include <stack> #include <cmath> double const pi=3.141592653589; double const e=2.718281828459; std::stack<double>Stk; int F1(std::string mSt,int n); подробнее

Показать сообщение отдельно
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
23246 / 15237 / 4432
Регистрация: 22.10.2011
Сообщений: 27,104
Записей в блоге: 4
08.06.2013, 19:39     Вычисление точности числа
Цитата Сообщение от samarcs Посмотреть сообщение
чтобы знак менялся
надо его определить:
C++
1
2
3
4
5
6
7
8
    double s = 0;
    int sign = 1; // вот он, знак ...
    for(int i = 1; i < 25; i++)
    {
        s += sign / static_cast<float>(i * i);
        sign = -sign; // меняем на противоположный
    }
    cout << "s = " << setprecision(12) << s << endl;
Цитата Сообщение от samarcs Посмотреть сообщение
задать условие выхода из бесконечного цикла если появится повторение цифр
Это плохая идея. Смотри, почему. Берем тот же код, что я написал выше, и делаем так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
 
int main()
{
    double s = 0;
    int sign = 1;
    for(int i = 1; i < 25; i++)
    {
        s += sign / static_cast<float>(i * i);
        sign = -sign;
        cout << "s = " << setprecision(12) << s << endl;
    }
    cout << "total s = " << setprecision(12) << s << endl;
    return 0;
}
Запускаем, и получаем:
s = 1
s = 0.75
s = 0.861111111111 // 3-я итерация
s = 0.798611111111
s = 0.838611111111
s = 0.810833333333 // 6-я итерация
s = 0.831241496599
s = 0.815616496599
s = 0.827962175611
s = 0.817962175611
s = 0.826226638421
s = 0.819282193976
s = 0.82519935374
s = 0.820097312923
s = 0.824541757368
s = 0.820635507368
s = 0.82409571498
s = 0.821009295227
s = 0.82377937833
s = 0.82127937833
s = 0.823546952026
s = 0.821480836323
s = 0.823371195492
s = 0.821635084381
total s = 0.821635084381
На каком этапе будешь прерывать вычисления? Неужели на третьей итерации? Там же уже цифры повторяются. Однако, ничего похожего. На шестой итерации повторяется уже другая цифра, а на седьмой никакого повторения нет и в помине. Итак, что делать будем, на какой итерации (и почему) выходим из цикла?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru