Presentation is loading. Please wait.

Presentation is loading. Please wait.

EKT120: Computer Programming

Similar presentations


Presentation on theme: "EKT120: Computer Programming"— Presentation transcript:

1 EKT120: Computer Programming
Week 5 – Functions (1) UniMAP SemII-09/10 EKT120: Computer Programming

2 EKT120: Computer Programming
Outline Why use functions? Functions in C Pre-defined functions User-defined functions Function prototypes Function definitions Function calls What about number, order and type of parameter? Functions that do not return a value Functions that return a value Miscellaneous about functions Sample application Scope and mechanics of passing values to functions UniMAP SemII-09/10 EKT120: Computer Programming

3 EKT120: Computer Programming
Why use functions? Let say you want to print one row of number 8 and one row of number 9 #include <stdio.h> int main() { int i, j; //print one row of number 8 for(i=1; i<=10; i++) printf(“8"); printf("\n"); //go to new line //print one row of number 9 for(j=1; j<=10; j++) printf(“9“); return 0; } UniMAP SemII-09/10 EKT120: Computer Programming

4 EKT120: Computer Programming
Why use functions? It seems that you are doing the same thing twice!!(i.e. printing two rows of numbers) This is wasting time and not flexible!! So, need to use function UniMAP SemII-09/10 EKT120: Computer Programming

5 EKT120: Computer Programming
Why use functions? #include <stdio.h> void display(int); //function prototype int main() { display(8); //function call display(9); //function call return 0; } void display(int value) //function definition { int i; for(i=1; i<=10; i++) printf("%d", value); printf("\n"); //go to new line UniMAP SemII-09/10 EKT120: Computer Programming

6 EKT120: Computer Programming
Functions in C Functions can be created to execute small, frequently-used tasks In C, there are predefined functions or sometimes called standard functions, and there are user-defined functions. Predefined functions are already available functions that can be used, called library The usage is like stdio.h, in which the library name must be #included at the top of the source code (preprocessor directive) UniMAP SemII-09/10 EKT120: Computer Programming

7 Predefined Functions (Library)
Common libraries are stdio.h, math.h, string.h, and stdlib.h stdio.h related functions: printf, scanf,etc math.h related functions: sin, cos, exp, pow, sqrt, etc. string.h related functions: strcmp, strcpy, strlen, etc. stdlib.h related functions: abs, fabs UniMAP SemII-09/10 EKT120: Computer Programming

8 Predefined Functions (Library)-example
#include <stdio.h> #include <math.h> #include <string.h> void main() { string name; int vol1, vol2, n, R, kTemp, length; strcpy(name, “Marina”); vol2 = vol1 * exp(n * R * kTemp); length = strlen(“Mahathir”); } UniMAP SemII-09/10 EKT120: Computer Programming

9 User-Defined Functions
What do we need to define and make use of user-defined functions? Function prototypes Function definitions Function calls UniMAP SemII-09/10 EKT120: Computer Programming

10 EKT120: Computer Programming
Function Prototypes Function prototype is a declaration; indicates the function exists Should have function name, return type and parameter Argument name is not compulsory in function header Function prototype has the following form: <return_type> <function_name> (arg_type arg_name, ...); int sum (int num1,int num2); int sum (int,int); //is also acceptable semicolon UniMAP SemII-09/10 EKT120: Computer Programming

11 EKT120: Computer Programming
Function Definitions Function definition includes the body of a function Function definition has the following form: <return_type> <function_name> (arg_type arg_name, ...) { … statements … } int sum (int num1,int num2) int add; add = num1 + num2; return(add); Notice that argument name is used in the function body Unlike function prototype, argument name in function definition must be included in function header no semicolon function header UniMAP SemII-09/10 EKT120: Computer Programming

12 EKT120: Computer Programming
Function Calls Consists of a function name followed by an argument expression list enclosed in parentheses Function call has the following form: <function_name> (exp, exp ...) exp is an expression – can be variable or constant result = sum(x,y); UniMAP SemII-09/10 EKT120: Computer Programming

13 Example of function in program
//This program sums up two numbers #include <stdio.h> int sum(int, int); //function prototype int main() { int x,y, result; printf( “Enter x and y : ”); scanf(“%d %d”, &x, &y); result = sum(x,y); //function call printf(“Sum is : %d”, result); return 0; } int sum(int num1, int num2)//function definition { int add; add = num1+num2; return(add);} function header EKT120: Computer Programming

14 What about number, order and type of parameter?
Number, order and type of parameters in the argument list of a function call and function definition MUST match. If function prototype and definition have three parameters then the function call must have three parameters. If the types are int, float and double in the prototype, the types in the function call should be int, float and double, respectively. UniMAP SemII-09/10 EKT120: Computer Programming

15 What about number, order and type of parameter?(e.g1)
Note that there are two arguments for function prototype, function definition and function call; the first is int and the second is double. With these three we have met the number, order and type requirements. UniMAP SemII-09/10 EKT120: Computer Programming

16 What about number, order and type of parameter?(e.g2)
int sum(int, int); //function prototype int sum(int num1, int num2) //function definition sum(x,y); //function call Refer to program in slide 13 Number, order and type parameter are met because: there are two parameters, the parameters are listed in order i.e respectively and first parameter is int and second parameter is int. UniMAP SemII-09/10 EKT120: Computer Programming

17 Functions that do not return a value
//This program sums up two numbers #include <stdio.h> void sum_print(int, int); //function prototype void function1(); //function prototype int main() { int x,y; function1(); //function call printf(“Enter x and y: ”); scanf(“%d %d”, &x, &y); sum_print(x,y); //function call return 0; } void sum_print(int num1, int num2) //function definition { int add; add = num1+num2; printf(“Sum is: %d”,add); void function1() { printf(“Welcome to this program\n”); } UniMAP SemII-09/10 EKT120: Computer Programming

18 Functions that return a value
//This program sums up two numbers #include <stdio.h> int sum(int,int); //function prototype int main() { int x,y,result; printf(“Enter x and y: ”); scanf(“%d %d”, &x, &y); result = sum(x,y); //function call printf(“Sum is : %d”,result); return 0; } int sum(int num1, int num2) //function definition { int add; add = num1+num2; return(add); UniMAP SemII-09/10 EKT120: Computer Programming

19 Miscellaneous about functions
Function call used as logical expression int calc(int,int); //function prototype int main(void) { int num1, num2; scanf(“%d %d”,&num1,&num2); if(calc(num1,num2)>100) //function call used as logical expression printf(“result greater than 100”); else printf(“result less than 100”); return 0; } int calc(int n1,int n2) { int answer; answer=n1+n2; return(answer); UniMAP SemII-09/10 EKT120: Computer Programming

20 Miscellaneous about functions
Function call used in printf statement int calc(int,int); //function prototype int main(void) { int num1,num2; scanf(“%d %d”,&num1,&num2); printf(“Jawapan : %d”,calc(num1, num2)); //function call returns a //value and puts in printf return 0; } int calc(int n1,int n2) { int answer; answer=n1+n2; return(answer); UniMAP SemII-09/10 EKT120: Computer Programming

21 Miscellaneous about functions
Rules regarding naming convention for variables num1 passes value to n1, num2 passes value to n2 Better use different variable names for parameters in main AND parameters in function definition int calc(int,int); //prototype function int main(void) { int num1,num2,result; //declare like this scanf(“%d %d”,&num1,&num2); result = calc(num1,num2); //function call printf(“jawapan : %d“,result); return 0; } //function definition int calc(int n1,int n2) //simply declare like this { int answer; answer=n1+n2; return(answer); UniMAP SemII-09/10 EKT120: Computer Programming

22 EKT120: Computer Programming
Sample application Write a C program that calculates and prints addition and subtraction of numbers. Your program should have functions: add : adds two numbers subtract : subtracts two numbers print_result : prints results from calculation UniMAP SemII-09/10 EKT120: Computer Programming

23 Sample application(cont)
#include <stdio.h> int add(int,int); int subtract(int,int); void print_result(int); int main() { int num1,num2,answer; char op; printf(“Enter two numbers and operator:”); scanf(“%d %d %c”, &num1,&num2,&op); switch(op) { case ‘+’ :answer=add(num1,num2);break; case ‘-’ :answer=subtract(num1,num2);break; default: printf(“Invalid operator”); exit(0); } print_result(answer); return 0; int add(int x,int y) { int sum; sum = x+y; return(sum); } int subtract(int x,int y) int sub; sub=x-y; return(sub); void print_result(int ans) printf(“Answer is %d”, ans); UniMAP SemII-09/10 EKT120: Computer Programming

24 EKT120: Computer Programming
1 /* Fig. 5.4: fig05_04.c 2 Finding the maximum of three integers */ 3 #include <stdio.h> 4 5 int maximum(int, int, int); /* function prototype */ 6 7 int main()‏ 8 { 9 int a, b, c; 10 11 printf( "Enter three integers: " ); 12 scanf( "%d %d %d", &a, &b, &c ); 13 printf( "Maximum is: %d\n", maximum( a, b, c ) ); 14 15 return 0; 16 } 17 18 /* Function maximum definition */ 19 int maximum(int x, int y, int z)‏ 20 { 21 int max = x; 22 23 if ( y > max )‏ max = y; 25 26 if ( z > max )‏ max = z; 28 29 return max; 30 } 1. Function prototype (3 parameters)‏ 2. Function call 3. Function definition Program Output Enter three integers: Maximum is: 85 UniMAP SemII-09/10 EKT120: Computer Programming

25 Scope and Mechanics of Passing Values to Functions
Scope refers to the region in which a declaration is active File scope is also called global variable declared at the top of a source file declarations not placed in any functions can be used by any statements that are being executed in the system Function scope is also called local variable declared in a block { … } scope is within its block – lifetime while the block is executed UniMAP SemII-09/10 EKT120: Computer Programming

26 Global Variable : Example
#include <stdio.h> int global = 3; //This is the global variable void ChangeGlobal( ); int main(void) { printf("%d\n“, global); //Reference to global //variable in a function ChangeGlobal(); printf("%d\n", global); return 0; } void ChangeGlobal( ) { global = 5; } //Reference to global UniMAP SemII-09/10 EKT120: Computer Programming

27 Global Variable : Example
The output will be: 3 5 UniMAP SemII-09/10 EKT120: Computer Programming

28 Local Variable : Example
#include <stdio.h> void ChangeLocal(); int main(void) { int local = 3; //This is a local variable printf("%d\n", local); //Reference to local //variable in a function ChangeLocal(); printf("%d\n", local); return 0; } void ChangeLocal() { int local = 5; //This is another local variable printf("%d\n", local); } UniMAP SemII-09/10 EKT120: Computer Programming

29 Local Variable : Example
The output will be: 3 5 UniMAP SemII-09/10 EKT120: Computer Programming

30 EKT120: Computer Programming
End Week 5 – Functions (1) Q & A! UniMAP SemII-09/10 EKT120: Computer Programming


Download ppt "EKT120: Computer Programming"

Similar presentations


Ads by Google