Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/47: Рейтинг темы: голосов - 47, средняя оценка - 4.94
12 / 12 / 4
Регистрация: 07.09.2012
Сообщений: 542

typedef double (*d)(double);

14.09.2012, 19:55. Показов 9313. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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 "math.h"
#include <stdio.h>
#include <conio.h>
#include <vcl.h>
#pragma hdrstop
 
 
//---------------------------------------------------------------------------
 
#pragma argsused
typedef double (*d)(double);   // Декларация типа указателя на функцию
double funn1(double);      // Декларации прототипов функций
double funn2(double);
void Out_Rez (double(*)(double) ,double,double,double);
void main()
{
double a, b, h;
puts("Input a,b,h");        scanf("%lf%lf%lf", &a, &b, &h);
puts("\n\t Function - 2*exp(x)");  Out_Rez (funn1,a,b,h);
puts("\n\t Function - sin(x)*sin(x)");  Out_Rez (funn2,a,b,h);
puts("\n Press any key ... ");
getch();
}
//---------- Реализации функций пользователя ---------------------------------
double funn1( double r){
        return 2*exp(r*r);
}
double funn2(double r) {
        return pow(sin(r), 2);
}
void Out_Rez (d fv,double a,double b,double h) {
     for(double x=a; x<=b; x+=h)
          printf(" x = %5.2lf, y = %8.4lf\n",x,fv(x));
}
Объясните кто-нибудь, почему на результат не влияет когда я в строке
typedef double (*d)(double);
изменяю double в скобках на любое другое слово, но если вообще удаляю все внутри этой скобки, то выдает ошибку. Что за параметр такой во вторых скобках и для чего он тут???
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.09.2012, 19:55
Ответы с готовыми решениями:

Ошибки error C2296: -: недопустимо, левый операнд имеет тип "double (__cdecl *)(double,double,double
Думаю из-за polp #include&lt;iostream&gt; #include&lt;cmath&gt; #include&lt;cstdlib&gt; using namespace std; double polp(double af,double...

Ошибка: error LNK2001: unresolved external symbol "double __cdecl Akk(double,double,double)"
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; double Akk(double x, double y, double z); int main() { int a, b, c; ...

Почему мы пишем double x (double y)? а не через запятую double x,y
почему мы пишем double x (double y)? а не через запятую double x,y

8
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
14.09.2012, 20:43
ну это странно. приведите пример с любыми словами и вариант, когда не работает. желательно код маленького тестового консольного приложения.
вообще, typedef double (*d)(double) это ввод синонима указателя на функцию, которая возвращает тип double и принимает один аргумент типа double. вот double в скобках как раз и отвечает за то, что функция принимает аргумент типа double.
typedef void (*d2)(double, int) - вот это указатель на функцию, которая принимает два аргумента, первый - double, второй - int. И что-то сомнительно выглядит утверждение о том, что если туда любое слово написать, которое не является именем типа, то это компилится. Там должны быть имена типов.
0
12 / 12 / 4
Регистрация: 07.09.2012
Сообщений: 542
14.09.2012, 21:18  [ТС]
А компилиться.... И работает... Сам не могу понять почему...
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
14.09.2012, 21:39
Может имелось ввиду

C++
1
2
3
typedef double (*d)(double) funck_type; // Декларация типа указателя на функцию
 funck_type funn1; 
 funck_type funn2;
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
15.09.2012, 00:49
Avazart, Открою секрет.

C++
1
typedef double (*d)(double);
d - тип - указатель на функцию, принимающую double и возвращающую double.
То есть потом запросто можно написать
C++
1
d funn1;
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.09.2012, 00:56
ForEveR,Чет запарился...
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
15.09.2012, 01:29
Цитата Сообщение от klynxe Посмотреть сообщение
А компилиться.... И работает... Сам не могу понять почему...
В какой среде?
0
12 / 12 / 4
Регистрация: 07.09.2012
Сообщений: 542
15.09.2012, 22:40  [ТС]
В билдере
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.09.2012, 00:27
Цитата Сообщение от klynxe Посмотреть сообщение
Что за параметр такой во вторых скобках и для чего он тут???
typedef__double___(*d)____(double);
________double___funn1___(double r);

Ошибки может не быть из-за приведения типов к примеру
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.09.2012, 00:27
Помогаю со студенческими работами здесь

Создать функцию с параметрами GetFunctionValue(double& a, double& b, double& c, double& x)...
Есть код что считает нужно сделать пару манипуляций что у не могу реализовать 1) создать функцию с параметрами...

Реализовать в виде GetFunctionValue(double& a, double& b, double& c, double& x)
Реализовать в виде GetFunctionValue(double&amp; a, double&amp; b, double&amp; c, double&amp; x). #include &lt;iostream&gt; #include &lt;conio.h&gt; #pragma...

Реализовать в виде GetFunctionValue(double& a, double& b, double& c, double& x)
Реализовать в виде GetFunctionValue(double&amp; a, double&amp; b, double&amp; c, double&amp; x). Задание по которому написан код внизу на фото ...

Реализовать в виде GetFunctionValue(double& a, double& b, double& c, double& x)
Реализовать в виде GetFunctionValue(double&amp; a, double&amp; b, double&amp; c, double&amp; x).

Исправить ошибки "cannot convert 'double (*)(double)' to 'double'" и "too many arguments to function"
пожалуйста проверьте и помогите исправить ошибки: #include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;math.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru