f(x) = 2x + 5In mathematics, the symbol 'x' is a placeholder, and when you run the function for a value, you "plug in" the value in place of x. Consider the following equation, which we then simplify:
y = f(10) // must evaluate f(10) y = 2 * 10 + 5 // plug in 10 for x y = 20 + 5 y = 25 // so f(10) gives the answer 25In programming, we would say that the call f(10) returns the value 25.
functionName(argumentList)where the argumentList is a comma-separated list of arguments (data being sent into the function). Use the call anywhere that the returned answer would make sense.
double x = 9.0, y = 16.0, z; z = sqrt(36.0); // sqrt returns 6.0 (gets stored in z) z = sqrt(x); // sqrt returns 3.0 (gets stored in z) z = sqrt(x + y); // sqrt returns 5.0 (gets stored in z) cout << sqrt(100.0); // sqrt returns 10.0, which gets printed cout << sqrt(49); // because of automatic type conversion rules // we can send an int where a double is expected // this call returns 7.0 // in this last one, sqrt(625.0) returns 25.0, which gets sent as the // argument to the outer sqrt call. This one returns 5.0, which gets // printed cout << sqrt(sqrt(625.0));Try this code here
#include <iostream> // common I/O routines #include <cmath> // common math functions #include <cstdlib> // common general C functions
return-type function-name( parameter-list );
// GOOD function prototypes int Sum(int x, int y, int z); double Average (double a, double b, double c); bool InOrder(int x, int y, int z); int DoTask(double a, char letter, int num); double Average (double, double, double); // Note: no parameter names here // okay on a declaration // BAD prototypes (i.e. illegal) double Average(double x, y, z); // Each parameter must list a type PrintData(int x); // missing return type int Calculate(int) // missing semicolon int double Task(int x); // only one return type allowed!
return-type function-name( parameter-list ) { function-body (declarations and statements) }
return expression;
int Sum(int x, int y, int z) // add the three parameters together and return the result { int answer; answer = x + y + z; return answer; } double Average (double a, double b, double c) // add the parameters, divide by 3, and return the result { return (a + b + c) / 3.0; }
bool InOrder(int x, int y, int z) // answers yes/no to the question "are these parameters in order, // smallest to largest?" Returns true for yes, false for no. { if (x <= y && y <= z) return true; else return false; }
char GetALetter(); // no parameters void PrintQuotient(int x, int y); // void return type void KillSomeTime(); // both