С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/40: Рейтинг темы: голосов - 40, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 16.10.2018
Сообщений: 11

Выражение перед скобками вероятного вызова должно иметь тип функции (pointer-to-)

20.06.2019, 18:57. Показов 8404. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Выдает ошибку с функцией pow().
Само задание:
Во всех заданиях реализуемые функции должны генерировать подходящие
исключения. Обработку исключений нужно выполнять главной функцией, которая
должна демонстрировать обработку всех перехватываемых исключений.
Функции, реализуемые в заданиях, обязаны выполнять проверку передаваемых
параметров и генерировать исключения в случае ошибочных. Все функции реализуются
в четырех вариантах:
- без спецификации исключений;
- со спецификацией throw();
- с конкретной спецификацией с подходящим стандартным исключением;
- спецификация с собственным реализованным исключением.
Собственное исключение должно быть реализовано в трех вариантах: как пустой
класс, как независимый класс с полями-параметрами функции, как наследник от
стандартного исключения с полями.
Функция вычисляет площадь треугольника по трем сторонам
S=(p(p-a)(p-b)(p-c))^1/2,
где p=(a+b+c)/2.
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include "pch.h"
#include <iostream>
#include <stdexcept>
#include <string>
#include <cmath>
using namespace std;
class MyExcept1
{
};
class MyExcept2
{
    string msg;
public:
    MyExcept2(const string &s) : msg(s) {}
    const char *message() const { return msg.c_str(); }
};
 
class MyExcept3 : public invalid_argument
{
    double num;
public:
    MyExcept3(const string msg, double n) : invalid_argument(msg), num(n) {}
    double arg() const { return num; }
};
 
double root1(double a, double b, double c)
{
    return sqrt((a + b + c / 2)((a + b + c / 2) - a)((a + b + c / 2) - b)((a + b + c / 2) - c));
}
 
double root2(double a, double b, double c) throw()
{
    return pow((a + b + c / 2)((a + b + c / 2) - a)((a + b + c / 2) - b)((a + b + c / 2) - c), 0.5);
}
 
double root3(double a, double b, double c) throw(invalid_argument)
{
    if ((a + b + c / 2)((a + b + c / 2) - a)((a + b + c / 2) - b)((a + b + c / 2) - c) < 0.0)
        throw invalid_argument("Число под корнем отрицательное");
    return pow((a + b + c / 2)((a + b + c / 2) - a)((a + b + c / 2) - b)((a + b + c / 2) - c), 0.5);
}
 
double root4_1(double a, double b, double c) throw(MyExcept1)
{
    if ((a + b + c / 2)((a + b + c / 2) - a)((a + b + c / 2) - b)((a + b + c / 2) - c) < 0.0)
        throw MyExcept1();
    return pow((a + b + c / 2)((a + b + c / 2) - a)((a + b + c / 2) - b)((a + b + c / 2) - c), 0.5);
}
 
double root4_2(double a, double b, double c) throw(MyExcept2)
{
    if ((a + b + c / 2)((a + b + c / 2) - a)((a + b + c / 2) - b)((a + b + c / 2) - c) < 0.0)
        throw MyExcept2("Число под корнем отрицательное");
    return pow((a + b + c / 2)((a + b + c / 2) - a)((a + b + c / 2) - b)((a + b + c / 2) - c), 0.5);
}
 
void launcher(double(*func)(double, double, double))
{
    double a, b, c;
    cout << "Введите a=";
    cin >> a;
    cout << "Введите b=";
    cin >> b;
    cout << "Введите c=";
    cin >> c;
    cout << "Площадь= " << func(a, b, c) << endl;
}
 
int main()
{
    setlocale(LC_ALL, "rus");
    cout << "Функция вычисляет площадь\n";
 
    try
    {
        launcher(root1);
    }
    catch (...) {
        cout << "Произошло исключение в функции root1" << endl;
    }
 
    try
    {
        launcher(root2);
    }
    catch (...) {
        cout << "Произошло исключение в функции root2" << endl;
    }
 
    try
    {
        launcher(root3);
    }
    catch (invalid_argument &e) {
        cout << e.what() << endl;
    }
 
    try
    {
        launcher(root4_1);
    }
    catch (MyExcept1) {
        cout << "Произошло исключение MyExcept1 в функции root4_1" << endl;
    }
 
    try
    {
        launcher(root4_2);
    }
    catch (MyExcept2 &e) {
        cout << e.message() << endl;
    }
 
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.06.2019, 18:57
Ответы с готовыми решениями:

Выражение перед скобками вероятного вызова должно иметь тип функции (pointer-to-)
Здравствуйте! Постоянно возникает ошибка &quot;Выражение перед скобками вероятного вызова должно иметь тип функции (pointer-to-)&quot; у...

Выражение перед скобками вероятного вызова должно иметь тип функции (pointer-to-)
void paint(HDC hdc, HWND hwnd, int m1, int n1, int k1) { HBRUSH hBrush = CreateSolidBrush(RGB(m1, n1, k1)); HBRUSH hOldBRUSH =...

Ошибка: Выражение перед скобками вероятного вызова должно иметь тип функции (pointer-to-)
Выдаёт ошибку Выражение перед скобками вероятного вызова должно иметь тип функции (pointer-to-) при попытке нахождения определённого...

2
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
20.06.2019, 19:09
Лучший ответ Сообщение было отмечено жыжыжжыжы как решение

Решение

жыжыжжыжы, операторы умножения между скобками сами собой не расставятся
1
0 / 0 / 0
Регистрация: 16.10.2018
Сообщений: 11
20.06.2019, 22:25  [ТС]
Понял, принял, осознал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.06.2019, 22:25
Помогаю со студенческими работами здесь

Ошибка "выражение перед скобками вероятного вызова должно иметь тип функции pointer-to"
Не могу вывести ответ в файл потому что подчекивает calc(strline) и ему не нравится, &quot;что выражение перед скобками вероятного вызова...

Выражение перед скобками вероятного вызова должно иметь тип функции(-pointer to). Многофайловый проект
Имеется реализация сортировки слиянием, в виде одного файла проблем с работой нет. Я разделил файл на несколько, и помимо проблемы...

Выражение должно иметь тип класса
if (radioButton2.Checked == true) { variant = 2; } выдает ошибку: выражение должно иметь тип класса

Выражение должно иметь тип класса
Есть класс матрица, содержащий следующие поля: int rows, cols;//количество строк и столбцов vector &lt;vector &lt;float&gt;&gt;...

Выражение должно иметь тип указателя
что тут не так IClientEntity *player= I::EntList-&gt;GetClientEntity(I::Engine-&gt;GetLocalPlayer()); player-&gt;GetEyeAngles()-&gt;y =...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru