Presentation is loading. Please wait.

Presentation is loading. Please wait.

C++ Programming Lecture 9 Functions – Part I By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.

Similar presentations


Presentation on theme: "C++ Programming Lecture 9 Functions – Part I By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department."— Presentation transcript:

1 C++ Programming Lecture 9 Functions – Part I By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department

2 The Hashemite University2 Outline Introduction. C++ program components. Math library functions. Functions: Prototype. Definition. Function call. Header files.

3 The Hashemite University3 Introduction Till now we have learned the basic concepts of C++. All the programs that we have written are simple, have few lines of code, and flat (i.e. all the code resides inside the main() body). But: What about large programs? What about code reuse (when the same code block is used many times within the program)? Divide and conquer technique: Construct a program from smaller pieces or components Each piece more manageable than the original program

4 The Hashemite University4 Program Components in C++ I C++ modules are functions and classes. Programs are written by: Combining new functions with “prepackaged” functions in the C++ standard library. The standard library provides a rich collection of functions. Functions are invoked by a function call A function call specifies the function name and provides information (as arguments) that the called function needs. Similar to the boss to worker analogy: A boss (the calling function or caller) asks a worker (the called function) to perform a task and return (i.e., report back) the results when the task is done.

5 The Hashemite University5 Program Components in C++ II Function definition: It is the body of the function which include all the processing done by the function. It makes use of the parameters (arguments) passed by the function call and specifies what will be returned by the function (result of the function). Only written once. These statements are hidden from other functions. Boss to worker analogy: The boss does not know how the worker gets the job done; he just wants it done

6 The Hashemite University6 Math Library Functions I Math library functions Allow the programmer to perform common mathematical calculations Are used by including the header file or Functions called by writing functionName (argument) Example cout << sqrt( 900.0 ); Calls the sqrt (square root) function. The preceding statement would print 30 The sqrt function takes an argument of type double and returns a result of type double, as do all functions in the math library

7 The Hashemite University7 Math Library Functions II All math library functions return double values (as a result). Function arguments can be Constants sqrt( 4 ); Variables sqrt( x ); Expressions sqrt( sqrt( x ) ) ; sqrt( 3 - 6x );

8 The Hashemite University8 Math Library Functions III acos(x) inverse cosine, -1 <= x <= +1, returns value in radians in range 0 to PI asin(x) inverse sine, -1 <= x <= +1, returns value in radians in range 0 to PI atan(x) inverse tangent, returns value in radians in range -PI/2 to PI/2 cos(x) returns cosine of x, x in radians sin(x) returns sine of x, x in radians tan(x) returns tangent of x, x in radians exp(x) exponential function, e to power x log(x) natural log of x (base e), x > 0 sqrt(x) square root of x, x >= 0 fabs(x) absolute value of x floor(x) largest integer not greater than x ceil(x) smallest integer not less than x. pow(x, y) returns x y. fmod(x, y) computes the modulus of floating point numbers. Note: Have a look at Figure 3.2 in chapter 3.

9 The Hashemite University9 Functions Allow the programmer to modularize a program. Local variables Known only in the function in which they are defined. All variables declared in function definitions are local variables. Parameters Local variables passed when the function is called that provide the function with outside information.

10 The Hashemite University10 1// Fig. 3.3: fig03_03.cpp 2// Creating and using a programmer-defined function 3#include 4 5using std::cout; 6using std::endl; 7 8int square( int ); // function prototype 9 10int main() 11{ 12 for ( int x = 1; x <= 10; x++ ) 13 cout << square( x ) << " "; 14 15 cout << endl; 16 return 0; 17} 18 19// Function definition 20int square( int y ) 21{ 22 return y * y; 23} 1 4 9 16 25 36 49 64 81 100 Notice how parameters and return value are declared.

11 The Hashemite University11 Function Definitions Create customized functions to: Take in data Perform operations Return the result Format for function definition: return-value-type function-name ( parameter-list ) { declarations and statements } Function name is any valid identifier. Example : int square( int y) { return y * y; }

12 The Hashemite University12 Function Prototypes I Used by the compiler to check the validity of the function call within the main program (function name, its return data type, number of arguments, their data types, and their order). Function prototype consist of: Function name Parameters Information the function takes in, can be void. Return type Type of information the function passes back to caller (default int ) void signifies the function returns nothing

13 The Hashemite University13 Function Prototypes II If you have passed arguments of different data types from the one specified in the function prototype and definition, the compiler will convert them to the proper data type for the function (implicit casting). However, sometimes implicit casting is not possible. In this case the compiler will give a syntax error. Not following the Promotion Rule in C++ an cause errors in the obtained results. E.g. converting from double to integer causes data loss but converting integer to double is not. Function prototype is Only needed if function definition comes after the function call in the program (after the main()). Another example: int maximum( int, int, int ); Takes in 3 int s Returns an int

14 The Hashemite University14 Functions Returning Results Three ways to return to the point at which we have called a function: Reaching closing brace } of the function definition (the function return nothing).. Executing return; (the function returns nothing). Executing return result; (the function returns a specific result).

15 The Hashemite University15 1// Fig. 3.4: fig03_04.cpp 2// Finding the maximum of three integers 3#include 4 5using std::cout; 6using std::cin; 7using std::endl; 8 9int maximum( int, int, int ); // function prototype 10 11int main() 12{ 13 int a, b, c; 14 15 cout << "Enter three integers: "; 16 cin >> a >> b >> c; 17 18 // a, b and c below are arguments to 19 // the maximum function call 20 cout << "Maximum is: " << maximum( a, b, c ) << endl;

16 The Hashemite University16 21 22 return 0; 23} 24 25// Function maximum definition 26// x, y and z below are parameters to 27// the maximum function definition 28int maximum( int x, int y, int z ) 29{ 30 int max = x; 31 32 if ( y > max ) 33 max = y; 34 35 if ( z > max ) 36 max = z; 37 38 return max; 39} Enter three integers: 22 85 17 Maximum is: 85 Enter three integers: 92 35 14 Maximum is: 92 Enter three integers: 45 19 98 Maximum is: 98

17 The Hashemite University17 Header Files Two types: Standard (prepackaged) Header files Contain function prototypes for library functions,, etc. Load with #include Example: #include Custom header files Defined by the programmer Save as filename.h Loaded into program using #include "filename.h“ Have a look at Figure 3.6 in chapter 3.

18 The Hashemite University18 Additional Notes This lecture covers the following material from the textbook: Chapter 3: Sections 3.1 – 3.7


Download ppt "C++ Programming Lecture 9 Functions – Part I By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department."

Similar presentations


Ads by Google