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

Протабулировать функцию - C++

Восстановить пароль Регистрация
 
Chymardos
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 78
06.06.2013, 20:31     Протабулировать функцию #1
Протабулировать функцию, использовав цикл с предусловием. Аргументы и результаты вывести на экран в виде таблицы (для значений х, в которых функция не существует вывести "-" и использовать оператор перехода на следующую итерацию).

Как это сделать ? Помогите, пожалуйста
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2013, 20:31     Протабулировать функцию
Посмотрите здесь:

Протабулировать функцию C++
протабулировать функцию C++
Протабулировать функцию C++
C++ Протабулировать функцию
[C++] Протабулировать функцию C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
06.06.2013, 21:05     Протабулировать функцию #2
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
#include <iostream>
#include <functional>
#include <cmath>
#include <iomanip>
 
double func(double x)
{
    return (std::log(1.2 + x) - 1.0) / (x + 1.0);
}
 
void tabulation(double start, double end, double step, std::function<double(double)> f)
{
    double x = start;
    while (x < end)
    {
        std::cout << std::setw(15) << x << std::setw(15);
        double res = f(x);
        if (std::isnan(res) || std::isinf(res))
            std::cout << '-' << std::endl;
        else
            std::cout << res << std::endl;
        x += step;
    }
}
 
int main()
{       
    std::function<double(double)> f(func);
    tabulation(-1.4, -0.2, 0.1, f);
    return 0;
}
Chymardos
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 78
06.06.2013, 22:33  [ТС]     Протабулировать функцию #3
Цитата Сообщение от Пaтрик Посмотреть сообщение
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
#include <iostream>
#include <functional>
#include <cmath>
#include <iomanip>
 
double func(double x)
{
    return (std::log(1.2 + x) - 1.0) / (x + 1.0);
}
 
void tabulation(double start, double end, double step, std::function<double(double)> f)
{
    double x = start;
    while (x < end)
    {
        std::cout << std::setw(15) << x << std::setw(15);
        double res = f(x);
        if (std::isnan(res) || std::isinf(res))
            std::cout << '-' << std::endl;
        else
            std::cout << res << std::endl;
        x += step;
    }
}
 
int main()
{       
    std::function<double(double)> f(func);
    tabulation(-1.4, -0.2, 0.1, f);
    return 0;
}
эххх... не работает
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
06.06.2013, 23:22     Протабулировать функцию #4
Цитата Сообщение от Chymardos Посмотреть сообщение
эххх... не работает
http://ideone.com/OBLBJX
kazak
06.06.2013, 23:28
  #5

Не по теме:

Пaтрик, Вы учитывайте, что некоторые студенты нашего форума до сих пор пишут на Turbo C 3.0 и прочих раритетах.

Пaтрик
06.06.2013, 23:29
  #6

Не по теме:

Цитата Сообщение от kazak Посмотреть сообщение

Не по теме:

Пaтрик, Вы учитывайте, что некоторые студенты нашего форума до сих пор пишут на Turbo C 3.0 и прочих раритетах.

Я эгоист, у меня работает и ладно, проблемы студентов меня мало интересуют.

Chymardos
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 78
06.06.2013, 23:38  [ТС]     Протабулировать функцию #7
Цитата Сообщение от kazak Посмотреть сообщение

Не по теме:

Пaтрик, Вы учитывайте, что некоторые студенты нашего форума до сих пор пишут на Turbo C 3.0 и прочих раритетах.

У меня Visual Studio 2008
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
06.06.2013, 23:45     Протабулировать функцию #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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <functional>
#include <cmath>
#include <iomanip>
#include <limits>
 
#define isnan(x) ((x) != (x))
 
bool isinf(double x)
{
    return x == std::numeric_limits<double>::infinity();
}
 
double func(double x)
{
    return (std::log(1.2 + x) - 1.0) / (x + 1.0);
}
 
void tabulation(double start, double end, double step, std::function<double(double)> f)
{
    double x = start;
    while (x < end)
    {
        std::cout << std::setw(15) << x << std::setw(15);
        double res = f(x);
        if (isnan(res) || isinf(res))
            std::cout << '-' << std::endl;
        else
            std::cout << res << std::endl;
        x += step;
    }
}
 
int main()
{       
    std::function<double(double)> f(func);
    tabulation(-1.4, -0.2, 0.1, f);
    system("pause");
    return 0;
}
Chymardos
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 78
06.06.2013, 23:52  [ТС]     Протабулировать функцию #9
Цитата Сообщение от Пaтрик Посмотреть сообщение
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
36
37
38
39
40
#include <iostream>
#include <functional>
#include <cmath>
#include <iomanip>
#include <limits>
 
#define isnan(x) ((x) != (x))
 
bool isinf(double x)
{
    return x == std::numeric_limits<double>::infinity();
}
 
double func(double x)
{
    return (std::log(1.2 + x) - 1.0) / (x + 1.0);
}
 
void tabulation(double start, double end, double step, std::function<double(double)> f)
{
    double x = start;
    while (x < end)
    {
        std::cout << std::setw(15) << x << std::setw(15);
        double res = f(x);
        if (isnan(res) || isinf(res))
            std::cout << '-' << std::endl;
        else
            std::cout << res << std::endl;
        x += step;
    }
}
 
int main()
{       
    std::function<double(double)> f(func);
    tabulation(-1.4, -0.2, 0.1, f);
    system("pause");
    return 0;
}
Не пойму в чём проблема, то ли компилятор у меня такой, то ли ещё что-то... и тут 10 ошибок, синтаксических типа error C2061: синтаксическая ошибка: идентификатор "function"
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
06.06.2013, 23:54     Протабулировать функцию #10
Значит Visual Studio 2008 не поддерживает std::function<T> переделайте ее в указательно на функцию и все будет работать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2013, 23:59     Протабулировать функцию
Еще ссылки по теме:

Протабулировать функцию C++
C++ Протабулировать функцию
C++ Протабулировать функцию Y = F (x)

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

Или воспользуйтесь поиском по форуму:
Chymardos
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 78
06.06.2013, 23:59  [ТС]     Протабулировать функцию #11
Цитата Сообщение от Пaтрик Посмотреть сообщение
Значит Visual Studio 2008 не поддерживает std::function<T> переделайте ее в указательно на функцию и все будет работать.
На итератор ?
Yandex
Объявления
06.06.2013, 23:59     Протабулировать функцию
Ответ Создать тему
Опции темы

Текущее время: 00:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru