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

Function - Subparts of A Program, To Easily Debug The Program. 2 Kinds of Function

1. Functions allow programmers to break programs into subparts to make them easier to debug. There are two types of functions: predefined and user-defined. 2. User-defined functions have three parts: a function prototype, a function call, and a function definition. They can pass arguments by value or by reference. Passed by value sends a copy of the data while passed by reference sends the address allowing the function to alter the original variable. 3. Sample programs are provided to demonstrate different uses of functions including passing multiple values and returning multiple or single values, passing single values, and functions with no return values. The programs use both passing by value and passing by reference based on the specific requirements.

Uploaded by

christine_straub
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views

Function - Subparts of A Program, To Easily Debug The Program. 2 Kinds of Function

1. Functions allow programmers to break programs into subparts to make them easier to debug. There are two types of functions: predefined and user-defined. 2. User-defined functions have three parts: a function prototype, a function call, and a function definition. They can pass arguments by value or by reference. Passed by value sends a copy of the data while passed by reference sends the address allowing the function to alter the original variable. 3. Sample programs are provided to demonstrate different uses of functions including passing multiple values and returning multiple or single values, passing single values, and functions with no return values. The programs use both passing by value and passing by reference based on the specific requirements.

Uploaded by

christine_straub
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 10

Function – subparts of a program, to easily debug the program.

2 Kinds of Function
1. Predefined function
2. User/Programmer defined function

• A function is called by using function’s name and passing data as arguments

3 Parts of User/Programmer defined function


1. Function prototype
Syntax: returnDataType functionName(parameters);

2. Calling function
Syntax: functionName(arguments);

3. Function definition
Syntax: returnDataType functionName(parameters)  function header
{
statements; function body
return statement;
}

2 Kinds of User/Programmer defined function

1. Passed-by-value : when a function receive only a copy of the data passed in as


the argument.
- The function cannot alter the actual variable containing the
data.
- A function can directly return only one value, although it can
receive many values.
- Value arguments can be a variables and constants.

2. Passed-by-reference : A called function is given the address of a variable as an


argument.
- Allows the called function to directly alter the variable’s
value.
- Ability to change actual variable provides a means to “return
multiple values.”
- Reference arguments must be variables, not constants.
- Function may contain a mix of by value and by reference
arguments
- Function call does not indicate that reference arguments are
used in the called function.
- Reference parameters should be used only in restricted
situations that require multiple return.
Function Prototype

Syntax: Passed-by-value;

returnDataType functionName(dataType varName1, dataType varName2,.. );

Example:

int Sum (int n1, int n2);

Syntax: Passed-by-reference;

void functionName(dataType& varName1, dataType& varName2,.. );

Example:

void SumPro (int n1, int n2, int& sum, int& product)

Return Statement
- Causes the value to be returned to the calling function.
- Should use data type specified in function header;
- Calling function must assign the called function to a variable of the same data type
as the called function’s return type.

Functions
1. Passed many values, return many values. – pass-by-reference
2. Passed many values, return single value. – pass-by-value / pass-by-reference
3. Passed single value, return single value. – pass-by-value / pass-by-reference
4. Passed multiple values, no return value – pass-by-value / pass-by-reference
5. Passed single value, no return value – pass-by-value / pass-by-reference
6. No passed value, no return value –
Sample Program Sample Program

//Passed-by-reference //Passed-by-value
//Passed multiple values, return multiple //Passed multiple values, return single value
values
#include <iostream>
#include <iostream> using namespace std;
using namespace std;
int sum(int n1, int n2);
void sumprod(int n1, int n2, int& sum, int&
product); int main( )
{
int main( ) int num1, num2, s ;
{ cout<<”Enter first value: “;
int num1, num2, s, p ; cin>>num1;
cout<<”Enter first value: “; cout<<”Enter second value: “;
cin>>num1; cin>>num2;
cout<<”Enter second value: “; s = sum(num1, num2);
cin>>num2; cout<<”Sum is : “<<s<<endl;
sum(num1, num2, s, p); return 0;
cout<<”Sum is : “<<s<<endl; }
cout<<”Product is “<<p<<endl;
return 0; int sum(int n1, int n2)
} {
int total;
void sumprod(int n1, int n2, int& sum, int& total = n1 + n2;
product) return total;
{ }
sum = n1 + n2;
product = n1*n2;
return ;
}
Sample Program 1. return total;
}
//Passed-by-reference
//Passed multiple values, return multiple
values

#include <iostream>
using namespace std;

void sumprod(int n1, int n2, int& sum, int&


product);

int main( )
{
int num1, num2, s, p ;
cout<<”Enter first value: “;
cin>>num1;
cout<<”Enter second value: “;
cin>>num2;
sum(num1, num2, s, p);
cout<<”Sum is : “<<s<<endl;
cout<<”Product is “<<p<<endl;
return 0;
}

void sumprod(int n1, int n2, int& sum, int&


product)
{
sum = n1 + n2;
product = n1*n2;
return ;
}

Sample Program 2.

//Passed-by-value
//Passed multiple values, return single value

#include <iostream>
using namespace std;

int sum(int n1, int n2);

int main( )
{
int num1, num2, s ;
cout<<”Enter first value: “;
cin>>num1;
cout<<”Enter second value: “;
cin>>num2;
s = sum(num1, num2);
cout<<”Sum is : “<<s<<endl;
return 0;
}

int sum(int n1, int n2)


{
int total;
total = n1 + n2;
Sample Program 4

//Passed-by-value
//Passed single value, return single value
//This program will determine if the number is
// odd or even

#include <iostream>
using namespace std;

int OddEven(int n);

int main( )
{
int num, val;
cout<<”Enter a number “;
cin>>num;
val=OddEven(num);
if (val)
cout<<”The number is Odd “<<endl;
else
cout<<”The number is Even “<<endl;
return 0;
}

int OddEven(int n)
{
int rem;
rem = n%2;
return rem;
}
Sample Program 3.
Sample Program 6
//Passed-by-reference
//Passed multiple values, return single value //Passed-by-value
//Passed multiple values, no return value
#include <iostream>
using namespace std; #include <iostream>
using namespace std;
void sum(int n1, int n2, int& total);
void Sum(int n1, int n2);
int main( )
{ int main( )
int num1, num2, s ; {
cout<<”Enter first value: “; int num1, num2;
cin>>num1; cout<<”Enter first value: “;
cout<<”Enter second value: “; cin>>num1;
cin>>num2; cout<<”Enter second value: “;
sum(num1, num2, s); cin>>num2;
cout<<”Sum is : “<<s<<endl; sum(num1, num2);
return 0; return 0;
} }

void sum(int n1, int n2, int& total) void Sum(int n1, int n2)
{ {
total = n1 + n2; int total;
return; total = n1+n2;
} cout<<”The sum is “<<total<<endl;
return;
}
Sample Program 5. }
Sample Program 8
//Passed-by-reference
//Passed single value, return single value //Passed-by-value
//This program will determine if the number //Passed single value, no return value
is
// odd or even #include <iostream>
using namespace std;
#include <iostream>
using namespace std; void OddEven(int n);

void OddEven(int n, int& rem); int main( )


{
int main( ) int num;
{ cout<<”Enter a number: “;
int num,val ; cin>>num;
cout<<"Enter a number: "; OddEven(num);
cin>>num; return 0;
OddEven(num,val); }
if (val)
cout<<"The number is Odd "<<endl; void OddEven(int n)
else {
cout<<"The number is Even "<<endl; int rem;
return 0; if (rem = n%2)
} cout<<”The number is Odd “<<endl;
else
void OddEven(int n, int& rem) cout<<”The number is Even “<<endl;
{
rem=n%2; return;
return; }
}
Sample Program 10

Sample Program 7 //Function


//No Passed value, no return value
//Passed-by-refernce
//Passed multiple values, no return value #include <iostream>
#include <string>
#include <iostream> using namespace std;
using namespace std;
void Message( );
void Sum(int& n1, int& n2);
int main( )
int main( ) {
{ string name;
int num1, num2; cout<<”Enter your name: “;
cout<<”Enter first value: “; cin>>name;
cin>>num1; Message( );
cout<<”Enter second value: “; cout<<name<<endl;
cin>>num2; return 0;
Sum(num1, num2); }
return 0;
} void Message( )
{
void Sum(int& n1, int& n2) system (“cls”);
{ cout<<”Hi ! Welcome to C++ “;
int total; return;
total = n1+n2; }
cout<<”The sum is “<<total<<endl;
return;
Sample Program 9

//Passed-by-reference
//Passed single value, no return value

#include <iostream>
using namespace std;

void OddEven(int& n);

int main( )
{
int num;
cout<<”Enter a number: “;
cin>>num;
OddEven(num);
return 0;
}

void OddEven(int& n)
{
int rem;
if (rem = n%2)
cout<<”The number is Odd “<<endl;
else
cout<<”The number is Even “<<endl;

return;
}
Scope of Variable

Local variables : variables declared within a function.


They can be used only within the function in which they are declared.

Global variables : variables declared outside any function.


They can be used by functions that occur after their declaration.

Sample Program:

#include <iostream> Data Dictionary


using namespace std;
varName dataType scope function
int firstnum;
firstnum int global main,valfun, difference
void valfun( ); snum int local main
void difference(int n1, int n2); secnum int local valfun
num int global valfun, difference
int main() diff int local difference
{ n1 int local difference
int snum; n2 int local difference

firstnum = 10;
snum = 20;

cout<<”From main() : firstnum = “<<firstnum<<endl;


cout<<”From main() : snum = “<<secnum<<endl;

valfun( );

cout<<”\nFrom main( ) again: firstnum = “ <<firstnum<<endl;


cout<<”From main() again: snum = “ <<secnum<<endl;
difference(firstnum,snum);

return 0;
}
int num;
void valfun()
{
int secnum;

secnum = 30;
num=45;

cout<<”\nFrom valfun() : firstnum = “<<firstnum<<endl;


cout<<”From valfun() : secnum = “<<secnum<<endl;
cout<<”Num is = “<<num<<endl;

firstnum=40; Screen Output

return; From main() : firstnum = 10


} From main() : snum = 20

void difference( int n1, int n2) From valfun() : firstnum = 10


{ From valfun() : secnum = 30
int diff;
num=12; From main() again : firstnum = 40
diff = n1-n2; From main() again : snum = 20
cout<<”\nDifference is “<<diff<<endl;
return; Difference is 20
}

You might also like