1

Тема: компілятор видає помилку

#include <vcl> 
#include <conio.h>
#include <iostream>
#include <iomanip> 
#include <math.h>
using namespace std;
double Fn_b(double,double,double);
double Fn_a(double, double, double,double);
int main()
{
        cout.precision(3);
        cout.setf(ios_base::fixed);
        SetConsoleOutputCP(1251);

        double x,y,z,b,bb,b1,b2,b3,a,aa,a1,a2,a3;
        int Nv;
        cout<<"Введіть варіант : "<<endl;
        cin>>Nv;
        x=1.53*Nv+0.5;
        y=2.7*Nv+1.5;
        z=2.15*Nv+1.5;
        cout<<"Значення x = "<<setw(7)<<x<<endl;
        cout<<"Значення y = "<<setw(7)<<y<<endl;
        cout<<"Значення z = "<<setw(7)<<z<<endl<<endl;

        cout<<"Завдання 1.1.Обчислення значень математичних функцій"<<endl<<endl;
        b1 = x * x + tan(pow(y + z, 2));    
        cout << "b1 = " << setw(6) << b1 << endl;
        b2 = -0.35 * z - pow(sin(pow(x, 3)), 2);
        cout << "b2 = " << setw(6) << b2 << endl;
        b3 = exp((x + y) / z);
        cout << "b3 = " << setw(6) << b3 << endl<<endl;
        b = y * (b1/ b2 + b3);
        cout << "b[] = " << setw(7) << b << endl;
        bb = y * ((x*x+tan(pow(y + z, 2)))/(-0.35*z-pow(sin(pow(x,3)),2))+exp((x+y)/z));
        cout<<"b'[] = "<<setw(7)<<bb<<endl;
        cout << "b\" [] = " << setw(7) << Fn_b(x, y, z) <<endl<<endl;

        a1 = pow(x + y, 2);
        cout << "a1 = " <<setw(8)<< a1 << endl;
        a2 = (x + y * y) * pow(fabs(b * b + z), 0.3);
        cout << "a2 = " << setw(8) << a2 << endl;
        a3 = exp(z - 2.3) + y * y;
        cout << "a3 = " << setw(8) << a3 << endl<<endl;
        a = a1 * a2 / a3;
        cout << "a []=" << setw(9) << a << endl;
        aa = pow(x + y, 2) * (x + y * y) * pow(fabs(b * b + z), 0.3) / (exp(z - 2.3) + y * y);
        cout << "a' [] = "<< setw(9) << aa << endl;
        cout << "a\" [] = "<< setw(9) << Fn_a(x, y, z, b) << endl;
        getch();
        return 0;

        double Fn_b(double x,double y,double z);
        {
            double b1 = x * x + tan(pow(y + z, 2)); 
            double b2 = -0.35 * z - pow(sin(pow(x, 3)), 2);
            double b3 = exp((x + y) / z); 
            return y *(b1 / b2 + b3);

            double Fn_a(double x, double y, double z, double b);
            {
                double a1 = pow(x + y, 2);
                double a2 = (x + y * y) * pow(fabs(b * b + z), 0.3);
                double a3 = exp(z - 2.3) + y * y;
                return a1 * a2 / a3;
            }

        }
}

компілятор видає таку помилку
[Linker Error] Unresolved external 'Fn_a(double , double , double , double )' referenced from D:\! STUDY\C\!2\LABOOP.OBJ"
[Linker Error] Unresolved external 'Fn_b(double , double , double)' referenced from D:\! STUDY\C\!2\LABOOP.OBJ"

2

Re: компілятор видає помилку

Винесіть функцію Fn_a і Fn_b за межі функції main

так спробуйте
#include <vcl> 
#include <conio.h>
#include <iostream>
#include <iomanip> 
#include <math.h>
using namespace std;
double Fn_b(double,double,double);
double Fn_a(double, double, double,double);
int main()
{
        cout.precision(3);
        cout.setf(ios_base::fixed);
        SetConsoleOutputCP(1251);
 
        double x,y,z,b,bb,b1,b2,b3,a,aa,a1,a2,a3;
        int Nv;
        cout<<"Введіть варіант : "<<endl;
        cin>>Nv;
        x=1.53*Nv+0.5;
        y=2.7*Nv+1.5;
        z=2.15*Nv+1.5;
        cout<<"Значення x = "<<setw(7)<<x<<endl;
        cout<<"Значення y = "<<setw(7)<<y<<endl;
        cout<<"Значення z = "<<setw(7)<<z<<endl<<endl;
 
        cout<<"Завдання 1.1.Обчислення значень математичних функцій"<<endl<<endl;
        b1 = x * x + tan(pow(y + z, 2));    
        cout << "b1 = " << setw(6) << b1 << endl;
        b2 = -0.35 * z - pow(sin(pow(x, 3)), 2);
        cout << "b2 = " << setw(6) << b2 << endl;
        b3 = exp((x + y) / z);
        cout << "b3 = " << setw(6) << b3 << endl<<endl;
        b = y * (b1/ b2 + b3);
        cout << "b[] = " << setw(7) << b << endl;
        bb = y * ((x*x+tan(pow(y + z, 2)))/(-0.35*z-pow(sin(pow(x,3)),2))+exp((x+y)/z));
        cout<<"b'[] = "<<setw(7)<<bb<<endl;
        cout << "b\" [] = " << setw(7) << Fn_b(x, y, z) <<endl<<endl;
 
        a1 = pow(x + y, 2);
        cout << "a1 = " <<setw(8)<< a1 << endl;
        a2 = (x + y * y) * pow(fabs(b * b + z), 0.3);
        cout << "a2 = " << setw(8) << a2 << endl;
        a3 = exp(z - 2.3) + y * y;
        cout << "a3 = " << setw(8) << a3 << endl<<endl;
        a = a1 * a2 / a3;
        cout << "a []=" << setw(9) << a << endl;
        aa = pow(x + y, 2) * (x + y * y) * pow(fabs(b * b + z), 0.3) / (exp(z - 2.3) + y * y);
        cout << "a' [] = "<< setw(9) << aa << endl;
        cout << "a\" [] = "<< setw(9) << Fn_a(x, y, z, b) << endl;
        getch();
        return 0;
 

}
            double Fn_a(double x, double y, double z, double b);
            {
                double a1 = pow(x + y, 2);
                double a2 = (x + y * y) * pow(fabs(b * b + z), 0.3);
                double a3 = exp(z - 2.3) + y * y;
                return a1 * a2 / a3;
            }
        double Fn_b(double x,double y,double z);
        {
            double b1 = x * x + tan(pow(y + z, 2)); 
            double b2 = -0.35 * z - pow(sin(pow(x, 3)), 2);
            double b3 = exp((x + y) / z); 
            return y *(b1 / b2 + b3);
 

 
        }

3 Востаннє редагувалося koala (28.10.2016 13:37:55)

Re: компілятор видає помилку

Знаєте, для чого використовуються відступи? Щоб бачити, що де знаходиться. У вас немає функцій Fn_b і Fn_b на глобальному рівні, вони знаходяться всередині main (а Fn_a - ще й всередині Fn_b), що добре видно по відступах. Винесіть їх з main і одна з одної - і помилка буде виправлена.

А ще я помітив, що ви ніколи не коментуєте теми, створені вами. Це так навмисно?

4 Востаннє редагувалося 0x9111A (28.10.2016 13:35:29)

Re: компілятор видає помилку

Криво скопіпастили
Фікс:

        return 0;
+ } 
        double Fn_b(double x,double y,double z);
        {
...
            return y *(b1 / b2 + b3);
 + }
            double Fn_a(double x, double y, double z, double b);
            {
...
                return a1 * a2 / a3;
            }
 
-        }
- }
Подякували: #Sparta1