Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
10 / 7 / 4
Регистрация: 08.12.2013
Сообщений: 165

Цикл заканчивается не так, как задано в условии

30.01.2014, 20:22. Показов 770. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Есть задача: вычислить бесконечную сумму выражения 1+https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{1!}+https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{2!}+...+https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{n!} с точностью до https://www.cyberforum.ru/cgi-bin/latex.cgi?\varepsilon = 0.001.
Проблема в том, что цикл заканчивается досрочно. В результате программа выдает 2. Начальное значение переменной res=1, значение cur при первом проходе равно 1, res+cur=2, что и выдает программа.
Пишу в Visual Studio 2010
Заранее спасибо!


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
// Lab6.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "iostream"
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n,fact;//factorial, schetchik
    float res,cur;//tekyschee znachenie, hranenie tekyschego re-ta vurazheniya
    float const eps = 0.001;
    cout<<"Programma vuchislyaet beskonechnyju symmy vurazhrniya 1+(1/1!)+(1/2!)+(1/n!) s tochnsostiu do e=0.001"<<endl;
    res=1;
    n=1;
    fact=1;
    do
    {
        cur=1/n;
        res=res+cur;
        fact++;
        n=n*fact;
    } while (cur >= eps);
    cout<<"Symma ravna: "<<res<<endl;;
    system("pause");
 
 
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.01.2014, 20:22
Ответы с готовыми решениями:

Задано произвольное слово. Определить, заканчивается ли оно на слог «va»
Задано произвольное слово. Определить, заканчивается ли оно на слог «va».

Цикл не заканчивается
Цикл не заканчивается,хотя должен быть конечным.Кол-во циклов должно быть до 25,н это не точно. Цикл должен заканчиваться ,когда одна из...

Почему не заканчивается цикл?
При вводе нужного предложения и символа ставлю чтобы i=49, так как считаю, что при следующем заходе работа цикла прекратится. Пробовал...

4
БНТУ ФИТР
 Аватар для kventin_zhuk
215 / 155 / 42
Регистрация: 26.12.2012
Сообщений: 382
30.01.2014, 20:34
Александр_Алекс,
C++
1
cur=1/n;
Результатом деления целого на целое является целое число, которое уже неявно приводится к типу float.

т.е cur = 1/2 будет равно 0 на второй итерации.

Выход:

C++
1
cur=1.0/n;
1
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
30.01.2014, 20:38
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
#include "stdafx.h"
#include "iostream"
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n,fact;//factorial, schetchik
    float res,cur;//tekyschee znachenie, hranenie tekyschego re-ta vurazheniya
    float const eps = 0.001;
    cout<<"Programma vuchislyaet beskonechnyju symmy vurazhrniya 1+(1/1!)+(1/2!)+(1/n!) s tochnsostiu do e=0.001"<<endl;
    res=1;
    n=1;
    fact=1;
    do
    {
        cur=1/n; // 1 / 1 = 1
        res=res+cur; // 1 + 1 = 2
        fact++; // 2
        n=n*fact; // 2
    } while (cur >= eps); // 1 > eps
    cout<<"Symma ravna: "<<res<<endl;; // res = 2
    system("pause");
 
 
    return 0;
}
0
10 / 7 / 4
Регистрация: 08.12.2013
Сообщений: 165
30.01.2014, 21:04  [ТС]
kventin_zhuk, большое вам спасибо! Я так понял, если я обозначил переменную float или double, то все числа числа которые участвуют в выражении должны быть с точкой, верно? Помню препод рассказывал про такую фишку в матлаб, он тогда объяснял но никто не понял почему)
Еще вопрос, в в Visual Studio 2010 есть что-то вроде дебаггера? Типо как в турбо паскале, вписываешь переменные и выполняешь программу пошагово, и при этом видно какие значение принимают переменные.
0
 Аватар для k1-801
4 / 4 / 6
Регистрация: 07.01.2013
Сообщений: 136
30.01.2014, 23:14
Цитата Сообщение от Александр_Алекс Посмотреть сообщение
Еще вопрос, в в Visual Studio 2010 есть что-то вроде дебаггера? Типо как в турбо паскале, вписываешь переменные и выполняешь программу пошагово, и при этом видно какие значение принимают переменные.
Точно не помню, либо F10 и F11, либо F9 и F10. Одно делает пошагово без захода в функции, другое пошагово с заходом в функции (с последним аккуратнее, например, с cout). Использование: нажимаем кнопку - запускается дебаггер. Далее любая из этих кнопок делает шаг соответствующего типа. Внизу окна есть странная штука где можно менять текущие значения переменных.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.01.2014, 23:14
Помогаю со студенческими работами здесь

Цикл почему-то не заканчивается.
Значит идея такая пока не сгенерируется число =2 цикл будет повторяться. Но когда число =2 цикл все равно не заканчивается. Подскажите...

Почему цикл не заканчивается???
Всем добрый день! У меня здесь вопрос по циклу while. Вот программа по подсчёту букв и сочетаний в тексте: #include &lt;iostream&gt; ...

Почему не заканчивается цикл?
ребята что-то сделал не так помогите понять что именно procedure TForm1.Button1Click(Sender: TObject); var k,n,j,i:byte; ...

не понимаю почему цикл не заканчивается
Привет! Вот написал. Объясните, пожалуйста, почему цикл не заканчивается? Функция должна считывать инфу и записывать в массив! Идеи по...

Цикл в условии
Люди, помогите построить правильную процедуру. Собственно раньше она возвращала одно значение и проблем не было, но теперь потребовалось...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru