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

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

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

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

17.06.2013, 21:30. Просмотров 324. Ответов 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();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2013, 21:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функции. Не считает последнюю итерацию в цикле (C++):

Цикл не делает последнюю итерацию - C++
for(x=1;x&lt;=4;x+=0.2) { cout&lt;&lt;x&lt;&lt;endl; } Почему последнее число которое выводит это 3.8, а не 4?

Объявляется ли каждую итерацию переменная-счетчик в цикле for? - C++
Всем привет, расскажу историю возникшего вопроса. Отходил я как-то на курсы с++, и там преподаватель (авторитетный вроде программист,...

Std::getline() пропускает итерацию в цикле: найти и исправить ошибки в коде - C++
Цикл for принимает на одну строку меньше чем должен. Я так понимаю это getline() воспринимает введенную перед этим переменную &quot;int n&quot; как...

Подскажите почему не правильно считает в цикле for! - C++
Подскажите почему не правильно считает в цикле! Задание: 1-1/2+1/3-1/4+...1/n #include &lt;iostream&gt; using namespace std; int...

Программа не считает значения функции - C++
#include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;iostream&gt; #include &lt;stdio.h&gt; int main(){ double Bn, Bk, dB, A...

непонятно считает количество вызовов рекурсивной функции - C++
Помогите пожалуйста. не могу понять как он выводит переменную n, а именно почему во второй строчке ноль? если отслеживать пошагово, то с...

3
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
17.06.2013, 21:38 #2
Цитата Сообщение от 4ch Посмотреть сообщение
Если подставить 12, выдаст значение 11 (выводил qi отдельно).
(12*12-1) / 12 =11
0
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

Может я не так думаю и вы подскажете, как правильно?
0
Thinker
Эксперт С++
4226 / 2200 / 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 целочисленная переменная, вот и целочисленная арифметика
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2013, 21:52
Привет! Вот еще темы с ответами:

Табуляция функции в цикле while-не обновляется счетчик - C++
Работаю в Borland C++ Попробовал запустить программу-таблица выводится бесконечно с одними и теми же значениями. Пробовал запустить в...

В цикле while просчитать произведение функции и вывести 5 значений - C++
Нужно написать программу, которая будет считать произведение данной функции и выводить 5 значений с применением цикла while. ...

Написать рекурсивную и нерекурсивную функции вычисления полинома (ошибка в цикле) - C++
Здравствуйте,Помогите найти ошибку в цикле. Задание: Написать рекурсивную и не рекурсивную функции вычисления полинома: ...

Как реализовать переход на следующую итерацию внешнего цикла из вложенного? - C++
Есть ли способ завершить или продолжить внешний цикл из вложенного? Пример : for (i = 0; i &lt; 10; i++) { for (j = 0; j &lt; 10; j++) { ...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
17.06.2013, 21:52
Ответ Создать тему
Опции темы

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