Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 FUNCTIONS - I Chapter 5 Functions help us write more complex programs.

Similar presentations


Presentation on theme: "1 FUNCTIONS - I Chapter 5 Functions help us write more complex programs."— Presentation transcript:

1 1 FUNCTIONS - I Chapter 5 Functions help us write more complex programs

2 Agenda Introducing Functions Tell me a story– void Functions Parameters and Arguments Random numbers Do the Math– value returning Functions Return statement Prototypes and file layout It’s Logical—bool Functions 2

3 3 Functions are building blocks… Each box is a “mini-program” of 5-20 lines of code

4 We use functions… When a task (sequence of code) gets routine and needs to be repeated several times in a program. When we want to hide details of a complicated calculation from the main flow of the program As a tool to break down complicated problems into easily solvable pieces 4

5 A Simple Function (to begin a story) 5 Function calls Function definition

6 A function call is a “controlled jump” Program execution always begins in main( ) A function call tells computer to jump into another part of the file (where the definition is) When finished, the computer returns to the line following the function call and continues on thru the program 6

7 Controlled Jump Illustration 7 Start Once upon a time, Console Output

8 Function Syntax Rules The function call has the same name as the function definition The function definition must appear before the function call in it’s own separate block of code Curly braces mark the beginning and end of a function definition A function definition cannot be put inside another function definition 8

9 What the heck is “void”? The first line of a function definition is called the function head or header: void opening( ) The syntax for the function header is: return-type function-name ( parameters ) The word void indicates the function does not return any data when it finishes Part 2 deals with non-void or value-returning functions Notice int main( )? This allows main( ) to return a 0 when it completes successfully. Also, right now, we are not using any parameters 9

10 Correct Program Layout 10 These are the “building blocks” of code Do not overlap the blocks Main( ) is also a function definition!!

11 Incorrect Program Layout 11 These Function Blocks are Nested— Syntax Error!!

12 Parameters and Arguments Information can be given to a function during the function call This allows a variety of function behaviors Makes functions more useful Information is passed from an argument in the function call to a parameter in the definition We’ll modify our program to show this: opening( )  opening(2); // where 2 is an argument We’ll also have to modify the function definition  12

13 Passing information into a function 13 2 is the argument m is the parameter No matter what argument is given, parameter m get’s a copy of it This morning, Console Output

14 Other Argument Possibilities 14 This morning, Once upon a time, Once upon a time, This morning, This morning, Console Output Each function call demonstrates a different argument passed to parameter m in opening( )

15 What is a parameter again? 15 The parameter m receives whatever argument is given in the function call. When the argument is a variable, the value of the variable is given to m Here m in main( ) is different from m in opening( ). Since they live in different functions, they are like separate variables.

16 The story continues… In the lab, you will get to write your own functions to tell a story And you’ll be able to select a variety of components using a random number generator 16

17 Random Numbers!! Sometimes we need the computer to pick a number “at random” Very common in video games and computer simulations Requires a different kind of function…one that returns a value so we can use it later. int x; x = rand( ); x now holds a “pseudo” random number between +/-2 billion, for example: 230923, 102912009, 1942390439, -2039329, etc 17 Notice: This function call is in an assignment statement

18 +/- 2 billion? The output of rand( ) is not very useful Too broad a range To make useable, we use modulus (%) to chop it down: Example: 25678%10 = ? 23042309%10 = ? -32098098%10 = ? Using %10 gives us a random value between 0 and 9 18

19 To Randomize… Problem: rand( ) by itself always gives the same random number. Solution: Start your program with a call to srand(time(NULL)); This starts the math formula in rand( ) off with a unique #, The number of seconds past Jan 1, 1950 (or so) 19 Plug x in here and now the random number selects the opening

20 Start your creative juices… Finish Lab4Function1.cpp Next: Part 2, Value Returning functions 20

21 Before starting Part 2… a)Function Call _______ b)Function Definition_______ c)Parameter_______ d)Argument_______ e)Local Variable_______ f)Return Type_______ 21

22 22 Part2 Value Returning Functions Useful in math and other operations These functions compute a result and return it For standard math, #include We know that 2 4 = 2*2*2*2 = 16 In C++ we could say pow(2.0, 4); But nothing will be displayed!!!

23 Show your Result Unlike for void functions, when a math function returns, the original function call is replaced with the result. pow(2.0, 4); To show the result you must either cout or store it in a variable: A) cout<<pow(2.0, 4) ; B) z = pow(2.0, 4); cout<<z ; 23 16 Notice, 2 arguments BUT Don’t cout a void function: cout<<opening( ); ERROR

24 For the Math Whiz… 24

25 25 Standard C++ Library The Standard C++ library is a collection of pre-defined functions which are accessed through header files (such as, etc..) Notice that these pre-defined functions don’t show the processing step (function definition): we do not need to know how the function works, just what it does.

26 Making your own VRFs When the Standard Library doesn’t have what you need, you can make your own. A value returning function is very similar to a void function with only two small changes: 1.Instead of void before the function name, we put the data type of the return value. 2.At the end of the function definition, we put a return statement to return the result. 26

27 27 EXAMPLE—Dollar Value Remember Lab 2? We can use a function call to calculate dollars: dollars = dollarValue( nickels, dimes); We are now going to write the definition of the function. But first…

28 Use the Function Definition Checklist When you are given an example function call, there are a few steps to follow before writing the function definition to make sure your code works. 1.What is the name of the function? ________ 2.What are the parameters it needs (and their type)? __________________________ 3.What is the return-type of the function (the type of the result it computes)?___________________ 4.Write the function header __________________ All of the answers can be determined from the previous slide!!! 28 float dollarValue( int n, int d ) dollarValue Number of nickels and dimes, both integers The variable dollar gets the result and it’s float

29 Now we can write the definition 29 Type of return value Consistent with return-type value is a “local variable” return-type

30 30 return… It terminates the execution of the function The function’s return-type specifies the data type of the values that it would return to the calling program Its syntax is : return expression ; where the data-type of the expression value = function's return-type

31 31 Let’s try another! Define a function named calcSize; the function is passed a character argument representing a size code and the function returns the size in inches (an integer) according to the following chart and sample function calls:

32 Function Definition Checklist 1.What is the name of the function? ________ 2.What are the parameters it needs (and their type)? __________________________ 3.What is the return-type of the function (the type of the result it computes)?___________________ 4.Write the function header __________________ All of the answers can be determined from the previous slide!!! 32

33 Now Write the Function Definition 33

34 34 And another! Write a function that takes arguments for a user’s height and weight, and then computes their hat size according the the following formula: Hat size = 2.9 times the weight in pounds divided by height in inches Here is an example function call: hsize = hat(weight, height); Here is some example test data: weight=150, height=70  hsize=6.2

35 Function Definition Checklist 1.What is the name of the function? ________ 2.What are the parameters it needs (and their type)? __________________________ 3.What is the return-type of the function (the type of the result it computes)?___________________ 4.Write the function header __________________ All of the answers can be determined from the previous slide!!! 35

36 Now Write the Function Definition 36

37 Bool Functions for Logic A bool function is a special type of VRF bool data type has only two values: true, false This means a function that returns a bool value can be used in an if-statement  37

38 A bool function example Suppose you want to check if n is between 0 and 100. You could say Or you could put the condition in a bool function: And use that function instead of the boolean logic 38

39 39 Time to explore on your own… Finish Lab4Function2.cpp Practice will help you master this topic Recommend you solve one more function from the Assignment 4 handout


Download ppt "1 FUNCTIONS - I Chapter 5 Functions help us write more complex programs."

Similar presentations


Ads by Google