SlideShare a Scribd company logo
Lecture - 3
Input/output and Functions
Introduction to C++
I/O statements and functions
Using Library Functions
Formatting Numbers for Program Output
Input using the cin object
Writing Functions
Function and parameter declarations
Returning a value
Pass by Value and Pass by Reference
Variable Scope and Lifetime
I/O statements
 C++ I/O operation is using the stream concept. Stream is the sequence of bytes or
flow of data. It makes the performance fast.
 If bytes flow from main memory to device like printer, display screen, or a network
connection, etc, this is called as output operation.
 If bytes flow from device like printer, display screen, or a network connection, etc to
main memory, this is called as input operation.
I/O Library Header Files
Let us see the common header files used in C++ programming are:
Header File Function and Description
<iostream> It is used to define the cout, cin and cerr objects, which correspond to standard output stream,
standard input stream and standard error stream, respectively.
<iomanip> It is used to declare services useful for performing formatted I/O, such as setprecision and setw.
<fstream> It is used to declare services for user-controlled file processing.
Standard output stream (cout)
 The cout is a predefined object of ostream class.
 It is connected with the standard output device, which is usually a display screen.
 The cout is used in conjunction with stream insertion operator (<<) to display the
output on a console.
Let's see the simple example of standard output stream (cout):
#include <iostream>
using namespace std;
int main( ) {
cout <<"Welcome to C++ class";
}
Standard input stream (cin)
 The cin is a predefined object of istream class.
 It is connected with the standard input device, which is usually a keyboard. The cin
is used in conjunction with stream extraction operator (>>) to read the input from a
console.
Let's see the simple example of standard input stream (cin):
#include <iostream>
using namespace std;
int main( ) {
int age;
cout << "Enter your age: ";
cin >> age;
cout << "Your age is: " << age << endl;
}
 cin can accept multiple input values to be stored in different variables
Example: cin >> num1 >> num2
Formatting Numbers for Program Output
 Proper output formatting contributes to ease of use and user satisfaction
 cout with stream manipulators can control output formatting
Manipulator Action
setw (n) Set the field width to n
scientific Set the output to display real numbers in scientific
notation
endl Output a newline character and display all characters
in the buffer
fixed Always show a decimal point and use a default of six
digits after the decimal point. Fill with trailing zeros,
if necessary.
setprecision(n) Set the floating-point precision to n places.
 The field width manipulator must be included for each value in the data stream sent
to cout
 Other manipulators remain in effect until they are changed
 Formatting floating-point numbers requires three field-width manipulators to:
 Set the total width of the display
 Force a decimal place
 Set the number of significant digits after the decimal point
Example:
cout << "|" << setw(10) << fixed << setprecision(3) << 25.67 << "|";
produces this output: | 25.670|4
Case Study:
Length Conversion: Write a program that takes as input given lengths expressed in feet
and inches. The program should then convert and output the lengths in centimeters.
Assume that the given lengths in feet and inches are integers.
Functions
A function is a group of statements that together perform a task. Every C++ program has
at least one function, which is main(), and all the most trivial programs can define
additional functions.
A function is known with various names like a method or a sub-routine or a procedure
etc.
When your program starts, main() is called automatically. main( ) might call other
functions, some of which might call still others.
A C++ function definition consists of a function header and a function body.
A function declaration tells the compiler about a function's name, return type, and
parameters. A function definition provides the actual body of the function.
The reason why we use functions is to aid modularization of a program and a function
reduces program size.
Any fragments of code that are needed frequently in a program are best candidates to be
written as a function.
Advantage of functions
 Code Reusability
By creating functions in C++, you can call it many times. So we don't need to write the
same code again and again.
 Code optimization
It makes the code optimized, we don't need to write much code.
Types of Functions
There are two types of functions in C++ programming:
1. Library Functions: are the functions which are declared in the C++ header files.
if you include the cmath header file: #include <cmath> you can access predifend
method under the cmath header file see it below
Using Mathematical Library Functions example
2. User-defined functions: are the functions which are created by the C++ programmer, so
that he/she can use it many times. It reduces complexity of a big program and optimizes the
code.
Function Declarations
 As you can’t use variables before declarations (telling the compiler what the variable
is), you can’t use function before telling the compiler what this function is.
 The common approach to declare functions is at the beginning of the program.
 The function declaration (function prototype) tells the compiler that later on in the
program a function introduced in the declaration is going to be used.
 Function declaration is terminated with semicolon. If the function has arguments, then
they should be indicated in the declaration.
A function declaration has the following parts
return_type function_name( parameter list );
Examples :- int max(int num1, int num2);
 Parameter names are not important in function declaration only their type is required,
so following is also valid declaration − int max(int, int);
Function Definition
 A function definition consists of two parts: interface and body.
 The interface of a function (called its prototype) specifies how it may be used.
It consists of three entities:
 The function name. This is simply a unique identifier.
 The function parameters (also called its signature)-: this is a set of zero or more
typed identifiers used for passing values to and from the function.
 The function return type. This specifies the type of value the function returns. A
function which returns nothing should have the return type void.
 The body of a function contains the computational steps (statements) that comprise
the function.
function definition example
int max(int num1, int num2)
{
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
The function body is placed in one place in memory. But it could be invoked in several
places in the program.
Calling Functions
 Calling functions is invoking function to execute.
 The function call involves the function name, followed by parentheses.
 The function call is similar to its declaration except that the return type is not
mentioned.
 The call is terminated by semicolon.
 Executing the call statement causes the function to execute, i.e. control is
transferred to the function, the statements in the function definition are executed
and then control returns to the statement following the function call.
#include <iostream>
using namespace std;
int max(int num1, int num2); // function declaration
int main () {
int a = 100, b = 200, int ret;
ret = max(a, b); // calling a function to get max value.
cout << "Max value is : " << ret << endl;
return 0;
}
// function defination
int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result; }
Pass By Value and Pass By Reference
Pass By Value
 In call by value method of parameter passing, the values of actual parameters are
copied to the function’s formal parameters.
 There are two copies of parameters stored in different memory locations.
 One is the original copy and the other is the function copy.
Any changes made inside functions are not reflected in the actual parameters of the
caller.
Advantages of Call by Value in C++
 Functions are free to modify the passed values without affecting the original
data.
 Great while working with multithreaded or asynchronous programs where we
need to keep track of the values.
 Pass by value method can be used to convert a string from an integer without
modifying its value.
Pass By Value and Pass By Reference
Disadvantages of Call by Value in C++
 Since pass by value is implemented by passing a copy of the data, the data size
increases (doubles). This may not be an issue with smaller programs but can cost
efficiency in larger programs.
 If the argument is too large, copying the values can take a significant amount of
time.
 There is no way to propagate back the updated values through the parameters.
Consider the following example
// C++ program to illustrate call by value
#include <iostream>
using namespace std;
void swapx(int x, int y);// Function Prototype
int main()
{ int a = 10, b = 20;
swapx(a, b); // Pass by Values
cout << "In the Caller:n";
cout << "a = " << a << " b = " << b << endl;
return 0; }
void swapx(int x, int y) // Swap functions that swaps two values
{ int t;
t = x;
x = y;
y = t;
cout << "In the Function:n";
cout << "x = " << x << " y = " << y << endl; }
Output
Inside Function:
x = 20 y = 10
In the Caller:
a = 10 b = 20
Thus actual values of a and b remain unchanged even after exchanging the values of x
and y in the function.
Call by Reference
 In call by reference method of parameter passing, the address of the actual
parameters is passed to the function as the formal parameters.
 Giving a called function direct access to its calling function’s variables
 Both the actual and formal parameters refer to the same locations.
 Any changes made inside the function are actually reflected in the actual
parameters of the caller.
 It is perfectly valid for a function to use pass-by-value for some of its parameters
and pass-by-reference for others.
 Whether a value or an address is actually passed depends on the parameter types
declared; Address operator (&) provides the variable’s address
When to use Call by Reference in C++?
 When we are changing the parameters passed by the client program.
 When passing large structures and classes to make the program efficient.
 To avoid copying the values and reducing the space complexity.
Call by Reference
 Advantages of Call by Reference in C++
 We can produce efficient programs since no copy of the data is made.
 It enhances the ease of exchanging the information between functions through
the use of parameters.
 Disadvantages of Call by Reference in C++
 This method is not recommended while developing multithreaded programs
since it can cause loss of data.
 Being a high-level mechanism, pass by reference can only be used within a
single program.
// C++ program to illustrate Call by Reference
#include <iostream>
using namespace std;
void swapx(int&, int&); // Function Prototype
int main() {
int a = 10, b = 20;
swapx(a, b); // Pass reference
cout << "In the Caller:n";
cout << "a = " << a << " b = " << b << endl;
return 0;}
void swapx(int& x, int& y) // Function to swap two variables by references
{ int t;
t = x;
x = y;
y = t;
cout << "In the Caller:n";
cout << "x = " << x << " y = " << y << endl; }
Output
Inside the Function:
x = 20 y = 10
Inside the Caller:
a = 20 b = 10
Thus actual values of a and b get changed after exchanging values of x and y.
Default Arguments
 When you define a function, you can specify a default value for each of the last
parameters. This value will be used if the corresponding argument is left blank when
calling to the function.
 This is done by using the assignment operator and assigning values for the arguments
in the function definition. If a value for that parameter is not passed when the
function is called, the default given value is used, but if a value is specified, this
default value is ignored and the passed value is used instead.
 Default arguments are suitable for situations where certain (or all) function
parameters frequently take the same values.
Consider the following example
#include <iostream>
using namespace std;
int sum(int a, int b = 20) {
int result = a + b;
return result;}
int main () {
int a = 100, b = 200, result;
result = sum(a, b); // calling a function to add the values.
cout << "Total value is :" << result << endl; // output :- Total value is :300
result = sum(a); // calling a function again as follows.
cout << "Total value is :" << result << endl; // output :- Total value is :120
return 0;
}
Overloaded Functions
 Two different functions can have the same name if the prototype of their arguments
are different. That means that you can give the same name to more than one function
if they have either a different number of arguments or different types in their
arguments.
Example
# include<iostream>
using namespace std;
int devide (int a, int b=2);
int devide(int z, int r, int y);
float devide (float a, float b);
int main(){
int x=20, y=2;
float n=5.0, m=2.0;
cout<<devide(x,y)<<endl;
cout<<devide(n,m)<<endl;
cout<<devide(n,m,m)<<endl;
return 0;
}
int devide (int a, int b)
{
return a/b;
}
int devide (int a, int b, int c)
{
int w=a/b
return w/c;
}
float devide (float x, float y)
{
return x/y;
}
Global and Local Scope
 Everything defined at the program scope level (i.e., outside functions) is said to have a
global scope.
 Thus the sample functions we have seen so far all have a global scope.
 Variables may also be defined at the global scope.
 Since global entities are visible at the program level, they must also be unique at the
program level. This means that the same global variable or function may not be
defined more than once at the global level.
 Global entities are generally accessible everywhere in the program.
 Un initialized global variables are automatically initialized to zero.
 Each block in a program defines a local scope. Thus the body of a function
represents a local scope.
 The parameters of a function have the same scope as the function body.
 Variables defined within a local scope are visible to that scope only. Hence, a
variable need only be unique within its own scope.
 Local scopes may be nested, in which case the inner scopes override the outer
scopes.
For example
Scope Resolution Operator
 To reference a global variable when a local variable of the same name is in
scope, use C++’s scope resolution operator, which is ::
Misuse of Globals
 Global variables allow programmers to “jump around” the normal safeguards
provided by functions
 Instead of passing variables to a function, it is possible to make all variables global:
do not do this
 Indiscriminate use of global variables destroys the safeguards C++ provides to
make functions independent and insulated from each other
 Using only global variables can be especially disastrous in large programs with
many user-created functions
Lifetime of Variables
 A variable’s scope can be thought of as the space in the program where the
variable is valid
 In addition to space dimension represented by scope, variables have a time
dimension that refers to the length of time storage locations are reserved for a
variable
 This time, dimension is referred to as the variable’s lifetime
 When and how long a variable’s storage locations are kept before they are
released can be determined by the variable’s storage category
Variable Storage Categories
The four available storage categories are:
auto
static
extern
register
Local Variable Storage Categories
 Local variables can be members only of the auto, static, or register storage
categories
 Storage for automatic local variables is reserved or created automatically each
time a function is called
 As long as the function hasn’t returned control to its calling function, all
automatic variables local to the function are “alive”
 A local static variable isn’t created and destroyed each time the function
declaring it is called
 Local static variables remain in existence for the program’s lifetime
Local Automatic Variable
Local Static Variable
Global Variable Storage Categories
 Global variables are created by definition statements external to a function By their
nature, global variables do not come and go with the calling of a function After a
global variable is created, it exists until the program in which it’s declared has
finished executing
 Global variables can be declared with the static or extern storage category, but not
both
Quiz one (10%) 15 minutes
1. Identify the error and reWrite of the following code.
#include<iostream>
using namespace std;
int main() {
count=0;
++count;
cout<<"value of counter is:'<<countt;
return 0 }
2. Write the output of the following code.
count=0;
++count;
cout<<"value of counter is:"<<count<<",";
count=count+10;
count--;
count=count%2;
cout<<count++<<“/t";
count=count*10;
--count;
cout<<count;
3. Write a program in C++ that converts kilometers per hour to miles per hour using function.
4. Write a program in C++ to convert temperature in Kelvin to Fahrenheit using function.
END
Of
Lecture -3

More Related Content

Similar to Fundamental of programming Fundamental of programming

unit3 part2 pcds function notes.pdf
unit3 part2 pcds function notes.pdfunit3 part2 pcds function notes.pdf
unit3 part2 pcds function notes.pdfJAVVAJI VENKATA RAO
 
CHAPTER THREE FUNCTION.pptx
CHAPTER THREE FUNCTION.pptxCHAPTER THREE FUNCTION.pptx
CHAPTER THREE FUNCTION.pptxGebruGetachew2
 
CH.4FUNCTIONS IN C_FYBSC(CS).pptx
CH.4FUNCTIONS IN C_FYBSC(CS).pptxCH.4FUNCTIONS IN C_FYBSC(CS).pptx
CH.4FUNCTIONS IN C_FYBSC(CS).pptxSangeetaBorde3
 
Chapter_1.__Functions_in_C++[1].pdf
Chapter_1.__Functions_in_C++[1].pdfChapter_1.__Functions_in_C++[1].pdf
Chapter_1.__Functions_in_C++[1].pdfTeshaleSiyum
 
Chapter 1. Functions in C++.pdf
Chapter 1.  Functions in C++.pdfChapter 1.  Functions in C++.pdf
Chapter 1. Functions in C++.pdfTeshaleSiyum
 
Presentation on Function in C Programming
Presentation on Function in C ProgrammingPresentation on Function in C Programming
Presentation on Function in C ProgrammingShuvongkor Barman
 
USER DEFINED FUNCTIONS IN C.pdf
USER DEFINED FUNCTIONS IN C.pdfUSER DEFINED FUNCTIONS IN C.pdf
USER DEFINED FUNCTIONS IN C.pdfBoomBoomers
 
Function in c program
Function in c programFunction in c program
Function in c programumesh patil
 
Functions assignment
Functions assignmentFunctions assignment
Functions assignmentAhmad Kamal
 
Chapter 11 Function
Chapter 11 FunctionChapter 11 Function
Chapter 11 FunctionDeepak Singh
 

Similar to Fundamental of programming Fundamental of programming (20)

unit3 part2 pcds function notes.pdf
unit3 part2 pcds function notes.pdfunit3 part2 pcds function notes.pdf
unit3 part2 pcds function notes.pdf
 
CHAPTER THREE FUNCTION.pptx
CHAPTER THREE FUNCTION.pptxCHAPTER THREE FUNCTION.pptx
CHAPTER THREE FUNCTION.pptx
 
unit_2 (1).pptx
unit_2 (1).pptxunit_2 (1).pptx
unit_2 (1).pptx
 
CH.4FUNCTIONS IN C_FYBSC(CS).pptx
CH.4FUNCTIONS IN C_FYBSC(CS).pptxCH.4FUNCTIONS IN C_FYBSC(CS).pptx
CH.4FUNCTIONS IN C_FYBSC(CS).pptx
 
C++ functions
C++ functionsC++ functions
C++ functions
 
C++ functions
C++ functionsC++ functions
C++ functions
 
Chapter_1.__Functions_in_C++[1].pdf
Chapter_1.__Functions_in_C++[1].pdfChapter_1.__Functions_in_C++[1].pdf
Chapter_1.__Functions_in_C++[1].pdf
 
Chapter 1. Functions in C++.pdf
Chapter 1.  Functions in C++.pdfChapter 1.  Functions in C++.pdf
Chapter 1. Functions in C++.pdf
 
Function C programming
Function C programmingFunction C programming
Function C programming
 
Functions in C++.pdf
Functions in C++.pdfFunctions in C++.pdf
Functions in C++.pdf
 
C function
C functionC function
C function
 
cp Module4(1)
cp Module4(1)cp Module4(1)
cp Module4(1)
 
Presentation on Function in C Programming
Presentation on Function in C ProgrammingPresentation on Function in C Programming
Presentation on Function in C Programming
 
USER DEFINED FUNCTIONS IN C.pdf
USER DEFINED FUNCTIONS IN C.pdfUSER DEFINED FUNCTIONS IN C.pdf
USER DEFINED FUNCTIONS IN C.pdf
 
Function in c program
Function in c programFunction in c program
Function in c program
 
arrays.ppt
arrays.pptarrays.ppt
arrays.ppt
 
Function
FunctionFunction
Function
 
Functions assignment
Functions assignmentFunctions assignment
Functions assignment
 
Lecture 4
Lecture 4Lecture 4
Lecture 4
 
Chapter 11 Function
Chapter 11 FunctionChapter 11 Function
Chapter 11 Function
 

Recently uploaded

Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion Clinic
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockSkilrock Technologies
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Soroosh Khodami
 
INGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignINGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignNeo4j
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfmbmh111980
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...rajkumar669520
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesNeo4j
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfVictor Lopez
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?XfilesPro
 
Benefits of Employee Monitoring Software
Benefits of  Employee Monitoring SoftwareBenefits of  Employee Monitoring Software
Benefits of Employee Monitoring SoftwareMera Monitor
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfOrtus Solutions, Corp
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationWave PLM
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowPeter Caitens
 
Breaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfBreaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfMeon Technology
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)Max Lee
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabbereGrabber
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with StrimziStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzisteffenkarlsson2
 

Recently uploaded (20)

Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by Skilrock
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
INGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignINGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by Design
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
 
5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
Benefits of Employee Monitoring Software
Benefits of  Employee Monitoring SoftwareBenefits of  Employee Monitoring Software
Benefits of Employee Monitoring Software
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Breaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfBreaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdf
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with StrimziStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
 

Fundamental of programming Fundamental of programming

  • 1. Lecture - 3 Input/output and Functions
  • 2. Introduction to C++ I/O statements and functions Using Library Functions Formatting Numbers for Program Output Input using the cin object Writing Functions Function and parameter declarations Returning a value Pass by Value and Pass by Reference Variable Scope and Lifetime
  • 3. I/O statements  C++ I/O operation is using the stream concept. Stream is the sequence of bytes or flow of data. It makes the performance fast.  If bytes flow from main memory to device like printer, display screen, or a network connection, etc, this is called as output operation.  If bytes flow from device like printer, display screen, or a network connection, etc to main memory, this is called as input operation. I/O Library Header Files Let us see the common header files used in C++ programming are: Header File Function and Description <iostream> It is used to define the cout, cin and cerr objects, which correspond to standard output stream, standard input stream and standard error stream, respectively. <iomanip> It is used to declare services useful for performing formatted I/O, such as setprecision and setw. <fstream> It is used to declare services for user-controlled file processing.
  • 4. Standard output stream (cout)  The cout is a predefined object of ostream class.  It is connected with the standard output device, which is usually a display screen.  The cout is used in conjunction with stream insertion operator (<<) to display the output on a console. Let's see the simple example of standard output stream (cout): #include <iostream> using namespace std; int main( ) { cout <<"Welcome to C++ class"; }
  • 5. Standard input stream (cin)  The cin is a predefined object of istream class.  It is connected with the standard input device, which is usually a keyboard. The cin is used in conjunction with stream extraction operator (>>) to read the input from a console. Let's see the simple example of standard input stream (cin): #include <iostream> using namespace std; int main( ) { int age; cout << "Enter your age: "; cin >> age; cout << "Your age is: " << age << endl; }  cin can accept multiple input values to be stored in different variables Example: cin >> num1 >> num2
  • 6. Formatting Numbers for Program Output  Proper output formatting contributes to ease of use and user satisfaction  cout with stream manipulators can control output formatting Manipulator Action setw (n) Set the field width to n scientific Set the output to display real numbers in scientific notation endl Output a newline character and display all characters in the buffer fixed Always show a decimal point and use a default of six digits after the decimal point. Fill with trailing zeros, if necessary. setprecision(n) Set the floating-point precision to n places.
  • 7.  The field width manipulator must be included for each value in the data stream sent to cout  Other manipulators remain in effect until they are changed  Formatting floating-point numbers requires three field-width manipulators to:  Set the total width of the display  Force a decimal place  Set the number of significant digits after the decimal point Example: cout << "|" << setw(10) << fixed << setprecision(3) << 25.67 << "|"; produces this output: | 25.670|4 Case Study: Length Conversion: Write a program that takes as input given lengths expressed in feet and inches. The program should then convert and output the lengths in centimeters. Assume that the given lengths in feet and inches are integers.
  • 8. Functions A function is a group of statements that together perform a task. Every C++ program has at least one function, which is main(), and all the most trivial programs can define additional functions. A function is known with various names like a method or a sub-routine or a procedure etc. When your program starts, main() is called automatically. main( ) might call other functions, some of which might call still others. A C++ function definition consists of a function header and a function body. A function declaration tells the compiler about a function's name, return type, and parameters. A function definition provides the actual body of the function. The reason why we use functions is to aid modularization of a program and a function reduces program size. Any fragments of code that are needed frequently in a program are best candidates to be written as a function.
  • 9. Advantage of functions  Code Reusability By creating functions in C++, you can call it many times. So we don't need to write the same code again and again.  Code optimization It makes the code optimized, we don't need to write much code. Types of Functions There are two types of functions in C++ programming: 1. Library Functions: are the functions which are declared in the C++ header files. if you include the cmath header file: #include <cmath> you can access predifend method under the cmath header file see it below
  • 10. Using Mathematical Library Functions example 2. User-defined functions: are the functions which are created by the C++ programmer, so that he/she can use it many times. It reduces complexity of a big program and optimizes the code.
  • 11. Function Declarations  As you can’t use variables before declarations (telling the compiler what the variable is), you can’t use function before telling the compiler what this function is.  The common approach to declare functions is at the beginning of the program.  The function declaration (function prototype) tells the compiler that later on in the program a function introduced in the declaration is going to be used.  Function declaration is terminated with semicolon. If the function has arguments, then they should be indicated in the declaration. A function declaration has the following parts return_type function_name( parameter list ); Examples :- int max(int num1, int num2);  Parameter names are not important in function declaration only their type is required, so following is also valid declaration − int max(int, int);
  • 12. Function Definition  A function definition consists of two parts: interface and body.  The interface of a function (called its prototype) specifies how it may be used. It consists of three entities:  The function name. This is simply a unique identifier.  The function parameters (also called its signature)-: this is a set of zero or more typed identifiers used for passing values to and from the function.  The function return type. This specifies the type of value the function returns. A function which returns nothing should have the return type void.  The body of a function contains the computational steps (statements) that comprise the function.
  • 13. function definition example int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; } The function body is placed in one place in memory. But it could be invoked in several places in the program.
  • 14. Calling Functions  Calling functions is invoking function to execute.  The function call involves the function name, followed by parentheses.  The function call is similar to its declaration except that the return type is not mentioned.  The call is terminated by semicolon.  Executing the call statement causes the function to execute, i.e. control is transferred to the function, the statements in the function definition are executed and then control returns to the statement following the function call.
  • 15. #include <iostream> using namespace std; int max(int num1, int num2); // function declaration int main () { int a = 100, b = 200, int ret; ret = max(a, b); // calling a function to get max value. cout << "Max value is : " << ret << endl; return 0; } // function defination int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }
  • 16. Pass By Value and Pass By Reference Pass By Value  In call by value method of parameter passing, the values of actual parameters are copied to the function’s formal parameters.  There are two copies of parameters stored in different memory locations.  One is the original copy and the other is the function copy. Any changes made inside functions are not reflected in the actual parameters of the caller. Advantages of Call by Value in C++  Functions are free to modify the passed values without affecting the original data.  Great while working with multithreaded or asynchronous programs where we need to keep track of the values.  Pass by value method can be used to convert a string from an integer without modifying its value.
  • 17. Pass By Value and Pass By Reference Disadvantages of Call by Value in C++  Since pass by value is implemented by passing a copy of the data, the data size increases (doubles). This may not be an issue with smaller programs but can cost efficiency in larger programs.  If the argument is too large, copying the values can take a significant amount of time.  There is no way to propagate back the updated values through the parameters. Consider the following example
  • 18. // C++ program to illustrate call by value #include <iostream> using namespace std; void swapx(int x, int y);// Function Prototype int main() { int a = 10, b = 20; swapx(a, b); // Pass by Values cout << "In the Caller:n"; cout << "a = " << a << " b = " << b << endl; return 0; } void swapx(int x, int y) // Swap functions that swaps two values { int t; t = x; x = y; y = t; cout << "In the Function:n"; cout << "x = " << x << " y = " << y << endl; }
  • 19. Output Inside Function: x = 20 y = 10 In the Caller: a = 10 b = 20 Thus actual values of a and b remain unchanged even after exchanging the values of x and y in the function.
  • 20. Call by Reference  In call by reference method of parameter passing, the address of the actual parameters is passed to the function as the formal parameters.  Giving a called function direct access to its calling function’s variables  Both the actual and formal parameters refer to the same locations.  Any changes made inside the function are actually reflected in the actual parameters of the caller.  It is perfectly valid for a function to use pass-by-value for some of its parameters and pass-by-reference for others.  Whether a value or an address is actually passed depends on the parameter types declared; Address operator (&) provides the variable’s address When to use Call by Reference in C++?  When we are changing the parameters passed by the client program.  When passing large structures and classes to make the program efficient.  To avoid copying the values and reducing the space complexity.
  • 21. Call by Reference  Advantages of Call by Reference in C++  We can produce efficient programs since no copy of the data is made.  It enhances the ease of exchanging the information between functions through the use of parameters.  Disadvantages of Call by Reference in C++  This method is not recommended while developing multithreaded programs since it can cause loss of data.  Being a high-level mechanism, pass by reference can only be used within a single program.
  • 22. // C++ program to illustrate Call by Reference #include <iostream> using namespace std; void swapx(int&, int&); // Function Prototype int main() { int a = 10, b = 20; swapx(a, b); // Pass reference cout << "In the Caller:n"; cout << "a = " << a << " b = " << b << endl; return 0;} void swapx(int& x, int& y) // Function to swap two variables by references { int t; t = x; x = y; y = t; cout << "In the Caller:n"; cout << "x = " << x << " y = " << y << endl; }
  • 23. Output Inside the Function: x = 20 y = 10 Inside the Caller: a = 20 b = 10 Thus actual values of a and b get changed after exchanging values of x and y.
  • 24. Default Arguments  When you define a function, you can specify a default value for each of the last parameters. This value will be used if the corresponding argument is left blank when calling to the function.  This is done by using the assignment operator and assigning values for the arguments in the function definition. If a value for that parameter is not passed when the function is called, the default given value is used, but if a value is specified, this default value is ignored and the passed value is used instead.  Default arguments are suitable for situations where certain (or all) function parameters frequently take the same values. Consider the following example
  • 25. #include <iostream> using namespace std; int sum(int a, int b = 20) { int result = a + b; return result;} int main () { int a = 100, b = 200, result; result = sum(a, b); // calling a function to add the values. cout << "Total value is :" << result << endl; // output :- Total value is :300 result = sum(a); // calling a function again as follows. cout << "Total value is :" << result << endl; // output :- Total value is :120 return 0; }
  • 26. Overloaded Functions  Two different functions can have the same name if the prototype of their arguments are different. That means that you can give the same name to more than one function if they have either a different number of arguments or different types in their arguments.
  • 27. Example # include<iostream> using namespace std; int devide (int a, int b=2); int devide(int z, int r, int y); float devide (float a, float b); int main(){ int x=20, y=2; float n=5.0, m=2.0; cout<<devide(x,y)<<endl; cout<<devide(n,m)<<endl; cout<<devide(n,m,m)<<endl; return 0; }
  • 28. int devide (int a, int b) { return a/b; } int devide (int a, int b, int c) { int w=a/b return w/c; } float devide (float x, float y) { return x/y; }
  • 29. Global and Local Scope  Everything defined at the program scope level (i.e., outside functions) is said to have a global scope.  Thus the sample functions we have seen so far all have a global scope.  Variables may also be defined at the global scope.  Since global entities are visible at the program level, they must also be unique at the program level. This means that the same global variable or function may not be defined more than once at the global level.  Global entities are generally accessible everywhere in the program.  Un initialized global variables are automatically initialized to zero.
  • 30.  Each block in a program defines a local scope. Thus the body of a function represents a local scope.  The parameters of a function have the same scope as the function body.  Variables defined within a local scope are visible to that scope only. Hence, a variable need only be unique within its own scope.  Local scopes may be nested, in which case the inner scopes override the outer scopes. For example
  • 31. Scope Resolution Operator  To reference a global variable when a local variable of the same name is in scope, use C++’s scope resolution operator, which is ::
  • 32. Misuse of Globals  Global variables allow programmers to “jump around” the normal safeguards provided by functions  Instead of passing variables to a function, it is possible to make all variables global: do not do this  Indiscriminate use of global variables destroys the safeguards C++ provides to make functions independent and insulated from each other  Using only global variables can be especially disastrous in large programs with many user-created functions
  • 33. Lifetime of Variables  A variable’s scope can be thought of as the space in the program where the variable is valid  In addition to space dimension represented by scope, variables have a time dimension that refers to the length of time storage locations are reserved for a variable  This time, dimension is referred to as the variable’s lifetime  When and how long a variable’s storage locations are kept before they are released can be determined by the variable’s storage category
  • 34. Variable Storage Categories The four available storage categories are: auto static extern register
  • 35. Local Variable Storage Categories  Local variables can be members only of the auto, static, or register storage categories  Storage for automatic local variables is reserved or created automatically each time a function is called  As long as the function hasn’t returned control to its calling function, all automatic variables local to the function are “alive”  A local static variable isn’t created and destroyed each time the function declaring it is called  Local static variables remain in existence for the program’s lifetime
  • 38. Global Variable Storage Categories  Global variables are created by definition statements external to a function By their nature, global variables do not come and go with the calling of a function After a global variable is created, it exists until the program in which it’s declared has finished executing  Global variables can be declared with the static or extern storage category, but not both
  • 39. Quiz one (10%) 15 minutes 1. Identify the error and reWrite of the following code. #include<iostream> using namespace std; int main() { count=0; ++count; cout<<"value of counter is:'<<countt; return 0 } 2. Write the output of the following code. count=0; ++count; cout<<"value of counter is:"<<count<<","; count=count+10; count--; count=count%2; cout<<count++<<“/t"; count=count*10; --count; cout<<count; 3. Write a program in C++ that converts kilometers per hour to miles per hour using function. 4. Write a program in C++ to convert temperature in Kelvin to Fahrenheit using function.