Solving C++ Function Calling Error in Code

  • Context: C/C++ 
  • Thread starter Thread starter keith03
  • Start date Start date
  • Tags Tags
    C++ Function
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
7 replies · 4K views
keith03
Messages
31
Reaction score
0
Hello,

I have been pretty good with this stuff...but this is the umteenth time I have run into this error. I have gone around it by just using the direct function in the code, but I really really want to master this function calling. My compilation error is always term does not evaluate to a function taking 1 (or two) arguments. Where am I going wrong? I did the current function that comes up with the error by the book. literally. Here is the code. The Error comes up at the Add_num (N1_n,N2_n).


#include<iostream>
#include<cmath>
#include<math.h>
#include"Formulas.h"
double SQRT_NORM (double a);

using namespace std;

int main ()

{
bool again = false;
do
{
double N1, N2, N1_n, N2_n, Newz, Add_num, USR_SQRT;
char choice;


count<<"Enter a first of two positive numbers:"<<endl;
cin>>N1;
N1=N1_n;
count<<"Enter the second number of two positive numbers:"<<endl;
cin>>N2;
N2=N2_n;


Add_num (N1_n,N2_n); HERE IS WHERE THE ERROR IS REPORTED

SQRT_NORM (Newz);

count<<"The Magnitude of the complex number is:"<<endl;


count<< "\n Would you like to run the program again?";
cin>> choice;


if (choice == 'y')
{
again = true;
system ("cls");
}
else
again = false;
} while (again);
return 0;

}

//Below are the formulas used in this lab

double Add_num (double a, double b)
{
double Add_num;
Add_num = a+b;
return Add_num;
}

double SQRT_NORM (double a)

{
double SQRT_NORM;
SQRT_NORM = sqrt (a);
return SQRT_NORM;
}
 
Physics news on Phys.org
It's missing the function prototype

double Add_num (double a, double b);
 
keith03 said:
Hello,

I have been pretty good with this stuff...but this is the umteenth time I have run into this error. I have gone around it by just using the direct function in the code, but I really really want to master this function calling. My compilation error is always term does not evaluate to a function taking 1 (or two) arguments. Where am I going wrong? I did the current function that comes up with the error by the book. literally. Here is the code. The Error comes up at the Add_num (N1_n,N2_n).


Code:
#include<iostream>
#include<cmath>
#include<math.h>
#include"Formulas.h"
double SQRT_NORM (double a);

using namespace std;

int main ()

{
   bool again = false;
   do
   {
   double N1, N2, N1_n, N2_n, Newz, Add_num, USR_SQRT;
   char choice;


   cout<<"Enter a first of two positive numbers:"<<endl;
   cin>>N1;
   N1=N1_n;
   cout<<"Enter the second number of two positive numbers:"<<endl;
   cin>>N2;
   N2=N2_n;
   

 [B]  Add_num (N1_n,N2_n);[/B] HERE IS WHERE THE ERROR IS REPORTED
  
   SQRT_NORM (Newz);

   cout<<"The Magnitude of the complex number is:"<<endl;
   

   cout<< "\n Would you like to run the program again?";
   cin>> choice;


   if (choice == 'y')
	{
		again = true;
		system ("cls");
	}
	else
		again = false;
	} while (again);
	return 0;

}

//Below are the formulas used in this lab

double Add_num (double a, double b)
{
	double Add_num;
	Add_num = a+b;
	return Add_num;
}

double SQRT_NORM (double a)

{
	double SQRT_NORM;
	SQRT_NORM = sqrt (a);
	return SQRT_NORM;
}
Please note how I embedded in code blocks. You can do this manually or use the handy code block icon that is just above the window in which you type a post.

Several problems here:
(1) You declared Add_num as a variable, not a function. This is the cause of the immediate problem.

(2) Even if you had declared Add_num correctly, your use of the function would accomplish *nothing*. The results are not being assigned to anything.

(3) The same goes for the use of SQRT_NORM.

(4) Nothing of interest is output.

(5) Using the same name of a function and the name of a variable inside the function is a very bad idea.

(6) Using ALL_CAPS for a function name is, in most places, strongly discouraged or even forbidden.
 
Borg is right. You are attempting to assign an left-hand-value to an right-hand-value.

The assignment goes the other way.

Use N1_n = N1;
and N2_n = N2;
 
I could really use some help by seeing this done properly. I will then be able to match some verbage up too. I found the lack of prototype as soon as I posted. How do I make this a function, and not a variable? Please bear with the lack of understanding.
 
This should work, more or less

Code:
#include<iostream>
#include<cmath>

using namespace std;

double SQRT_NORM (double a);
double Add_num (double a, double b);

int main ()
{
   bool again = false;
   do
   {
   double N1, N2;
   char choice;   cout<<"Enter a first of two positive numbers:"<<endl;
   cin>>N1;
   cout<<"Enter the second number of two positive numbers:"<<endl;
   cin>>N2;
   

   double sum = Add_num (N1,N2);
  
   double root = SQRT_NORM (sum);

   cout<<"The sum is:"<< sum << ", its square root is: " << root << endl;
   
   cout<< "Would you like to run the program again?";
   cin>> choice;   if (choice == 'y')
	{
		again = true;
		system ("cls");
	}
	else
		again = false;
	} while (again);
	return 0;

}

//Below are the formulas used in this lab

double Add_num (double a, double b)
{
	double var;
	var = a+b;
	return var;
}

double SQRT_NORM (double a)
{
	double var;
        var= sqrt (a);
	return var;
}
 
That is it! I figured it out on my own, but it is good to see that I didnt just tmake it work by some improper loophole. I have the whole thing finished now. The last part is to write a stub program. I have never done that before. I am assuming that I could give the user an option for a "self test"? I am assuming that I would take a value, run it through the program, reverse it, and hope that the origonal value is returned?