Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/60: Рейтинг темы: голосов - 60, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 08.03.2009
Сообщений: 12
1

Функция как параметр

10.03.2009, 17:48. Показов 11094. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужна помощь....
Проблема такая: есть функция которая рисует график математической функции ранее обьявленной, например:
C++
1
2
3
4
5
6
7
8
9
float f(float x)
{
    return 2*sin(2*x);
}
void DrawF(float a, float b)// параметры - это промежуток по оси ОХ
{
     ....
     //тута используется функция f(x)
}
Значит, чего мне хочется: передавать в функцию DrawF(...) математическую функцию которую хочю рисовать, на пример вот так:
C++
1
2
3
4
5
DrawF(-2,2,sin(x));
//или
DrawF(-2,2,cos(x*x)+5*sin(x));
//или
DrawF(-2,2, f(x));// f(x) уже ранее задано
Вот, хочеться что-то такое....
Как это можно зделать? Может через свой собственный класс или как-то адресс функции передавать...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2009, 17:48
Ответы с готовыми решениями:

Функция как параметр метода класса
Есть класс с таким методом: void SGraph::DrawGraphPixels(float func) /* ! Сюда надо передать...

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

Математическая функция как параметр
Доброго времени суток. Есть скрипт, который работает нормально: clear, clc x = -10:0.01:10;...

функция как параметр процедуры
Задача следующая. Составить программу для решения уравнения f(x)=0 на отрезке от А до В с точностью...

8
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
10.03.2009, 18:02 2
Но sin(x) не функция. Это уже вызов. Это выражение. И его значение пойдет в функцию. Скажите смысл того, что вы пытаетесь сделать и для чего.
0
0 / 0 / 0
Регистрация: 08.03.2009
Сообщений: 12
10.03.2009, 18:08  [ТС] 3
Ну хотяб нарисовать больше одной функции на графике.... а так оно будет рисовать только одну f(x).
То что sin(x) это вызов, понятно... надо сделать как бы, чтоб оно обращалось к той функции которую перадаю(можна передавать только имя, к примеру)...
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
10.03.2009, 18:37 4
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
#include <stdio.h>
 
void (*callback)(void);
 
call_any_func(void(*func)(void))
{
   func();
}
 
void f1()
{
   printf("f1 called\n");
}
 
void f2()
{
   printf("f2 called\n");
}
 
int main ()
{
   callback=(void *)f1;
   call_any_func(callback);
   callback=(void*)f2;
   call_any_func(callback);
   return 0;
}
смысл должен быть понятен.
2
0 / 0 / 0
Регистрация: 08.03.2009
Сообщений: 12
10.03.2009, 18:41  [ТС] 5
Ухты, спасибо!
Думаю разберусь, будут вопросы - напишу))
И сразу первый вопрос: как быть есть функция f1() с параметром?? f1(x)
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
10.03.2009, 18:49 6
Да ровно точно так же:
C++
1
2
3
4
5
6
typedef void (*callback_param_func)(int param);
      
      void call_any_func1(callback_param_func my_func, int param)
      {
          my_func(param);
      }
и далее по накатанной дорожке.
1
0 / 0 / 0
Регистрация: 08.03.2009
Сообщений: 12
10.03.2009, 18:57  [ТС] 7
И еще чтоб в данный момент остановится)))
Я так понял все это не сложно и все это реально существует, просто меня этому пока не научили...
Скажите как все это называется и пару книг где об этом написано... Если без книг, то по названию найду))
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
10.03.2009, 18:59 8
Ищи про указатели на функции и callback-функции. В частности в реализации колбэков все это и есть.
0
0 / 0 / 0
Регистрация: 08.03.2009
Сообщений: 12
10.03.2009, 20:19  [ТС] 9
В данный момент теоретически все ясно))
Когда попытаюсь это применить, как ообычно возникнут вопросы))
Сам не разберусь, сюда в Help.
Благодарен за данную информацию!

Добавлено через 1 час 16 минут 8 секунд
и еще, код написанный во втором сообщении работает при таком исправлении:
C++
1
2
3
4
5
6
7
8
int main ()
{
    callback=&f1;
    call_any_func(callback);
    callback=&f2;
    call_any_func(callback);
    return 0;
}
Вообщем смысл пока понятен))
0
10.03.2009, 20:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2009, 20:19
Помогаю со студенческими работами здесь

Функция как параметр процедуры
Ребят просветите в такой теме, функция как параметр процедуры. Как это реалезовать в паскале? И чем...

Функция-член, как параметр функции
Если кратко: - не удается передать указатель на функцию-член как параметр в другую функцию. Можно...

Функция как параметр другой функции
в общем хочу передать в функцию через параметр другую функцию и вызвать ее. вот так, к примеру,...

Функция, как параметр другой функции
как я могу передать функцию как параметр в другую функцию?все функции однотипны только вычисляют по...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru