1 / 3 / 4
Регистрация: 02.07.2011
Сообщений: 90
1

Функции языка с++

02.07.2011, 20:06. Показов 7288. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пожалуйста не поленитесь, прочитайте всё и помогите . Заранее СПАСИБО!

Разработайте функцию calculate(), принимающую два значения типа double и указатель на функцию, которая принимает в качестве аргументов два значения типа double и возвращает значение типа double. Функция calculate() также должна иметь тип double. Она должна возвращать значение, вычисляемое функцией, на которую указывает указатель. При этом используются значения типа double , являющиеся аргументами функции calculate(). Предположим, что у нас имеется следующие определение функции add() :

double add(double x, double y)
{
return x + y;
}

Затем вызов функции

double q = calculate(2.5, 10.4, add);

заставит функцию calculate() передать значения 2.5 и 10.4 функции add(), а затем вернуть значение (12.9), возвращаемое функцией add().
Примените эти функции, а также, по меньшей мере, ещё одну дополнительную функцию, определённую в теле функции add(), для работы программы. Программа должна использовать цикл, в котором пользователь вводит пары чисел. Для ввода каждой пары значений используйте функцию calculate(), чтобы обратиться к функции add(), а также, по меньшей мере, ещё к одной функции.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.07.2011, 20:06
Ответы с готовыми решениями:

Поиск экстремума функции одной переменной с использованием языка MatLab и и встроенной функции fminbnd
помогите пожалуйста с лабой, или хотя бы подскажите что как использовать эти функции :( мапл только...

Функции языка С++
Задана матрица x(n,m). Сформировать вектор y(n), содержащий сумму элементов строк. Найти...

Стандартные и пользовательские функции языка С
Помогите написать на чистом Си в одном проекте. 1) Даны три целые числа. Поднять квадрату...

Стандартные и пользовательские функции языка С
Помогите пожалуйста написать программы на чистом Си в одном проекте. 1) Для нагрева 300 л. воды...

4
187 / 174 / 18
Регистрация: 22.03.2010
Сообщений: 612
02.07.2011, 20:07 2
чем тебе помочь?
0
1 / 3 / 4
Регистрация: 02.07.2011
Сообщений: 90
02.07.2011, 20:17  [ТС] 3
Если не сложно, напиши программу по условию или укажи, в чем ошибка и как исправить. Вот я пробовал, но не работает, где-то ошибка:

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
#include <iostream>
 
using namespace std;
 
double calculate(double x, double y, double (*pt)(int) );
double add(double x, double y);
void is_busy(void);
int main()
{
    cout << "Enter a pair of numbers to calculate ";
    double x, y;
    cin >> x >> y;
    double q = calculate(2.5, 10.4, add);
        
    system ("PAUSE");
    return 0;
}
 
double add(double x, double y)
{
       is_busy();
       return x + y;
}
 
void is_busy(void)
{
     cout << "Computer is busy, calculating...\n";
}
 
double calculate(double x, double y, double (*pt)(int) )
{
       add(x, y);
       return x + y;
}
0
71 / 76 / 9
Регистрация: 30.06.2011
Сообщений: 176
02.07.2011, 20:30 4
Цитата Сообщение от Yashman Посмотреть сообщение
double calculate(double x, double y, double (*pt)(int) ) { add(x, y); return x + y; }
C++
1
double calculate(double x, double y, double (*pt)(double ,double ) ) { return pt(x, y);}
2
101 / 88 / 7
Регистрация: 17.12.2010
Сообщений: 416
02.07.2011, 20:39 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
double calc(double a, double b, double (* z)(double, double) ){
    return z(a,b);
}
 
double add(double x,double y){
    return x+y;
}
 
int main(){
    double(*pAdd)(double,double); // объявление указателя на функцию
    pAdd=&add; // указатель направлен на функцию add() 
    std::cout<<calc(5.1, 4.1, pAdd);
    return 0;
}
Добавлено через 8 минут
Yashman,
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
#include <iostream>
 
using namespace std;
 
double calculate(double x, double y, double (*pt)(double, double) );
double add(double x, double y);
void is_busy(void);
int main()
{
    cout << "Enter a pair of numbers to calculate \n";
    double x, y;
    cin >> x >> y;
 
    double q = calculate(x, y, &add);
 
    cout<<"\n"<<q;
    //system ("PAUSE");
    return 0;
}
 
double add(double x, double y)
{
       is_busy();
       return x + y;
}
 
void is_busy(void)
{
     cout << "Computer is busy, calculating...\n";
}
 
double calculate(double x, double y, double (*pt)(double, double) )
{
       pt(x, y);
       return x + y;
}
1
02.07.2011, 20:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.07.2011, 20:39
Помогаю со студенческими работами здесь

Аналог функции PRINTF() языка СИ
Уважаемые форумчане! Пришел к Вам с проблемой, в решении которой надеюсь получить помощь. Вобщем,...

Стандартные и пользовательские функции языка С
1) Найти периметр и площадь прямоугольного треугольника, если данные длины его катетов a и b. 2)...

Функция, аналогичная функции System языка С++
А есть ли в С# функция анологичная функции System языка С++? И какой у нее синтаксис?

Стандартные функции ввода/вывода языка Си
Приветствую всех.У меня проблема.Я решил попробовать функции ввода/вывода в стиле Си.Написал прогу...

Функции языка с++ и считывание данных в массив
Помогите найти ошибку в решении задачки на функции с++ и хранение данных в массиве. Программа...

Создать функцию для обработки символьных строк. За образец брать библиотечные функции обработки строк языка С, но не применять их в своей функции
Доброго времени суток! Крайне необходима помощь экспертов в С++! Кто может - не оставьте меня в...


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

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

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