Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
jsartre
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 12
Завершенные тесты: 1
#1

Вызов функции члена в заданом диапазоне

19.09.2017, 10:27. Просмотров 101. Ответов 5
Метки нет (Все метки)

Нужно описать класс, в котором значение функции будет вычисляться в заданном диапазоне.
Ну, допустим, есть функция:

C++
1
2
3
4
5
6
7
8
if (x < 0)
{
    y = sin(abs(2 * x)) / cos(abs(2 * x)) + sin(x / 2) / cos(x / 2);
}
else if (x >= 0)
{
    y = sin(abs(x*x - 1)) / cos(abs(x*x - 1)) + sin(x);
}
Как сделать с заранее выбранным диапазоном и как сделать, чтобы его выбирал пользователь?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2017, 10:27
Ответы с готовыми решениями:

рекурсивный вызов функции-члена
как осуществить рекурсивный вызов функции члена?

Вызов функции-члена элементов списка
Вот есть список, хранящий указатели (на экземпляры классов). Можно ли в нем...

Вызов функции-члена класса по адресу в памяти
Всем хорошего дня :) Допустим, что где-то есть static функция, не...

Вызов функции-члена через std::function
Суть в следующем Задача сделать обертку вызывающую функцию член класса с...

Объявление класса, создание объекта и вызов функции-члена
Всем добрый день! Вот так я объявляю класс. typedef map&lt;string, double&gt;...

5
Matan!
Delphi/Java/DB Dev + Math
401 / 270 / 114
Регистрация: 31.05.2013
Сообщений: 2,192
Записей в блоге: 4
Завершенные тесты: 2
19.09.2017, 10:34 #2
Например, так:
C++
1
2
3
4
5
6
7
double function func(int a, int b)
{
if (a < x && x <= b)
   return (sin(abs(2 * x)) / cos(abs(2 * x)) + sin(x / 2) / cos(x / 2));
else
   return (sin(abs(x*x - 1)) / cos(abs(x*x - 1)) + sin(x));
}
0
jsartre
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 12
Завершенные тесты: 1
19.09.2017, 11:10  [ТС] #3
Это ведь два числа? А как сюда вставить шаг?
0
Matan!
Delphi/Java/DB Dev + Math
401 / 270 / 114
Регистрация: 31.05.2013
Сообщений: 2,192
Записей в блоге: 4
Завершенные тесты: 2
19.09.2017, 12:11 #4
Так, стоп. При чём здесь шаг?
Вы хотите строить поточечно?
Тогда можно так:
C++
1
2
3
4
5
6
7
double function func(int a, int b, double x)
{
if (a < x && x <= b)
   return (sin(abs(2 * x)) / cos(abs(2 * x)) + sin(x / 2) / cos(x / 2));
else
   return (sin(abs(x*x - 1)) / cos(abs(x*x - 1)) + sin(x));
}
Вызов будет в цикле:
C++
1
2
3
4
5
double step = 0.1;
for(double h = 0; h<b; h+= step)
{
cout << func(a, b, x + h) << endl;
}
Добавлено через 59 секунд
Цитата Сообщение от jsartre Посмотреть сообщение
Это ведь два числа?
Да, два числа. Вы же написали:
Цитата Сообщение от jsartre Посмотреть сообщение
в заданном диапазоне
А диапазон всегда подразумевает два числа.

Добавлено через 1 минуту
Я Вам пишу, как вычислить значение функции. Класс уже Вы объявляйте и конструируйте
0
jsartre
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 12
Завершенные тесты: 1
19.09.2017, 12:37  [ТС] #5
Цитата Сообщение от Matan! Посмотреть сообщение
Так, стоп. При чём здесь шаг?
Хм... просто я думал, что диапазон подразумевает собой шаг. То есть, например, числа: 3 и 5, а между ними шаг 0.5. А если и вовсе не будет шага, то что тогда выдаст компилятор? Я не совсем понимаю.

И, объясните, пожалуйста, почему вы используете double, а не float, к примеру? Имеет ли это значение в данном случае?
0
Matan!
Delphi/Java/DB Dev + Math
401 / 270 / 114
Регистрация: 31.05.2013
Сообщений: 2,192
Записей в блоге: 4
Завершенные тесты: 2
19.09.2017, 12:58 #6
Цитата Сообщение от jsartre Посмотреть сообщение
Имеет ли это значение в данном случае?
Не имеет.
Цитата Сообщение от jsartre Посмотреть сообщение
А если и вовсе не будет шага, то что тогда выдаст компилятор?
А как Вы используете шаг? Мы только проверяем, входит ли наш х в заданный отрезок или нет. И всё. Если Вы хотите построить таблицу значений для Вашей функции в заданном диапазоне - это другой вопрос, и там уже будет шаг.
0
19.09.2017, 12:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2017, 12:58

Как такое может быть? (вызов функции-члена без объекта)
собственно вопрос озвучен. #include &lt;iostream&gt; using namespace std; ...

Простое Наследование и ошибка "Недопустимый вызов нестатической функции-члена"
У меня есть два класса M и К (наследуется от М). В классе М есть три переменные...

Полная специализация члена функции
Как специализировать функцию член класса? У меня не работает. #include...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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