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

C++ Programming: From Problem Analysis To Program Design: Chapter 6: User-Defined Functions I

This chapter discusses user-defined functions in C++, including value-returning functions. It covers defining and calling functions, parameters, return types, and flow of execution. The chapter objectives are to learn about standard and user-defined functions, examine value-returning functions and parameters, and explore constructing and using a value-returning user-defined function in a program. Examples are provided to demonstrate defining functions that return values to calling code.

Uploaded by

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

C++ Programming: From Problem Analysis To Program Design: Chapter 6: User-Defined Functions I

This chapter discusses user-defined functions in C++, including value-returning functions. It covers defining and calling functions, parameters, return types, and flow of execution. The chapter objectives are to learn about standard and user-defined functions, examine value-returning functions and parameters, and explore constructing and using a value-returning user-defined function in a program. Examples are provided to demonstrate defining functions that return values to calling code.

Uploaded by

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

C++ Programming: From Problem

Analysis to Program Design, Fifth 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, Fifth Edition 2


Introduction
• 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 re-used (even in different programs)
– Enhance program readability
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 3
Introduction (cont'd.)
• Functions
– Called modules
– Like miniature programs
– Can be put together to form a larger program

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


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, Fifth Edition 5


Predefined Functions (cont'd.)
• 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, Fifth Edition 6
Predefined Functions (cont'd.)
• pow(x,y) calculates xy
– pow(2, 3) = 8.0
– Returns a value of type double
– x and y are the parameters (or arguments)
• The function has two parameters
• sqrt(x) calculates the nonnegative
square root of x, for x >= 0.0
– sqrt(2.25) is 1.5
– Type double
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 7
Predefined Functions (cont'd.)

• 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, Fifth Edition 8


Predefined Functions (cont'd.)

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 9


Predefined Functions (cont'd.)

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 10


Predefined Functions (cont'd.)

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 11


Predefined Functions (cont'd.)
• Example 6-1 sample run:

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 12


User-Defined Functions
• Value-returning functions: have a return
type
– Return a value of a specific data type using
the return statement
• Void functions: do not have a return
type
– Do not use a return statement to return a
value

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 13


Value-Returning Functions
• To use these functions you must:
– Include the appropriate header file in your
program using the include statement
– Know the following items:
• Name of the function
• Number of parameters, if any
• Data type of each parameter
• Data type of the value returned: called the type of
the function

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 14


Value-Returning Functions
(cont'd.)
• Because the value returned by a value-
returning function is unique, 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
• One more thing is associated with
functions:
– The code required to accomplish the task
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 15
Value-Returning Functions
(cont'd.)

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 16


Value-Returning Functions
(cont'd.)
• Heading: first four properties above
– Example: int abs(int number)
• Formal Parameter: variable declared in the
heading
– Example: number
• Actual Parameter: variable or expression
listed in a call to a function
– Example: x = pow(u, v)

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


Syntax: Value-Returning
Function
• Syntax:

• functionType is also called the data


type or return type

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


Syntax: Formal Parameter List

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


Function Call

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


Syntax: Actual Parameter List
• The syntax of the actual parameter list is:

• Formal parameter list can be empty:

• A call to a value-returning function with an


empty formal parameter list is:

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 21


return Statement
• Once a value-returning function computes
the value, the function returns this value
via the return statement
– It passes this value outside the function via
the return statement

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


Syntax: return Statement
• The return statement has the
following syntax:

• In C++, return is a reserved word


• 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, Fifth Edition 23
Syntax: return Statement
(cont’d.)

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 24


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, Fifth Edition 25
Function Prototype (cont'd.)

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 26


Function Prototype (cont'd.)

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 27


Value-Returning Functions:
Some Peculiarity

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


Value-Returning Functions:
Some Peculiarity (cont'd.)

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


Value-Returning Functions:
Some Peculiarity (cont'd.)

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 30


Example 6-5: Palindrome
Number
• A nonnegative integer is a palindrome if it
reads forward and backward in the same
way
– Examples: 5, 44, 789656987

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 31


Example 6-5: Palindrome
Number (cont’d.)

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


Flow of Execution
• Execution always begins at the first
statement in the function main
• Other functions are executed only when
they are called
• 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, Fifth Edition 33
Flow of Execution (cont'd.)
• A function call results in transfer of control
to the first statement in the body of the
called function
• After the last statement of a function is
executed, control is passed back to the
point immediately following the function
call
• A value-returning function returns a value
– After executing the function the returned
value replaces the function call statement
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 34
Programming Example: Largest
Number
• 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, Fifth Edition 35


Programming Example:
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, Fifth Edition 36
Programming Example:
Program Analysis (cont'd.)
• 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
– 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, Fifth Edition 37
Programming Example:
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, Fifth Edition 38


Programming Example:
Algorithm Design (cont'd.)
• For each remaining number in the list
(cont'd.)
– 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, Fifth Edition 39
Summary
• Functions (modules) are miniature programs
– Divide a program into manageable tasks
• C++ provides the standard functions
• Two types of user-defined functions: value-
returning functions and void functions
• Variables defined in a function heading are
called formal parameters
• Expressions, variables, or constant values in
a function call are called actual parameters

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


Summary (cont'd.)
• In a function call, the number of actual
parameters and their types must match with
the formal parameters in the order given
• To call a function, use its name together with
the actual parameter list
• Function heading and the body of the
function are called the definition of the
function
• A value-returning function returns its value via
the return statement
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 41
Summary (cont'd.)
• A prototype is the function heading without
the body of the function; prototypes end
with the semicolon
• Prototypes are placed before every
function definition, including main
• User-defined functions execute only when
they are called
• In a call statement, specify only the actual
parameters, not their data types
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 42

You might also like