Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Вирусоборец
208 / 154 / 69
Регистрация: 24.09.2013
Сообщений: 826

Вычисления до заданной точности

18.12.2013, 13:20. Показов 1395. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам

Исправьте ошибку пожалуйста!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <math.h>
#include <conio.h>
 
int fact(int x)
{
if(x<=1) return 1;
return x*fact(x-1);
}
int main()
{
clrscr();
    float v, s = 0;
    float eps = .0001f;
    for ( int i = 1; ; i++ )
    {
    v = 1.0+1.f /fact(i);
    if ( v < eps ) break;
    s += v;
    }
    printf( "%f\n", s );
    getch();
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.12.2013, 13:20
Ответы с готовыми решениями:

Вычислить сумму ряда. Вычисления заканчивать при достижении заданной степени точности
Помогите пожалуйста доработать программу, в программировании новичок. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Программа должна показать все комбинации заданной суммы чисел заданной точности
Доброго всем времени суток.Пожалуйста помогите справиться с задачей.Нужно написать программу показывающая все варианты заданной суммы...

Не точности вычисления C++
double N=1.0100000000000000; N=(N-floor(N))*10; cout&lt;&lt;N; Выводит: 0.10000000000000009 - что ни есть правильно (добавляет 9 в...

8
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
18.12.2013, 13:35
Зачем вы в семнадцатой строке постоянно единицу прибавляете? Один раз ее перед циклом внесите и более не надо.
1
Вирусоборец
208 / 154 / 69
Регистрация: 24.09.2013
Сообщений: 826
18.12.2013, 13:50  [ТС]
SatanaXIII, Вот так, но ошибка не в этом, не компилируется код (пишу на турбо си):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <math.h>
#include <conio.h>
 
int fact(int x)
{
if(x<=1) return 1;
return x*fact(x-1);
}
int main()
{
clrscr();
    float v,p=1.0, s = 0;
    float eps = .0001f;
    for ( int i = 1; ; i++ )
    {
    v = p+1.f /fact(i);
    if ( v < eps ) break;
    s += v;
    }
    printf( "%f\n", s );
    getch();
}
0
Вирусоборец
208 / 154 / 69
Регистрация: 24.09.2013
Сообщений: 826
18.12.2013, 13:58  [ТС]
SatanaXIII, К сожалению это не ответ
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
18.12.2013, 14:13
Цитата Сообщение от Аркалык Посмотреть сообщение
не компилируется код
Приведите текст ошибки.
1
Вирусоборец
208 / 154 / 69
Регистрация: 24.09.2013
Сообщений: 826
18.12.2013, 14:27  [ТС]
SatanaXIII, Написал на Dev C++, компилируется, но нет результата. Походу не хватает мощности пк для вычисление :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include<cmath>
using namespace std;
 
float fact(float x)
{
if(x<=1) return 1;
return x*fact(x-1);
}
int main()
{
    float v,p=1.f, s = 0;
    float eps = .0001f;
    for ( int i = 1; ; i++ )
    {
    v = p+1.f /fact(i);
    if ( v < eps ) break;
    s += v;
    }
cout<<s;
system("pause");
}
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
18.12.2013, 14:45
Цитата Сообщение от Аркалык Посмотреть сообщение
не хватает мощности пк для вычисление
А. Ну что-то я сразу не подумал. Извините, что мурыжу тут вас уже пол дня. Вот так должно быть с учетом оптимизации под вашу архитектуру процессора (там просто за счет дублирования регистров s переназначается с v и на кеше третьего уровня (который под расчет с плавающей точкой) шине адреса не хватает разрядности, чтобы протолкнуть все число за раз):
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
#include<iostream>
#include<cmath>
 
using namespace std;
 
 
float fact(float x)
{
if(x<=1) return 1;
return x*fact(x-1);
}
 
 
int main()
{
    float v=1, s = 0;
    float eps = .0001f;
    for ( int i = 1; ; i++ )
    {
    v = v + 1.f /fact(i);
    if ( 1.f /fact(i) < eps ) break;
    s += v;
    }
cout<<s;
system("pause");
}
1
Вирусоборец
208 / 154 / 69
Регистрация: 24.09.2013
Сообщений: 826
18.12.2013, 15:15  [ТС]
SatanaXIII, Спасибо вам Большое!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.12.2013, 15:15
Помогаю со студенческими работами здесь

Проверить вычисления на переполнение и потерю точности
Надо написать функции арифметических действий с проверкой переполнения,потери и генерировать исключение если оно случается. Вообщем то...

Вывести число итераций, необходимое для достижения заданной точности
Здравствуйте. Помогите решить: Вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) с точностью ε (табл....

Вывести число итераций, необходимое для достижения заданной точности
Вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) с точностью ε . Вывести число итераций, необходимое для...

Табулировать функции F и S при заданной точности E, с указанным шагом и диапазоном значений по x:
Помогите пожалуйста написать программу: Табулировать функции F и S при заданной точности E, с указанным шагом и диапазоном значений по x:

Табулировать функции F и S при заданной точности E, с указанным шагом и диапазоном значений по x:
Помогите пожалуйста написать прогу Табулировать функции F и S при заданной точности E, с указанным шагом и диапазоном значений по x:


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru