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

Ошибка компиляции. С++ функции

02.11.2021, 00:13. Показов 2387. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
first cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include "func.h"
#include <windows.h>
using namespace std;
 
int main()
{
    double a, b, x, y, k;
    int Z;
    cout << "Enter x: "; cin >> x;
    cout << "Enter y: "; cin >> y;
    cout << "Enter k: "; cin >> k;
    cout << "Enter Z(integer): "; cin >> Z;
    func(a, b);
    cout << a << endl;
    cout << b << endl;
    return 0;
}
second cpp
C++
1
2
3
4
5
6
7
8
9
#include "func.h"
#include <cmath>
 
void func(double &a, double &b, double y, double x, double k, int Z)
{
    const double pi = 3.14;
    a = (pow(k, 1 / 4)) / x + (exp(y - 1)) / abs(5 * k + pow(x, 3)) - cos(Z * pi / 180) + tan(15 * 180 / pi);
    b = (10 + cbrt(pow(y, 5) + 2 * x)) + 4 / pow((3 * y - x), 3) + (pow(abs(y - x), 3)) / 3;
}
h file
C++
1
2
#pragma once
void func(double, double);
Ошибка: использована неинициализированная переменная a,b в first cpp.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.11.2021, 00:13
Ответы с готовыми решениями:

Ошибка при компиляции функции
Суть задачи написать рекурсивную функцию вычисляющую факториал вот я вроде бы написал всё верно #include &lt;iostream&gt; using...

Ошибка при компиляции виртуальные функции
error LNK2001: неразрешенный внешний символ &quot;&quot;public: virtual float_thiscall Operator::getNumber(void)&quot; (?getNubmer@Operator@@UAEMXZ)&quot;...

Ошибка при компиляции вызова функции int86
#include &quot;dd.h&quot; int main() { union REGS in, out; int result; int int86(unsigned char,union REGS *__in,union...

29
0 / 0 / 0
Регистрация: 25.01.2021
Сообщений: 45
07.11.2021, 20:57  [ТС]
Студворк — интернет-сервис помощи студентам
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
#include <iostream>
#include <cmath>
using namespace std;
 
double fa(double x)
{
    double pi = 3.14159265358979323846, q = x * x, c = cos(q);
    return cbrt(c * c * c + fabs(10. * x - 6.)) + sin(pi / 2.);
}
 
double fb(double x, double y)
{
    double eps = 1.e-9;
    double t = x / (x + fabs(8. * y * y * y));
    double s = x + y;
 
    if (fabs(t) < eps) t = 0.;
    if (t < 0. || s == 0.) throw "b not determined\nres not determined\n";
    double u = x * x + x * 10. * y / (s * s) + exp(5.);
    if (u > eps) return sqrt(t) - pow(u, 1. / 5.);
    else if (u < eps) return sqrt(t) + pow(-u, 1. / 5.);
    else return sqrt(t);
}
 
int main()
{
    double x, y;
    cout << "Enter x,y:\n";
    cin >> x >> y;
    try {
        double res = 13. * fa(x) - 10. * fb(x, y);
        cout << "b=" << fb(x, y) << "\n";
        cout << "result=" << res << "\n";
    }
    catch (char const* msg) {
        cout << msg;
    }
 
    system("pause");
    return 0;
}
Output:
Enter x,y:
1
1
b=-2.39765
result=57.8805
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
07.11.2021, 21:04
d1spimel, возьмите код из сообщения#14 и проверьте

там была ошибочка, она уже исправлена
0
0 / 0 / 0
Регистрация: 25.01.2021
Сообщений: 45
07.11.2021, 21:11  [ТС]
Да, все круто, извините не прочитал ваше сообщение про переменную "t". Последний вопрос, а почему в результате нет дробной части?
Изображения
 
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
07.11.2021, 21:23
Цитата Сообщение от d1spimel Посмотреть сообщение
почему в результате нет дробной части
какой код даёт такой результат ?

результаты работы кода из сообщения#14:
Enter x,y:
1 1
b=147.462
result=-1440.71

добавляйте ещё одно условие проверки (которое я пропустил - см.сообщение#16) и показывайте что получилось
1
0 / 0 / 0
Регистрация: 25.01.2021
Сообщений: 45
07.11.2021, 21:32  [ТС]
по условию задания b^2, а не b^1. 31 строка.

Добавлено через 7 минут
Цитата Сообщение от d1spimel Посмотреть сообщение
Последний вопрос, а почему в результате нет дробной части?
Решил путем добавления setprecision. Спасибо за помощь.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
07.11.2021, 21:40
Цитата Сообщение от d1spimel Посмотреть сообщение
по условию задания b^2, а не b^1
исправьте. вводим переменную 'b', чтобы не вызывать функцию fb() дважды. переменную 'a' тоже добавим для комплекта
C++
1
2
3
4
5
6
7
8
9
10
    double x, y, a, b, res;
    cout << "Enter x,y:\n";
    cin >> x >> y;
    try {
        a=fa(x);
        b=fb(x,y);
        res=13.*a-10.*b*b;
        // cout << "b=" << b << "\n";
        cout << "result=" << res << "\n";
    }
1
0 / 0 / 0
Регистрация: 25.01.2021
Сообщений: 45
07.11.2021, 21:42  [ТС]
Цитата Сообщение от Yetty Посмотреть сообщение
ответьте на заданный ранее вопрос
Этот вопрос?
Цитата Сообщение от Yetty Посмотреть сообщение
какой код даёт такой результат ?
b^2, будет давать такой результат.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
07.11.2021, 21:48
d1spimel, я уже разобрался и снял вопрос, жду от Вас функцию fb() с добавлением пропущенной проверки
1
0 / 0 / 0
Регистрация: 25.01.2021
Сообщений: 45
07.11.2021, 21:52  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
double fb(double x, double y)
{
    double eps = 1.e-9;
    double t = x / (x + fabs(8. * y * y * y));
    double s = x + y;
 
    if (fabs(t) < eps) t = 0.;
    if (t < 0. || s == 0. || x + fabs(8. * y * y * y) == 0) throw "b not determined\nres not determined\n";
    double u = x * x + x * 10. * y / (s * s), e = exp(5.);
    if (u > eps) return sqrt(t) - pow(u, 1. / 5.) + e;
    else if (u < eps) return sqrt(t) + pow(-u, 1. / 5.) + e;
    else return sqrt(t) + e;
}
Так можно сделать? Вы уже прям как преподаватель)
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
07.11.2021, 22:20
Цитата Сообщение от d1spimel Посмотреть сообщение
Так можно сделать?
нет, т.к. деление происходит раньше в строке 4. кроме того вещественные числа сравниваются с помощью малого числа eps

Добавлено через 17 минут
d1spimel, наверное можно как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
double fb (double x, double y)
{
    double z, s, t=0., eps=1.e-9;
    
    z=x+fabs(8.*y*y*y);
    if(z<=-eps || z>=eps) t=x/z;
    s=x+y;
    
    if(fabs(t)<eps) t=0.;
    
    if(fabs(z)<eps || t<0. || s==0.) throw "b not determined\nresult not determined\n";
    double u=x*x+x*10.*y/(s*s), e=exp(5.);
    if(u>eps) return sqrt(t)-pow(u,1./5.)+e;
    else if(u<eps) return sqrt(t)+pow(-u,1./5.)+e;
    else return sqrt(t)+e;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.11.2021, 22:20
Помогаю со студенческими работами здесь

Ошибка компиляции при вызове виртуальной функции
Здравствуйте. Сильно не плюйтесь, в С я не силен. Пишу на джаве, но попал в руки код, в котором нужно разобраться. Не пойму в чем...

Ошибка компиляции при вызове функции strcpy
Подскажите пожалуйста чего он ругается

Ошибка компиляции при неправильных входных параметрах функции
Доброго времени суток, уважаемые форумчане! Возник следующий вопрос. Пусть имеется некоторый класс class MyClass { public: ...

Ошибка сборки при раздельной компиляции шаблонной функции
Помогите с ошибкой, никак не могу найти решение #pragma once #include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;string&gt; ...

Явная специализация шаблона функции - ошибка на этапе компиляции
Всем привет, читаю книгу С. Прата и пытаюсь скомпилировать шаблонную функцию с явной специализацией, но на этапе компиляции вылезают...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru