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

Вызовы функций с помощью указателей - C++

Войти
Регистрация
Восстановить пароль
 
Best-pm07
..:::BesT:::..
 Аватар для Best-pm07
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
16.04.2009, 21:36     Вызовы функций с помощью указателей #1
Составить программу которая использует вызовы функций с помощью указателей

------------------------
первая функция

double (*func1)
(float *, int)
------------------------
------------------------
вторая функция

double (*func2)
(double, long int)
------------------------
------------------------
третья функция

double (*func3)
(unsigned int *)
------------------------
------------------------
четвертая функция

float (*func4
(double)(void))
[10]
------------------------

Вот есть пример:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
#include<iostream.h>
#include<math.h>
void H(char(*func1)(unsigned int*),char(*func2)(int*,float*,double*),char(*func3)(void*));
int*func4(char*be,int*b);
char f1(unsigned int*c);
char f2(int*d,float*e,double*f);
char f3(void*g);
void main()
{int r,*my=&r,y;
 char p;
 p='w';
 y=54;
 H(f1,f2,f3);
 *my=*func4(&p,&y);
 cout<<*my;
}
void H(char(*func1)(unsigned int*),char(*func2)(int*,float*,double*),char(*func3)(void*))
{int a2;
 unsigned int a1;
 float a4;
 double a3;
 void *a5;
 char z1,z2,z3;
 a1=12;
 a2=10;
 a3=3.5;
 a4=8.1;
 z1=(*func1)(&a1);
 z2=(*func2)(&a2,&a4,&a3);
 z3=(*func3)(a5);
 cout<<z1<<' '<<z2<<' '<<z3<<'\n';
}
 
char f1(unsigned int*c)
{if (*c<10) return 'a';
  else return 'b';
}
 
char f2(int*d,float*e,double*f)
{if((*d>*e)&&(*f>0)) return'a';
  else return 'b';
}
 
char f3(void*g)
{return 'v';
}
 
int*func4(char*be,int*b)
{int a,*c=&a;
 if(*be=='w') *c=*b;
  else *c=0;
 return c;
}
Помогите сделать задание
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2009, 21:36     Вызовы функций с помощью указателей
Посмотрите здесь:

Решение задачи на матрицу с помощью указателей C++
C++ Использование указателей и функций
C++ Задать одномерный массив с помощью указателей
C++ Касательно указателей и функций
Можно ли с помощью хуков перехватывать вызовы функций из DLL? C++
C++ Вызовы функций с указателями
Возврат указателей объектов из функций C++
Вывод букв с помощью указателей (требуется помощь) C++
Шаблоны функций и массив указателей C++
Использование указателей в качесве аргументов функций C++
C++ Индексация массивов с помощью указателей
C++ Переворот массива с помощью указателей

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Best-pm07
..:::BesT:::..
 Аватар для Best-pm07
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
25.04.2009, 15:29  [ТС]     Вызовы функций с помощью указателей #2
Помогите сделать, я непонимаю, как много путаюсь, очень прошу помощи
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 1
25.04.2009, 15:49     Вызовы функций с помощью указателей #3
Цитата Сообщение от Best-pm07 Посмотреть сообщение
Составить программу которая использует вызовы функций с помощью указателей
Что эта программа должна делать. Вопрос уточните!.
Best-pm07
..:::BesT:::..
 Аватар для Best-pm07
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
26.04.2009, 00:26  [ТС]     Вызовы функций с помощью указателей #4
Неважно, что она делает (я незнаю)
Главное - то, чтобы

первая, вторая, третья, четвертая функция - те которые в табличке, были переставлены в ту программ примера с изменением

если это невозможно, то тогда помогите составить любую программу с использованием функций с точно такими же типами (из таблицы)

Добавлено через 8 часов 17 минут 22 секунды
Мне кто-нибудь поможет?
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 1
26.04.2009, 00:48     Вызовы функций с помощью указателей #5
У вас же есть пример. правда что это сам не пойму:
C++
1
float (*func4 (double)(void)) [10]
Добавлено через 18 минут 34 секунды
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
#include <algorithm>
using namespace std;
 
//первая функция
//
//double (*func1)
//(float *, int)
//------------------------
//------------------------
//вторая функция
//
//double (*func2)
//(double, long int)
//------------------------
//------------------------
//третья функция
//
//double (*func3)
//(unsigned int *)
 
typedef double(*p_func_1)(float*,int);
typedef double(*p_func_2)(double,long int);
typedef double(*p_func_3)(unsigned int);
 
void BigFunction(p_func_1,p_func_2,p_func_3);
 
double func_1(float*,int);
double func_2(double,long int);
double func_3(unsigned int);
int main() 
{
    BigFunction(func_1,func_2,func_3);
 
    return 0;
}
 
void BigFunction(p_func_1 f1,p_func_2 f2,p_func_3 f3){
 
    const int len = 5;
    float arr[len] = {1.0,2.0,3.0,4.0,5.0};
    double d = 10;
    int i = 15;
    unsigned int ui = 20;
 
    cout<<"call function: "<<f1(arr,len)<<endl;
    cout<<"call function: "<<f2(d,i)<<endl;
    cout<<"call function: "<<f3(ui)<<endl;
}
 
double func_1(float* arr,int len){
    cout<<"[ ";
    for(int i = 0; i < len; ++i)
        cout<<arr[i]<<" ";
    cout<<"]"<<endl;
    return 1.0;
}
double func_2(double d,long int i){
    cout<<"D + I = "<<d+i<<endl;
    return 2.0;
}
double func_3(unsigned int i){
    cout<<"i + i"<<i + i<<endl;
    return 3.0;
}
Yandex
Объявления
26.04.2009, 00:48     Вызовы функций с помощью указателей
Ответ Создать тему
Опции темы

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