ЧТо значит?

Здравствуйте! Что значит в этом коде:

#include <iostream>
#include <cmath>
using namespace std;

double step(float m, int e)
{
    float t = 1;
    for ( 0; e; e--) // вот эта строчка(т.е. как расшифровывается)
        t = t *m;
    return t;
}

int main()
{
    setlocale(LC_ALL, "rus");
    const double x1 = -1.1, x2 = 0.3, dx = 0.2;
    double y;
    for (float x = x1; x < x2; x+=dx)
    {
        for (int m = 1; m < 5 ; ++m)
        {
            y = step(x,m)*step(sin(x*m),m);
            cout << "Значение функции = " << y << "\t\t\tПри m = " << m << endl;
        }
        cout << "\t\tВычислено при x = " << x << endl;
    }
    system("pause");
    return 0;
}

Заранее благодарю за помощь!

Поскольку в for'е могут отсутствовать один из блоков, то можно на месте инициализации написать 0, так как данный оператор ничего не сделает, это эквивалентно:

for ( ; e; e-- ) ...

Тут опускается так называемый init-expression.

Дальше. Вторым пишется условие, пока цикл будет выполняться, а цикл будет выполняться, пока второе выражение( ; e; ) будет возвращать true(логическая единица). Поскольку любое ненулевое значение( в том числе и отрицательное!!! ) в C, а соответственно и в C++ преобразуется в логическую единицу( а нулевое, соответственно в false ), то цикл будет выполняться пока e не равно 0. Данное условие можно записать так:

for ( ; e != 0; e-- ) ;

Такая форма записи ( for ( ; e; e-- ) ) часто встречается в программах, написанных опытными программистами.

Ну а что такое e--, думаю, вы знаете.

Итог: цикл будет выполняться e раз.

Данный цикл можно переписать так:

for ( int i = 0; i < e; i++)
        t = t *m;

Про циклы можно посмотреть тут.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.