0% found this document useful (0 votes)
24 views42 pages

C++ Programming: From Problem Analysis To Program Design,: Third Edition

The document discusses user-defined functions in C++. It explains that functions allow complex programs to be divided into manageable pieces. It then discusses predefined functions like pow(), sqrt(), and floor(), and how to define, call, and use value-returning user-defined functions, including passing arguments, return types, and flow of execution. An example program is provided to find the largest of 10 input numbers using a user-defined larger() function.

Uploaded by

rahafnsh33
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views42 pages

C++ Programming: From Problem Analysis To Program Design,: Third Edition

The document discusses user-defined functions in C++. It explains that functions allow complex programs to be divided into manageable pieces. It then discusses predefined functions like pow(), sqrt(), and floor(), and how to define, call, and use value-returning user-defined functions, including passing arguments, return types, and flow of execution. An example program is provided to find the largest of 10 input numbers using a user-defined larger() function.

Uploaded by

rahafnsh33
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 42

C++ Programming:

From Problem Analysis


to Program Design, Third Edition

Chapter 6: User-Defined Functions I


Objectives

In this chapter you will:


• Learn about standard (predefined) functions
and discover how to use them in a program
• Learn about user-defined functions
• Examine value-returning functions, including
actual and formal parameters
• Explore how to construct and use a value-
returning, user-defined function in a program
C++ Programming: From Problem Analysis to Program Design, Third Edition 2
Functions
• Functions are like building blocks
• They allow complicated programs to be
divided into manageable pieces
• Some advantages of functions:
− A programmer can focus on just that part of
the program and construct it, debug it, and
perfect it
− Different people can work on different
functions simultaneously
− Can be used in more than one place in a
program or in different programs
C++ Programming: From Problem Analysis to Program Design, Third Edition 3
Predefined Functions

• In algebra, a function is defined as a rule or


correspondence between values, called the
function’s arguments, and the unique value of
the function associated with the arguments
• If f(x) = 2x + 5, then f(1) = 7, f(2) = 9, and
f(3) = 11
• 1, 2, and 3 are arguments
• 7, 9, and 11 are the corresponding values

C++ Programming: From Problem Analysis to Program Design, Third Edition 4


Predefined Functions (continued)

• Some of the predefined mathematical functions


are:
sqrt(x)
pow(x,y)
floor(x)
• Predefined functions are organized into
separate libraries
• I/O functions are in iostream header
• Math functions are in cmath header
C++ Programming: From Problem Analysis to Program Design, Third Edition 5
The Power Function (pow)

• pow(x,y) calculates xy, pow(2,3) = 8.0

• pow returns a value of type double

• x and y are called the parameters (or


arguments) of the function pow

• Function pow has two parameters

C++ Programming: From Problem Analysis to Program Design, Third Edition 6


The sqrt and floor Functions

• The square root function sqrt(x)

− Calculates the non-negative square root of x,


for x >= 0.0

− sqrt(2.25) is 1.5

− Type double

− Has only one parameter

C++ Programming: From Problem Analysis to Program Design, Third Edition 7


The sqrt and floor Functions
(continued)
• The floor function floor(x)

− Calculates largest whole number not greater


than x

− floor(48.79) is 48.0

− Type double

− Has only one parameter


C++ Programming: From Problem Analysis to Program Design, Third Edition 8
User-Defined Functions
• Void functions: do not have a return type. do not
use a return statement to return a value.
• Value-returning functions: have a return type.
They return a value of a specific data type using
the return statement. To use these functions you need
to: - Include the correct header file
− Know the name of the function
− Know the number of parameters, if any
− Know the data type of each parameter
− Know the data type of the value computed by the function, called
the type of the function
C++ Programming: From Problem Analysis to Program Design, Third Edition 13
Value-Returning Functions

• Because the value returned by a value-


returning function is unique, we must:

− Save the value for further calculation

− Use the value in some calculation

− Print the value

• A value-returning function is used in an


assignment or in an output statement
C++ Programming: From Problem Analysis to Program Design, Third Edition 14
Value-Returning Functions
(continued)
• Properties that form the function definition:
1. Name of the function
2. Number of parameters
3. Data type of each parameter
4. Type of the function
5. Code required to accomplish the task (the
body of the function)

C++ Programming: From Problem Analysis to Program Design, Third Edition 15


Value-Returning Functions
(continued)
• Heading: first four properties above

• Formal Parameter: variable declared in the


heading

• Actual Parameter: variable or expression


listed in a call to a function

C++ Programming: From Problem Analysis to Program Design, Third Edition 17


Value-Returning Functions
(continued)
• Syntax:

• functionType: type of the value returned


by the function
− Also called the data type

C++ Programming: From Problem Analysis to Program Design, Third Edition 18


Syntax

• The syntax of the formal parameter list is:

• The syntax for a function call is:

• The syntax for the actual parameter list is:

C++ Programming: From Problem Analysis to Program Design, Third Edition 19


Functions
• The formal parameter list can be empty
• If the formal parameter list is empty
− Parentheses are still needed
− Function heading of the value-returning function takes
either of the following forms:
functionType functionName()
− In a function call the actual parameter is empty
• A call to a value-returning function with an empty
formal parameter list is:
functionName()

C++ Programming: From Problem Analysis to Program Design, Third Edition 20


Value-Returning Functions
• To call a value-returning function:
− Use its name, with the actual parameters (if any) in
parentheses
− There is a one-to-one correspondence between
actual and formal parameters
• A value-returning function is called in an
expression
• Expression may be part of an assignment
statement or an output statement
• A function call in a program results in the
execution of the body of the called function
C++ Programming: From Problem Analysis to Program Design, Third Edition 21
Value-Returning Functions
(continued)

C++ Programming: From Problem Analysis to Program Design, Third Edition 22


The return Statement
• Once the function computes the value, the function
returns the value via the return statement
• The syntax of the return statement is:

• When a return statement executes


− Function immediately terminates
− Control goes back to the caller
• When a return statement executes in the function
main, the program terminates

C++ Programming: From Problem Analysis to Program Design, Third Edition 23


• The expression larger(5, 6) in Line 1 is a function call, and 5 and 6 are
actual parameters. When the expression larger(5, 6) executes, 5 is
copied into x, and 6 is copied into y.
• Therefore, the statement in Line 1 outputs the larger of 5 and 6.
The return Statement (Cont.,)
• The expression larger(one, two) in Line 2 is a function call.
Here, one and two are actual parameters. When the
expression larger(one, two) executes, the value of one is
copied into x, and the value of two is copied into y. Therefore,
the statement in Line 2 outputs the larger of one and two.
• The expression larger(one, 29) in Line 3 is also a function call.
When the expression larger(one, 29) executes, the value of
one is copied into x, and 29 is copied into y. Therefore, the
statement in Line 3 outputs the larger of one and 29.
• The expression larger(38.45, 56.78) in Line 4 is a function call.
In this call, the actual parameters are 38.45 and 56.78. In this
statement, the value returned by the function larger is assigned
to the variable maxNum.

C++ Programming: From Problem Analysis to Program Design, Third Edition 28


Function Prototype

• Function Prototype: function heading without the


body of the function
• Syntax:

• It is not necessary to specify the variable name in the


parameter list
• The data type of each parameter must be specified

C++ Programming: From Problem Analysis to Program Design, Third Edition 29


Flow of Execution

• Execution always begins at

− The first statement in the function main no


matter where main is placed in the program

• Other functions are executed only when they


are called

C++ Programming: From Problem Analysis to Program Design, Third Edition 32


Flow of Execution (Continued)

• Function prototypes appear before any


function definition

− The compiler translates these first

• The compiler can then correctly translate a


function call

C++ Programming: From Problem Analysis to Program Design, Third Edition 33


Flow of Execution (continued)
• A function call statement results in

− Transfer of control to the first statement in the


body of the called function

• After the last statement of the called function


is executed

− Control is passed back to the point


immediately following the function call

C++ Programming: From Problem Analysis to Program Design, Third Edition 34


Flow of Execution (continued)
• A value-returning function returns a value

• After executing the function

− The value that the function returns replaces


the function call statement

C++ Programming: From Problem Analysis to Program Design, Third Edition 35


Programming Example

• In this programming example, the function larger is


used to determine the largest number from a set of
numbers

• Program determines the largest number from a set of


10 numbers

• Input: A set of 10 numbers

• Output: The largest of 10 numbers

C++ Programming: From Problem Analysis to Program Design, Third Edition 36


Program Analysis

• Suppose that the input data is:


15 20 7 8 28 21 43 12 35 3
• Read the first number of the data set
• Because this is the only number read to this
point, you may assume that it is the largest
number so far and call it max
• Read the second number and call it num
• Compare max and num, and store the larger
number into max
C++ Programming: From Problem Analysis to Program Design, Third Edition 37
Program Analysis (continued)

• Now max contains the larger of the first two


numbers
• Read the third number and compare it with
max and store the larger number into max
• At this point, max contains the largest of the
first three numbers
• Read the next number, compare it with max,
and store the larger into max
• Repeat this process for each remaining
number in the data set
C++ Programming: From Problem Analysis to Program Design, Third Edition 38
Algorithm Design

• Read the first number


− Because this is the only number that you have
read, it is the largest number so far
− Save it in a variable called max
• For each remaining number in the list
− Read the next number
− Store it in a variable called num
− Compare num and max
C++ Programming: From Problem Analysis to Program Design, Third Edition 39
Algorithm Design (continued)

− If max < num


• num is the new largest number

• update the value of max by copying num into max

− If max >= num, discard num; that is, do


nothing

• Because max now contains the largest


number, print it

C++ Programming: From Problem Analysis to Program Design, Third Edition 40

You might also like