С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
..:::BesT:::..
 Аватар для Best-pm07
8 / 8 / 5
Регистрация: 19.03.2009
Сообщений: 195

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

16.04.2009, 21:36. Показов 2026. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Составить программу которая использует вызовы функций с помощью указателей

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

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;
}
Помогите сделать задание
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.04.2009, 21:36
Ответы с готовыми решениями:

Можно ли с помощью хуков перехватывать вызовы функций из DLL?
Привет народ! Для одного проекта ;) мне понадобилось перехватывать функцию, находящуюся в DLL (а точнее в kernel32.dll, т.е....

Вызовы функций с указателями
У меня всё получилось с первыми 3 функциями , а что в 4 я совсем не пойму.. #include &lt;stdio.h&gt; #include &lt;math.h&gt; ...

Исключить два первых отрицательных элемента. В главной программе должны быть только описания переменных и вызовы функций
Дан массив X1,X2...Xn Исключить из него два первых отрицательных элемента. Помогите пожалуйста)

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

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

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

Добавлено через 8 часов 17 минут 22 секунды
Мне кто-нибудь поможет?
0
Maniac
Эксперт С++
 Аватар для ISergey
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
26.04.2009, 00:48
У вас же есть пример. правда что это сам не пойму:
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;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.04.2009, 00:48
Помогаю со студенческими работами здесь

Использование указателей и функций
Сформировать динамический массив Х размера M × N из случайных целых чисел. В программе организовать функцию для подсчета среднего...

Касательно указателей и функций
Уважаемые, назрел вот какой вопрос. Делаю вот так: TVozmGrup MassVG; GetVGArroundVG(MassVG); void GetVGArroundVG(TVozmGrup...

Переворот массива с помощью указателей
Здрасте! Учусь на программера недавно. Вот задали перевернуть массив рекурсивно с использованием указателей. На рекурсию я пока решил...

Индексация массивов с помощью указателей
Не смог понять логику вот этой программы, связанной с объявлением массивов через указатель: #include &lt;iostream&gt; ...

Шаблоны функций и массив указателей
Задание! Создайте шаблонную функцию maxn(), которая принимает в качестве аргумента массив элементов типа Т и целое число, представляющее...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru