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

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

Войти
Регистрация
Восстановить пароль
 
4ch
19 / 19 / 0
Регистрация: 24.10.2012
Сообщений: 72
#1

Функции. Не считает последнюю итерацию в цикле - C++

17.06.2013, 21:30. Просмотров 293. Ответов 3
Метки нет (Все метки)

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

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
31
32
33
34
35
#include <iostream>
#include <cmath>
#include <stdlib.h>
#include <conio.h>
using namespace std;
 
double qxx(double x, double result)
{
    int i;
    double qi = 0;
    result = 1;
    for (i = 1; i <= 12; i++)
    {
        result = result + (qi * x) / i;
        qi = (i * i - 1) / 12;                      // Если подставить 12, выдаст значение 11 (выводил qi отдельно). Я думаю,           что -1 каким-то образом уменьшает i на 1, но не понимаю почему.
    }
    return result;
}
 
void main()
{
 locale loc("russian_Russia.1251"); 
 locale::global(loc); 
 double w, f1 = 0, f2 = 0, x;
 cout<<"Введите значение x-> "; cin >> x;
 
 system("cls");
 w = qxx(x, f1) + qxx(x + 5, f2);
 
 
   cout<<endl;
   cout << "Введенные значения( x= "<<x<<")"<<endl;
   cout << "Результат w= "<<w;
 _getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2013, 21:30     Функции. Не считает последнюю итерацию в цикле
Посмотрите здесь:

C++ Пример, подтверждающий что не любую итерацию можно заменить рекурсией
не считает сумму C++
Программа не считает значения функции C++
Как можно найти итерацию, на которой происходит "access violation reading location"? C++
Объявляется ли каждую итерацию переменная-счетчик в цикле for? C++
Написать рекурсивную и нерекурсивную функции вычисления полинома (ошибка в цикле) C++
непонятно считает количество вызовов рекурсивной функции C++
В цикле while просчитать произведение функции и вывести 5 значений C++
Цикл не делает последнюю итерацию C++
Как реализовать переход на следующую итерацию внешнего цикла из вложенного? C++
C++ Как реализовать переход на следующую итерацию внешнего цикла из вложенного?
C++ Табуляция функции в цикле while-не обновляется счетчик

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
4220 / 2194 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
17.06.2013, 21:38     Функции. Не считает последнюю итерацию в цикле #2
Цитата Сообщение от 4ch Посмотреть сообщение
Если подставить 12, выдаст значение 11 (выводил qi отдельно).
(12*12-1) / 12 =11
4ch
19 / 19 / 0
Регистрация: 24.10.2012
Сообщений: 72
17.06.2013, 21:42  [ТС]     Функции. Не считает последнюю итерацию в цикле #3
Цитата Сообщение от Thinker Посмотреть сообщение
(12*12-1) / 12 =11
144-1/12 ~11,9

Может я не так думаю и вы подскажете, как правильно?
Thinker
Эксперт C++
4220 / 2194 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
17.06.2013, 21:52     Функции. Не считает последнюю итерацию в цикле #4
(12*12-1) / 12 =11
(12*12-1) / 12.0 =11.9...

почувствуйте разницу. в первом случае целочисленная арифметика, во втором - действительная

Добавлено через 9 минут
просто обращайте внимание на то, что
1 / 2 = 0,
но
1.0 / 2 = 1 / 2.0 = 1.0 / 2.0 = 0.5

у вас i целочисленная переменная, вот и целочисленная арифметика
Yandex
Объявления
17.06.2013, 21:52     Функции. Не считает последнюю итерацию в цикле
Ответ Создать тему
Опции темы

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