chapter 5 modular programming

58
Chapter 5 Modular Programming

Upload: kumpulan3bm

Post on 27-Oct-2015

29 views

Category:

Documents


6 download

DESCRIPTION

moduler programming

TRANSCRIPT

Page 1: Chapter 5 Modular Programming

Chapter 5Modular

Programming

Page 2: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

2

Objectives

Introduce the following topics : The need for functions How to write functions How to call and return from functions

Stresses the use of structured programming or modular programming

Page 3: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

3

Overview C program made of one or more function,

one and only one of them must be named

main. Execution of program always starts and

ends with main, but it can call other function.

Function is used to repeat the same process with a different input or output. It might have no input or output.

A function in C can perform a particular task, and supports the concept of modular programming design techniques.

Page 4: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

4

Types of Functions

Built-in function/Pre-defined function Functions already existed in the standard

library of C. Used to carry out a number of commonly

used operations @ calculations e.g : printf();scanf();

User-defined function Programmers define their own function to

carry out various individual tasks

Page 5: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

5

User-defined Function

Must be declared and defined. Function declaration also called as

function prototype. Function definition is the body itself

contains the code needed to complete the task.

Function can be called (invoked) by specifying its name.

Page 6: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

6

User-defined Function

3 main elements in using functions: Function declaration/prototype Function definition Calling a function

Page 7: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

7Function Declaration / PrototypeSyntax :

data_type function_name (arguments);

Global function declaration if write outside of main function

Local function declaration if write inside of main function

• Compulsory• Must be

synchronizes with return data type

• Compulsory• Comply with rules

of legal identifier

• Optional (depends on case)• ONLY state types of

variables (if any)

Page 8: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

8

Example

GLOBAL FUNCTION LOCAL FUNCTION

#include <stdio.h>

void testprt (int);

main(){

...statements}

#include <stdio.h>

main(){

void testprt (int);

...statements}

Page 9: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

9

Calling FunctionSyntax :

function_name (arguments);

Example :

testprt(num); @

getnum = testprt(num);

• Compulsory• Comply with rules

of legal identifier

• Optional (depends on case)• MUST consists of constant, value

of variable or address of variable

Page 10: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

10

Function DefinitionSyntax :

data_type function_name (arguments)

{

variable declaration

return expression

}

• Compulsory• Must be

synchronizes with return data type

• Compulsory• Comply with rules

of legal identifier

• Optional (depends on case)• MUST state types and

name of variables (if any)

Page 11: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

11Structure of Function DefinitionThe body of a C function must be

enclosed between braces { }.Return value : the data type that will

be return by the function, void for no return value.

Arguments : it can contain parameters or no parameters.

Page 12: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

12

void display(int no){no = 5;

printf("\nValue for num is %d“, no);}

Example

Page 13: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

13

Example of Full Programs#include <stdio.h>

#include <conio.h>

void display (); // Function declaration / Function prototype

void main()

{

printf("\nFirst function");

display();// Calling a function

printf("\nI have finish called a function");

getch();

}

//Define a function

void display()

{

printf("\nThis is my first function");

}

Page 14: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

14

FIGURE 4-5 : Declaring, Calling and Defining Functions

Page 15: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

15

Exercise

Write a function name number that read an integer number from user and display it on the screen.

Write a function name getSum that read two integer numbers from users and display the sum on the screen.

Page 16: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

16

Basic Function Designs

1. void functions with no parameters2. void functions with parameters3. Functions that return a value but

have no parameters4. Functions that return a value and

have parameters.

Page 17: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

17void functions with no parameters

FIGURE 4-5 : void functions with no parameters

Page 18: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

18

FIGURE 4-6 void Function with Parameters

void functions with parameters

Page 19: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

19PROGRAM 4-2 void Function with a Parameter

Page 20: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

20PROGRAM 4-2 void Function with a Parameter

Page 21: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

21

FIGURE 4-7 Non-void Function without Parameters

Non-void functions without parameters

Page 22: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

22

FIGURE 4-8 Calling a Function That Returns a Value

Non-void functions with parameters

Page 23: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

23PROGRAM 4-3 Read a Number and Square It

Page 24: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

24PROGRAM 4-3 Read a Number and Square It

Page 25: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

25PROGRAM 4-3 Read a Number and Square It

Page 26: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

26PROGRAM 4-3 Read a Number and Square It

Page 27: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

27Returning Values from FunctionA function may or may not return a

value to a calling function.Terminate the function definition with

a return statement if it has a return type.

The value returned is given by the expression following the keyword return.

Use void if the function does not return any value.

Page 28: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

28

main(){

float calc(int), num;

num = calc(10);

printf (“%.2f”,num);}

float calc(int no){

float dfloat = 5;no *= dfloat;

return no;}

Example

Page 29: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

29

Exercise

Write a function name get_Sum that read two integer number from user and return the sum of these two number to the main. Display the sum at the main function.

Page 30: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

30

Exercise

Write a function based on the following criteria:

Function Name: display

Purpose : display statement “ This function return nothing”.

Called by : main

Receives : none

Returns : none

Page 31: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

31

Calling A Function

The primary function that controls function calls and their order is called a calling function.

To call function : type its name- including parentheses- follow it with semicolon.

Example : getSum(); A function call in C can appear as an

expression or it can appear an expression statement.

num = calc(10); || display();

Page 32: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

32

Calling A Function ....cont

A user defined-function can call another function.

A function can be called many times.

#include <stdio.h>

void printOne(int x);

int main(){ int a = 5;

printOne(a); a = 33; printOne(a);

return 0;}

void printOne(int x){ printf(“%d\n”,x); return;}

Page 33: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

33Exercise Calling function or called function?void main()

{ …..

display();

}

void display()

{ …….

get_sum();

}

int get_sum()

{ ……

return sum;

}

NESTED FUNCTION

Page 34: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

34Passing Arguments To Functions Variable declared in a function are local

variable. Their scope is limited to that function and

cannot be access from another function. The functions are independent of each

other. To pass value from one function to another

must use arguments or parameters.

Page 35: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

35Passing Arguments To FunctionsThe calling function passes

arguments (e.g., int,float,char) to the called function.

The called function receives and stores the argument value its parameters.

Once the values have been received into parameters, they behave like local variables declared within that function.

Page 36: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

36Passing Arguments To FunctionsThe number and type of arguments

passed to the called function must agree with the number and type of parameters in the called function.

function(arg1, arg2, arg3) Calling function

function(par1, par2, par3) Called function

Page 37: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

37

Exercise

Write a function name get_Sum that receive two integer number from main. get_Sum will add these two number and return the sum of these two number back to the main. Display the sum at main.

Page 38: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

38

Exercise

Write a function name display_Age that receive age from main. display_Age will display age and return nothing to main function.

Page 39: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

39Exercise Write an appropriate main program and two

functions based on the following criteria:

Function Name: get_Age

Purpose : get an age from user

Called by : main

Receives : none

Returns : age

Function Name: display_Age

Purpose : display an age

Called by : main

Receives : age

Returns : none

Page 40: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

40Exercise Write an appropriate main program and two

functions based on the following criteria:

Function Name: get_Age

Purpose : get an age from user

Called by : main

Receives : none

Returns : none

Function Name: display_Age

Purpose : display an age

Called by : get_Age

Receives : age

Returns : none

Page 41: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

41

INTER-FUNCTION COMMUNICATION

Page 42: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

42

Passing Pointer to a Function Passing pointer to a function is quite

similar as passing other variable. The function declaration and definition

must have the pointer declaration in their argument.

Pass the address of variable when the calling function pass call the called function.

Page 43: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

43

Examplevoid main()

{

void addcon(int *, int *); // prototypes

int x=6,y=7;

printf("\nx is %d, y is %d",x,y);

addcon(&x, &y);

printf("\nx is now %d, y is now %d",x,y);

getch();

}

void addcon(int *px, int *py)

{

*px=*px + 10;

*py=*py + 10;

}

Page 44: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

44

Passing Array to a Function A function can receive the address of an

array by using pointer. The declaration and definition for passing

array arguments is the same as passing a pointer address.

The argument send from the calling function is the name of array.

Page 45: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

45

Example#define n 5

void main()

{

int get_total(int *, int); // function prototype

int total, y[n] = {1,2,3,4,5};

total = get_total(y, n); // function call

printf("\nTotal = %d", total);

getch();

}

int get_total(int *ptr , int x) // function definition

{ int i, total=0;

for (i=0;i<x; i++)

{ total = total + *(ptr + i);

}

return total;

}

Page 46: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

46

Passing Arguments by Value In the example so far, the calling function

passed arguments (value of variables) to the corresponding parameters in the called function.

The called function then used these parameter values to do its computation.

Any changes made to these parameters in the called function did not have any effect on the variables in the calling function that passed the values since only copies or values of the arguments were passed to the called function.

Page 47: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

47

Passing Arguments by Value When only copies of arguments are passed

to a function, this is known as passing arguments by value (or passing by copy).

Page 48: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

48

Example

void modify_Number(int); // prototypes

void main()

{

int number;

printf("\nEnter an integer number: ");

scanf("%d",&number);

printf("\nNumber in main is %d",number);

modify_Number(number);

printf("\n\nNumber in main is %d",number);

getch();

}

//define a function

void modify_Number (int number)

{

number=number + 1;

printf("\n\nNumber in modify_Number is %d",number);

return ;

}

Page 49: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

49Pass Arguments by Reference Called function can change the values of

several variables in the calling function. This can be done by passing the

addressed of variables whose value that will be change from the called function.

When the called function changes the value stored in these memory addresses, the value of variables are also changed since the variables refer to same memory addresses.

Page 50: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

50Pass Arguments by ReferenceThus the address of variables from

calling function is passed to the called function to change the values of variables in the calling.

When a function passes addresses of variables to the corresponding parameters in the called function, it is called passing arguments by reference (or passing by address).

Page 51: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

51

Example

void integer_swap(int* , int*); //prototypes

void main()

{

int x=10,y=20;

printf("\nInitial values of x and y are %d %d\n",x,y);

integer_swap(&x,&y);

printf("\nSwapped values of x and y are %d %d\n",x,y);

getch();

}

//define a function

void integer_swap(int *x , int *y)

{

int temp;

temp = *x;

*x=*y;

*y=temp;

}

Page 52: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

52

Global Variable

Global variables are variable declared outside of any function.

Global variables do not belong to any specific function.

Any change made in the value of a global variable by one function will be “felt” by the other as well.

Global variables can be used for passing values to a function and returning values from it.

Page 53: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

53

Global Variable

It is not recommended to use global variable because the reader of the program does not immediately know which values are being received by the called function and which values are being returned by it.

Page 54: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

54

Built-in Function

C provides a set of commonly used function that programmers can use without having to write any code for them.

These function are called built-in, pre-defined or standard library function.

The built-in function are stored in header file.

Each header file (file with extension .h) contains functions that are related to a particular application.

Page 55: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

55

Built-in FunctionHeader file must be include before

using the functions contained in a header file.

Some of the standard header files are: stdio.h – standard I/O conio.h – screen-handling function math.h – various math function string.h – string handling ctype.h – character-handling function time.h – system time function ………

Page 56: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

56

Built-in Functionconio.h - screen-handling function

textcolor (i) textbackground (i) clrscr() gotoxy()

Page 57: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

57

Built-in Functionmath.h - various math function

sqrt (d) log10 (d) pow(d1,d2) sin(d) cos(d)

Page 58: Chapter 5 Modular Programming

Chapter 8 : Modular Programming

58

Tips

Writing a C program, it is best NOT to sit down at the keyboard and start typing.

THINK first about the program & what it is supposed to do.

The BEST ways: start with the overall goal & divide this goal into several smaller tasks.