Introduction. What is function? Multiple functions form a larger program Modular programming

Similar documents
C++ Programming Lecture 11 Functions Part I

A. Introduction to Function 1. Modular Programming input processing output functions library functions 2. Function 1. Benefit of Using Functions

Summary of basic C++-commands

Chapter 6 - Notes User-Defined Functions I

Engineering Problem Solving with C++, Etter/Ingber

A function is a named group of statements developed to solve a sub-problem and returns a value to other functions when it is called.

Chapter 2. Outline. Simple C++ Programs

3. Functions. Modular programming is the dividing of the entire problem into small sub problems that can be solved by writing separate programs.

Computer Science & Engineering 150A Problem Solving Using Computers

Chapter 3. Computer Science & Engineering 155E Computer Science I: Systems Engineering Focus. Existing Information.

Computer Science & Engineering 150A Problem Solving Using Computers. Chapter 3. Existing Information. Notes. Notes. Notes. Lecture 03 - Functions

C++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 6: User-Defined Functions I

4. C++ functions. 1. Library Function 2. User-defined Function

C++ Quick Reference. switch Statements

Chapter 6: User-Defined Functions. Objectives (cont d.) Objectives. Introduction. Predefined Functions 12/2/2016

Functions. Lecture 6 COP 3014 Spring February 11, 2018

Lecture 04 FUNCTIONS AND ARRAYS

C++ Overview. Chapter 1. Chapter 2

3.1. Chapter 3: The cin Object. Expressions and Interactivity

Functions. A function is a subprogram that performs a specific task. Functions you know: cout << Hi ; cin >> number;

Programming Fundamentals. With C++ Variable Declaration, Evaluation and Assignment 1

Introduction to Algorithms and Data Structures. Lecture 6 - Stringing Along - Character and String Manipulation

Lab Instructor : Jean Lai

Function. Mathematical function and C+ + function. Input: arguments. Output: return value

More Flow Control Functions in C++ CS 16: Solving Problems with Computers I Lecture #4

Outline. Functions. Functions. Predefined Functions. Example. Example. Predefined functions User-defined functions Actual parameters Formal parameters

Methods CSC 121 Fall 2014 Howard Rosenthal

CSC 307 DATA STRUCTURES AND ALGORITHM ANALYSIS IN C++ SPRING 2011

C++ Programming: Functions

C++ Functions. Last Week. Areas for Discussion. Program Structure. Last Week Introduction to Functions Program Structure and Functions

BIL 104E Introduction to Scientific and Engineering Computing. Lecture 4

Superior University. Department of Electrical Engineering CS-115. Computing Fundamentals. Experiment No.6

6-1 (Function). (Function) !*+!"#!, Function Description Example. natural logarithm of x (base e) rounds x to smallest integer not less than x

LOGO BASIC ELEMENTS OF A COMPUTER PROGRAM

A SHORT COURSE ON C++

CISC 1110 (CIS 1.5) Introduc2on to Programming Using C++

C Functions. 5.2 Program Modules in C

Week 2: Console I/O and Operators Arithmetic Operators. Integer Division. Arithmetic Operators. Gaddis: Chapter 3 (2.14,3.1-6,3.9-10,5.

Government Polytechnic, Muzaffarpur. Name of the Lab: OBJECT ORIENTED PROGRAMMING

ANSI C Programming Simple Programs

It is necessary to have a single function main in every C program, along with other functions used/defined by the programmer.

Functions. CS111 Lab Queens College, CUNY Instructor: Kent Chin

Operations. Making Things Happen

CT 229 Java Syntax Continued

Department of Computer and Mathematical Sciences. Lab 10: Functions. CS 1410 Intro to Computer Science with C++

FORM 1 (Please put your name and form # on the scantron!!!!) CS 161 Exam I: True (A)/False(B) (2 pts each):

5. Assuming gooddata is a Boolean variable, the following two tests are logically equivalent. if (gooddata == false) if (!

CHAPTER 4 FUNCTIONS. Dr. Shady Yehia Elmashad


Methods CSC 121 Fall 2016 Howard Rosenthal

Chapter 4. Procedural Abstraction and Functions That Return a Value. Copyright 2014 Pearson Addison-Wesley. All rights reserved.

Strings and Library Functions

CHAPTER 4 FUNCTIONS. Dr. Shady Yehia Elmashad

BITG 1233: Introduction to C++

C++ basics Getting started with, and Data Types.

case control statement (switch case)

Introduction to Programming

B.V. Patel Institute of Business Management, Computer & Information Technology, Uka Tarsadia University

Introduction to Engineering gii

GE U111 Engineering Problem Solving & Computation Lecture 6 February 2, 2004

C++ PROGRAMMING. For Industrial And Electrical Engineering Instructor: Ruba A. Salamh

Methods CSC 121 Spring 2017 Howard Rosenthal

Chapter 7 - Notes User-Defined Functions II

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

Chapter 15 - C++ As A "Better C"

C Functions. CS 2060 Week 4. Prof. Jonathan Ventura

Downloaded from

Discussion 1E. Jie(Jay) Wang Week 10 Dec.2

C++, How to Program. Spring 2016 CISC1600 Yanjun Li 1

Programming Language. Functions. Eng. Anis Nazer First Semester

Review. Modules. CS 151 Review #6. Sample Program 6.1a:

Multiple Choice (Questions 1 13) 26 Points Select all correct answers (multiple correct answers are possible)

Chapter 3 - Functions

Chapter 1 INTRODUCTION

Superior University. Department of Electrical Engineering CS-115. Computing Fundamentals. Experiment No.7. User Defined Functions II

Basic memory model Using functions Writing functions. Basics Prototypes Parameters Return types Functions and memory Names and namespaces

I/O Streams and Standard I/O Devices (cont d.)

Dr M Kasim A Jalil. Faculty of Mechanical Engineering UTM (source: Deitel Associates & Pearson)

Functions and an Introduction to Recursion Pearson Education, Inc. All rights reserved.

UNIT - I. Introduction to C Programming. BY A. Vijay Bharath

CSI31 Lecture 5. Topics: 3.1 Numeric Data Types 3.2 Using the Math Library 3.3 Accumulating Results: Factorial

CS31 Discussion 1E. Jie(Jay) Wang Week5 Oct.27

Top-Down Design Predefined Functions Programmer-Defined Functions Procedural Abstraction Local Variables Overloading Function Names

C++ Arrays. Arrays: The Basics. Areas for Discussion. Arrays: The Basics Strings and Arrays of Characters Array Parameters

1- Write a single C++ statement that: A. Calculates the sum of the two integrates 11 and 12 and outputs the sum to the consol.

PIC 10A. Lecture 3: More About Variables, Arithmetic, Casting, Assignment

CHAPTER 4 FUNCTIONS. 4.1 Introduction

BITG 1113: Array (Part 2) LECTURE 9

Understanding main() function Input/Output Streams

Lecture 5: Methods CS2301

CHRIST THE KING BOYS MATRIC HR. SEC. SCHOOL, KUMBAKONAM CHAPTER 9 C++

ASSIGNMENT CLASS-11 COMPUTER SCIENCE [C++]

Introduction to Functions in C. Dr. Ahmed Telba King Saud University College of Engineering Electrical Engineering Department

Programming in MATLAB

Functions in C++ Problem-Solving Procedure With Modular Design C ++ Function Definition: a single

Engineering Problem Solving with C++, 3e Chapter 2 Test Bank

Engineering Problem Solving with C++, Etter

Functions. Systems Programming Concepts

Functions. Prof. Indranil Sen Gupta. Dept. of Computer Science & Engg. Indian Institute t of Technology Kharagpur. Introduction

Ordinary Differential Equation Solver Language (ODESL) Reference Manual

Transcription:

FUNCTION CSC128

Introduction What is function? Module/mini program/sub-program Each function/module/sub-program performs specific task May contains its own variables/statements Can be compiled/tested independently An approach to handle complexity in solving problems where:- A larger / complex problem is broken up into smaller problems (less complex) The solution to the problem (a module), consists of a combination of solutions for the smaller problems (sub modules) Multiple functions form a larger program Modular programming Break 1 large program or 1 module into sub-modules

Introduction

Example WITHOUT functions int main() float num1, num2, sum; cin >> num1 >> num2; sum = num1 + num2; cout << "Total Sum: " << sum; return 0; 4

Example WITH functions 1/2 float num1, num2, sum; void getinputs(); void calculatesum(); void displaysum(); int main() getinputs(); calculatesum(); displaysum(); return 0; Variables declaration Modules/functions declaration Main function Calling 5 modules/functions

Example WITH functions 2/2 void getinputs() cin >> num1 >> num2; Function Definitions or the actual modules are void calculatesum() here, right after void main(). Each module perform sum = num1 + num2; specific task void displaysum() cout << "Total Sum: " << sum; 6

Example WITHOUT and WITH functions

Benefits of functions Divide and conquer Manageable program development Software reusability Use existing functions as building blocks for new programs Abstaction-hide internal details (library functions) Avoid repetition Simplify main() function/program Planning, coding, testing, debugging, understanding, maintaining a computer program will be easier Same function can be reused in another program Prevent function duplication Reduce time of writing a program

Introduction TWO (2) types of functions :- [1] Pre-defined/built-in/library Required special pre-processor (*.h files older version) iostream: cin, cout cstring: strcpy, strcmp cmath: sqrt(), pow(), abs() [2] Programmer-defined/independent Depends on programmer what kind of task will be performed by the function

Contents Predefined Function User defined Function

Family of function

Predefined function

Predefined Function Functions that have been defined by the producer of a compiler. Declaration of the functions are stored in header file. (.h extension older version) Also known as built in functions Used by the programmers to speed up program writing.

Predefined Function Programmers may use the existing code to perform common tasks without having to rewrite any code. These functions are predefined by the producer of a compiler, (C++) and are stored in the header files (.h files) called libraries To use a pre defined function, appropriate library file must be included in the program using the #include directive.

Those without the.h is C++ header files while those with.h are C header files. This only applies to the standard header files in C++. The old standard used the #include <filename.h> syntax. When namespaces and templates were added to the language, the standard was changed to #include <filename> The #include <filename.h> was common in C++ code prior to the C++ standard. The standard changed it to #include <filename> with everything from the header placed in the std namespace.

Predefined Function Header files Functions Descriptions cmath pow(x, y) Raise to power. sqrt(x) floor(x) ceil(x) abs(x) Compute square root. Round down value. Round up value. Absolute value cstring strcpy(x,y) Copy sequence of character strcmp(x,y) strcat(x,y) To compare two sequence of character To concatenate sequence of character

Predefined Function iomanip: header file to manipulate input/output data. Built-in functions: Function setw(x) setfill(x) setprecision(x) Description Set field width to x Set the fill character with x Set the floating point precision to x 17

Predefined Function cstring: header file contains string manipulation functions. Built-in functions: Function Description strcmp(s1, s2) Compares one string to another strcpy(s1, s2) Copies one string to another strlen(s) Calculates the length of a string strcat(s1, s2) Appends one string to another 18

Predefined Function cctype: header file for character handling functions. Built-in functions: Function toupper(c) tolower(c) isupper(c) islower(c) Description Converts character c from lowercase to uppercase letter Converts character c from uppercase to lowercase letter Return TRUE if c is an uppercase letter Return TRUE if c is a lowercase letter 19

Predefined Function cctype: header file for character handling functions. Built-in functions: Function isdigit(c) isalpha(c) isspace(c) Description Return TRUE if c is digit Return TRUE if c is an alphanumeric character Return TRUE if c is a space character 20

Predefined Function cmath: header file for mathematical functions. Built-in functions: Functions pow(x, y) sin(x) acos(x) cosh(x) sqrt(x) cos(x) atan(x) tanh(x) ceil(x) tan(x) log(x) log10(x) floor(x) asin(x) sinh(x) exp(x) fabs(x) 21

Predefined Function # include<iostream> # include<cmath> using namespace std; void main() int x,y,z; y = 2, z = 4; x = pow(z,y); cout<< x: <<x; Function call Function call: is used to call or to invoke a function. z and y are called parameters or arguments of the function pow.

Predefined Function #include <iostream> #include <cmath> using namespace std; void main() cout << pow(2, 3); Pre-processor files Power function retrieved from cmath cout function retrieved from iostream 23

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.

Variables

Variables Two types of variables: 1) Local variable 2) Global variable

Variables local variable Variable that is declared within a body of a function definition. Variable that is declared within the main() function are said to be local to main function.

Variables local variable Example: #include <iostream> using namespace std; void main() int a; Local variable

Variables local variable

Variables global variable Variable that is declared outside and above main function. Accessible to all function in the program. Its value can be changed at any point during execution New value will replace old value assigned to a particular global variable It is not wise to use global variables any more than you have to.

Variables global variable Example: global variable #include <iostream> using namespace std; int a; void main()

Variables global variable

User defined function

User-defined function Functions that are defined / written by the programmer / user in a program. Characteristics of user-defined function: A function name is named with unique name. Can be called from other function A function performs a specific task. Task is a discrete job that the program must perform as part of its overall operation. A function is independent. A function may receive values from the calling program (function call). A function may return value to the calling program (function call).

User-defined function In general a function has the following syntax: returnvaluetype functionname(list of parameters)

User-defined function void/ value returning function. With/ without parameters. returnvaluetype functionname(list of parameters)

User-defined function To create a user defined function, you must write the following: 1) Function prototype (function s declaration) 2) Function definition 3) Function call If the function definition is defined before the main function, you may not need the function prototype.

User-defined Function Requirements variable declarations; //global void functiona(); void main() variable declarations; //local functiona(); statements; //other statements void functiona() statements; 1) Function prototype declarations 2) Function call 3) Function definitions 40

User-defined Function Requirements int calculatesum(int, int); void main() int num1, num2; cin >> num1 >> num2; cout << calculatesum(num1, num2); void calculatesum (int x, int y) int total = x + y; return total; 1) Function prototype declarations 41 2) Function call 3) Function definitions

User-defined Function Requirements int calculatesum(int, int); void calculatesum (int x, int y) int total = x + y; return total; void main() int num1, num2; cin >> num1 >> num2; calculatesum(num1, num2); 1) Function prototype declarations 3) Function definitions 2) Function call 42

1) Function prototype Is used to declare a function. Problem statement: to create a function to calculate total of 2 numbers. Steps: 1) Identify function name. 2) void/ value returning function? 3) With/ without parameter?

1) Function prototype..cont. void function without parameter void calculatesum(); Can you see the differences? void function with parameter? void calculatesum (int x, int y); Value returning function, without parameter. (return integer value) int calculatesum(); Value returning function, with parameter.. (return integer value) int calculatesum (int x, int y);

1) Function prototype..cont. Is placed in between preprocessor directives and main function. #include <iostream> using namespace std; void calculatesum (); void main()

2) Function definition Is a block of code (statements) that perform specific task. Statements are usually declaration and/or executable statements. Must be declared 1 st before it can be used Place it BEFORE or AFTER main()

2) Function definition..cont. Syntax: Function header returntype functionname (type parameter_list) declaration(s); statement(s); return expression; Function body 47

2) Function definition..cont. Example using void return type: void sumnumbers(int, int, int) int total = a + b + c; cout << total; If you use void in function header, you must NOT have return statement inside function body 48

2) Function definition..cont. Example using int return type: int sumnumbers(int, int, int) int total = a + b + c; return total; If you use int/float/double/long/char in function header, you MUST HAVE return statement inside function body 49

3) Function call When a function is called, the program control is passed to the called function and the statements inside the function will be executed until control is passed back the calling function To call a function, specify the function name and the values of the parameters [if any]

3) Function call..cont. [3a]Function call that returns no value Contains void return type on function header Once complete execute last statement in function definition, the control is passed back to the statement that calls the function in the calling function Then, next statement will be executed 51

3) Function call..cont. [3b]Function call that returns a value Contains other than void on function header When execute of function definition is complete, control is passed back to the calling function with a value That returned value can be used: In an arithmetic expression, logical expression, assignment statement, output statement 52

Recap No return value Return value Without parameters void calculatesum () int calculatesum () With parameters void calculatesum (int a, int b) int calculatesum (int a, int b) 53

void function without parameter General syntax:

void function without parameter Example: return_type function_name parameter_list void caltotal() int a, b, result; a = 1, b = 2; result = a + b; Function header function_body cout<<result;

void function without parameter Function call: is used to invoke/ to call a function to execute task. Is placed inside main function. Example: int main() caltotal(); return 0;

void function without parameter #include<iostream> using namespace std; void Full code: caltotal(); int main() caltotal(); return 0; Function header Function prototype Function call void caltotal() int a, b, result; a = 1, b = 2; result = a + b; cout<<result; Function definition

void function without parameter Exercise 1: using void function, write a program to calculate an average of 3 numbers.

void function with parameter Parameter: Parameter is ways how calling function and called function are communicated. Through parameter, data can pass from calling function to called function and from called function to calling function. Formal parameters are optional Two types of parameter: Value parameter Reference parameter

void function with parameter Value parameter A formal parameter that receives a copy of the content of the corresponding actual parameter. Reference parameter* A formal parameter that receives the location of the corresponding parameter.

void function with parameter (value) void caltotal(int x, int y) int result; result = x + y; cout<<result; Formal parameter

void function with parameter (value) #include<iostream> using namespace std; void caltotal(int, int); void main() int a; int b; a = 2, b = 3; caltotal(a, b); void caltotal(int x, int y) int result; Actual parameter result = x + y; cout<<result;

void function with parameter (value) void Example: findstatus(int); void main() int mark; cout<< enter mark: ; cin>>mark; findstatus(mark); void findstatus(int value) if (value>=80) cout<< excellent ; else if(value>=60) cout<< good ; else if(value>=50) cout<< pass ; else cout<< fail ;

void function with parameter (value) Exercise 2: using void function with parameter, write a program that require a user to input 2 numbers and determine the maximum number.

Value returning function Is a function that after completing its assigned task, return precisely one value to the calling function (function call). Why we return a value? To use it for further calculation or process. Is used in an assignment statement or in an output statement.

Value returning function Function definition: Return type or data type int caltotal(int x, int y) int result; result = x + y; return result;

Value returning function #include<iostream.h> int caltotal(int, int); Function prototype void main() int a,b,z; a = 2, b = 3 z = caltotal(a, b); cout<< total : <<z; Function call: Assignment statement int caltotal(int x, int y) int result; result = x + y; return result;

Value returning function #include<iostream.h> int caltotal(int, int); void main() int a,b; a = 2, b = 3 cout<< total : << caltotal(a, b); Function call: Output statement int caltotal(int x, int y) int result; result = x + y; return result;

Passing Value Between Functions cout 2 return 2 int calcsum(int, int); void main() int a, b; cin >> a >> b; cout << calcsum(a, b); int calcsum(int x, int y) return (x + y); Example using return statement a = x = 1 b = y = 1 69

Value returning function Exercise 3: using value returning function, write a program to determine maximum value of two numbers.

Value returning function Exercise 4: using value returning function write a program to calculate an average of three numbers.

Function (reference parameter)

Function reference parameter If a formal parameter is a reference parameter It receives the address (memory location) of the corresponding actual parameter During program execution to manipulate the data The address stored in the reference parameter directs it to the memory space of the corresponding actual parameter Can pass one or more values from a function Can change the value of the actual parameter

Function reference parameter A reference parameter receives and stores the address of the corresponding actual parameter Reference parameters are useful in three situations: Returning more than one value Changing the actual parameter When passing the address would save memory space and time.

Function reference parameter

Function value parameter #include <iostream> using namespace std; void addfour(int a, int b); void main() int num1,num2; num1 = 3; num2 = 1; cout<< num1<<num2<<endl; addfour(num1,num2); cout<<num1<<num2<endl; In main BEFORE calling addfour function In addfour function void addfour(int a, int b) a = a + 4; Value parameter b++; cout<<a<<b<<endl; In main AFTER calling addfour function num1 3 a 7 num1 3 num2 1 b 2 num2 1

Function reference #include parameter <iostream> using namespace std; void addfour(int& a, int b); void main() int num1,num2; num1 = 3; num2 = 1; cout<< num1<<num2<<endl; addfour(num1,num2); cout<<num1<<num2<endl; In main BEFORE calling addfour function In addfour function void addfour(int &a, int b) a = a + 4; //line 1 b++; //line 2 cout<<a<<b<<endl; Reference parameter When the value of a changes, value num1 changes as well Reference parameter In main AFTER calling addfour function num1 3 a 7 num1 7 num2 1 b 2 num2 1

Function reference parameter How it works? In main BEFORE calling addfour function In addfour function num1 3 a num2 1 b 1 Before statement in line 1 execute!!

In main BEFORE calling addfour function In addfour function num1 7 a num2 1 b 2 In function addfour, after statement in line 1 and line 2 execute!!

Scope of a local and global variable #include <iostream> void caltotal(); using namespace std; void main() int a; void caltotal() int a; Variable a in function main() is different from variable a in Function caltotal()

Global variable #include <iostream> using namespace std; void caltotal(); int num1; void main() int num2; total = num1 + num2 void caltotal() int num2; total = num1 num2; Variable num1 is a global variable that are accessible to all function definitions in the file.

Summary void function: a function that does not have a data type A return statement without any value can be used in a void function to exit function early The heading of a void function starts with the word void To call a void function, you use the function name together with the actual parameters in a stand-alone statement

Summary (continued) Two types of formal parameters: value parameters and reference parameters A value parameter receives a copy of its corresponding actual parameter A reference parameter receives the address (memory location) of its corresponding actual parameter

Summary (continued) If a formal parameter needs to change the value of an actual parameter, in the function heading you must declare this formal parameter as a reference parameter Variables declared within a function (or block) are called local variables Variables declared outside of every function definition (and block) are called global variables

Summary (continued) If a formal parameter needs to change the value of an actual parameter, in the function heading you must declare this formal parameter as a reference parameter Variables declared within a function (or block) are called local variables Variables declared outside of every function definition (and block) are called global variables