0% found this document useful (0 votes)
3 views

Functions

Modular programming involves breaking programs into smaller, manageable functions to improve maintainability and simplify writing. Functions consist of a definition, which includes a return type, name, parameter list, and body, and can be called using their names. Variables can be local or global, with local variables existing only during function execution, while global variables are accessible throughout the program, though their use is discouraged for debugging purposes.

Uploaded by

nehalkashif112
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Functions

Modular programming involves breaking programs into smaller, manageable functions to improve maintainability and simplify writing. Functions consist of a definition, which includes a return type, name, parameter list, and body, and can be called using their names. Variables can be local or global, with local variables existing only during function execution, while global variables are accessible throughout the program, though their use is discouraged for debugging purposes.

Uploaded by

nehalkashif112
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 59

Modular Programming

• Modular programming: breaking a program up


into smaller, manageable functions or modules

• Function: a collection of statements to perform a


task
• Motivation for modular programming:
– Improves maintainability of programs
– Simplifies the process of writing programs
Defining and Calling Functions
• Function call: statement causes a function
to execute
• Function definition: statements that make
up a function
Function Definition
• Definition includes:
– return type: data type of the value that function
returns to the part of the program that called it
– name: name of the function. Function names follow
same rules as variables
– parameter list: variables containing values passed to
the function
– body: statements that perform the function’s task,
enclosed in {}
Function Definition

Note: The line that reads int main()is the


function header.
Function Return Type
• If a function returns a value, the type of the value
must be indicated:
int main()
• If a function does not return a value, its return
type is void:
void printHeading()
{
cout << "Monthly Sales\n";
}
Calling a Function
• To call a function, use the function name
followed by () and ;
printHeading();

• When called, program executes the body of the


called function

• After the function terminates, execution resumes


in the calling function at point of call.
Functions in Program 6-1
Flow of Control in Program 6-1
Calling Functions
• main can call any number of functions
• Functions can call other functions
• Compiler must know the following about a
function before it is called:
– name
– return type
– number of parameters
– data type of each parameter
Function Prototypes
• Ways to notify the compiler about a function
before a call to the function:

– Place function definition before calling function’s


definition

– Use a function prototype (function declaration) – like


the function definition without the body
• Header: void printHeading()
• Prototype: void printHeading();
(Program Continues)
Program 6-5 (Continued)
Prototype Notes

• Place prototypes near top of program

• Program must include either prototype or full


function definition before any call to the
function – compiler error otherwise

• When using prototypes, can place function


definitions in any order in source file
Sending Data into a Function
• Can pass values into a function at time of call:
c = pow(a, b);

• Values passed to function are arguments

• Variables in a function that hold the values


passed as arguments are parameters
A Function with a Parameter
Variable
void displayValue(int num)
{
cout << "The value is " << num << endl;
}

The integer variable num is a parameter.


It accepts any integer value passed to the function.
(Program Continues)
The function call in line 11 passes the value 5
as an argument to the function.
Other Parameter Terminology

• A parameter can also be called a formal


parameter or a formal argument
• An argument can also be called an actual
parameter or an actual argument
Parameters, Prototypes, and
Function Headers
• For each function argument,
– the prototype must include the data type of
each parameter inside its parentheses
– the header must include a declaration for
each parameter in its ()
void evenOrOdd(int); //prototype
void evenOrOdd(int num) //header
evenOrOdd(val); //call
Function Call Notes

• Value of argument is copied into parameter when


the function is called
• A parameter’s scope is the function which uses it
• Function can have multiple parameters
• There must be a data type listed in the prototype
() and an argument declaration in the function
header () for each parameter
• Arguments will be promoted/demoted as
necessary to match parameters
Passing Multiple Arguments
When calling a function and passing
multiple arguments:

– the number of arguments in the call must


match the prototype and definition

– the first argument will be used to initialize the


first parameter, the second argument to
initialize the second parameter, etc.
(Program Continues)
Program 6-8 (Continued)
The function call in line 18 passes value1,
value2, and value3 as a arguments to the
function.
Passing Data by Value
• Pass by value: when an argument is
passed to a function, its value is copied
into the parameter.

• Changes to the parameter in the function


do not affect the value of the argument
Passing Information to
Parameters by Value
• Example: int val=5;
evenOrOdd(val);
val num
5 5
argument in parameter in
calling function evenOrOdd function

• evenOrOdd can change variable num, but


it will have no effect on variable val
Using Functions in
Menu-Driven Programs
• Functions can be used
– to implement user choices from menu
– to implement general-purpose tasks:
• Higher-level functions can call general-
purpose functions, minimizing the total number
of functions and speeding program
development time
• See Program 6-10 in the book
The return Statement
• Used to end execution of a function
• Can be placed anywhere in a function
– Statements that follow the return statement
will not be executed
• Can be used to prevent abnormal
termination of program
• In a void function without a return
statement, the function ends at its last }
(Program Continues)
Program 6-11(Continued)
Returning a Value From a
Function
• A function can return a value back to the
statement that called the function.
• You've already seen the pow function,
which returns a value:

double x;
x = pow(2.0, 10.0);
Returning a Value From a
Function
• In a value-returning function, the return
statement can be used to return a value from
function to the point of call. Example:

int sum(int num1, int num2)


{
double result;
result = num1 + num2;
return result;
}
A Value-Returning Function
Return Type

int sum(int num1, int num2)


{
double result;
result = num1 + num2;
return result;
}

Value Being Returned


A Value-Returning Function

int sum(int num1, int num2)


{
return num1 + num2;
}

Functions can return the values of


expressions, such as num1 + num2
(Program Continues)
Program 6-12 (Continued)
The statement in line 17 calls the sum function,
passing value1 and value2 as arguments.
The return value is assigned to the total variable.
Another Example, from
Program 6-13
Returning a Value From a
Function
• The prototype and the definition must
indicate the data type of return value
(not void)

• Calling function should use return value:


– assign it to a variable
– send it to cout
– use it in an expression
Returning a Boolean Value
• Function can return true or false
• Declare return type in function prototype
and heading as bool
• Function body must contain return
statement(s) that return true or false
• Calling function can use return value in a
relational expression
(Program Continues)
Local and Global Variables

• Variables defined inside a function are local to


that function. They are hidden from the
statements in other functions, which normally
cannot access them.
• Because the variables defined in a function are
hidden, other functions may have separate,
distinct variables with the same name.
When the program is executing in main, the num variable
defined in main is visible. When anotherFunction is called,
however, only variables defined inside it are visible, so the num
variable in main is hidden.
Local Variable Lifetime
• A function’s local variables exist only while the
function is executing. This is known as the
lifetime of a local variable.

• When the function begins, its local variables and


its parameter variables are created in memory,
and when the function ends, the local variables
and parameter variables are destroyed.

• This means that any value stored in a local


variable is lost between calls to the function in
which the variable is declared.
Global Variables and
Global Constants
• A global variable is any variable defined outside
all the functions in a program.

• The scope of a global variable is the portion of


the program from the variable definition to the
end.

• This means that a global variable can be


accessed by all functions that are defined after
the global variable is defined.
Global Variables and
Global Constants
• You should avoid using global variables
because they make programs difficult to
debug.

• Any global that you create should be


global constants.
Global constants defined for
values that do not change throughout
the program’s execution.
The constants are then used for those values
throughout the program.
Initializing Local and Global
Variables
• Local variables are not automatically
initialized. They must be initialized by
programmer.

• Global variables (not constants) are


automatically initialized to 0 (numeric) or
NULL (character) when the variable is
defined.
Static Local Variables
• Local variables only exist while the function is
executing. When the function terminates, the
contents of local variables are lost.

• static local variables retain their contents


between function calls.

• static local variables are defined and


initialized only the first time the function is
executed. 0 is the default initialization value.
(Program Continues)
In this program, each time showLocal is called, the localNum variable
is re-created and initialized with the value 5.
A Different Approach, Using a
Static Variable

(Program Continues)
statNum is automatically initialized to
0. Notice that it retains its value between
function calls.
If you do initialize a local static variable, the
initialization only happens once. See Program 6-23.

You might also like