Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
FUNCTIONS 
EC201- FUNDAMENTAL 
PROGRAMMING
What is Function 
 Block of code that performs a specific task. 
 It has a name and it is reusable i.e. it can be executed 
from as many different parts in a C Program as required. 
Every function has a unique name. This name is used to 
call function from “main()” function. A function can be 
called from within another function. 
 It also optionally returns a value to the calling program 
 Performs a specific task. A task is a distinct job that your 
program must perform as a part of its overall operation, 
such as adding two or more integer, sorting an array into 
numerical order, or calculating a cube root etc.
Sample Function Call 
#include <stdio.h> 
int main ( ) printf is the name of a predefined 
{ function in the stdio library 
printf (“Hello World!n”) ; this statement is 
return 0 ; is known as a 
} function call 
this is a string we are passing 
as an argument (parameter) to 
the printf function
Function 
• The ‘building blocks’ of a C program 
▫ You’ve used predefined functions already: 
 main() 
 printf(), scanf(), pow() 
▫ User-defined functions 
 Your own code 
 In combination with predefined functions
Sample User-Defined Function 
#include <stdio.h> 
void printMessage ( void ) ; 
int main ( void ) 
{ 
printMessage ( ) ; 
return 0 ; 
} 
void printMessage ( void ) 
{ 
printf (“A message for you:nn”) ; 
printf (“Have a nice day!n”) ; 
}
CHAPTER 6
Examining printMessage 
#include <stdio.h> 
void printMessage ( void ) ; function prototype 
int main ( void ) 
{ 
printMessage ( ) ; function call 
return 0 ; 
} 
void printMessage ( void ) function header 
{ 
printf (“A message for you:nn”) ; function 
printf (“Have a nice day!n”) ; body 
} 
function definition
Program example: functions 
#include<stdio.h> 
kira(int t_semasa, int t_lahir); 
main() 
{ 
int t_semasa,t_lahir,u; 
printf("Please enter your birth year:"); 
scanf("%d",&t_lahir); 
printf("Please enter the current year:"); 
scanf("%d",&t_semasa); 
u = kira(t_semasa,t_lahir); 
printf("nYour age is: %d years oldnn",u); 
return 0; 
} 
kira(int t_semasa, int t_lahir) 
{ 
int umur; 
umur = t_semasa-t_lahir; 
return(umur); 
}
Types of functions 
Functions with no arguments and no return values. 
Functions with arguments and no return values. 
Functions with arguments and return values. 
Functions that return multiple values. 
Functions with no arguments and return values.
Functions with no arguments and no 
return value 
 A C function without any 
arguments means you cannot 
pass data (values like int, char 
etc) to the called function. 
 Similarly, function with no 
return type does not pass back 
data to the calling function. It is 
one of the simplest types of 
function in C. 
 This type of function which 
does not return any value 
cannot be used in an expression 
it can be used only as 
independent statement.
Program example: Functions with no arguments and no return 
value 
#include<stdio.h> 
cetak_line1(); 
cetak_line2(); 
main() 
{ 
printf("Welcome to function in C"); 
cetak_line1(); 
printf("Function easy to learn."); 
cetak_line1(); 
printf("Please make sure you really understand about this topic."); 
cetak_line2(); 
return 0; 
} 
cetak_line1() 
{ 
int i; 
printf("n"); 
for(i=0;i<30;i++) 
{ 
printf("-"); 
} 
printf("n"); 
return 0; 
} 
cetak_line2() 
{ 
printf("n--------------------------------------------------------"); 
return 0; 
}
Functions with arguments and no 
return value 
 In our previous example what we have 
noticed that “main()” function has no 
control over the UDF “printfline()”, it 
cannot control its output. Whenever 
“main()” calls “printline()”, it simply 
prints line every time. So the result 
remains the same. 
 A C function with arguments can 
perform much better than previous 
function type. 
 This type of function can accept data 
from calling function. In other words, 
you send data to the called function 
from calling function but you cannot 
send result data back to the calling 
function. Rather, it displays the result 
on the terminal. But we can control the 
output of function by providing various 
values as arguments.
Program example: Functions with arguments and no return value 
#include<stdio.h> 
tambah(int x, int y); 
main() 
{ 
int x,y; 
printf("Please enter a value x:"); 
scanf("%d",&x); 
printf("Please enter a value y:"); 
scanf("%d",&y); 
tambah(x,y); 
return 0; 
} 
tambah(int x, int y) 
{ 
int result; 
result = x+y; 
printf("Sum of %d and %d is %d.nn",x,y,result); 
return 0; 
}
Functions with arguments and return 
value 
 This type of function can send 
arguments (data) from the 
calling function to the called 
function and wait for the result to 
be returned back from the called 
function back to the calling 
function. 
 This type of function is mostly 
used in programming world 
because it can do two way 
communications; it can accept 
data as arguments as well as can 
send back data as return value. 
 The data returned by the 
function can be used later in our 
program for further calculations.
Program example: Functions with arguments and return value 
#include<stdio.h> 
tambah(int x, int y); 
main() 
{ 
int x,y,z; 
printf("Please enter a value x:"); 
scanf("%d",&x); 
printf("Please enter a value y:"); 
scanf("%d",&y); 
z = tambah(x,y); 
printf("Result %d.nn",z); 
return 0; 
} 
tambah(int x, int y) 
{ 
int result; 
result = x+y; 
return(result); 
}
Functions with no arguments but 
returns value 
 We may need a function which 
does not take any argument but 
only returns values to the 
calling function then this type 
of function is useful. The best 
example of this type of function 
is “getchar()” library function 
which is declared in the header 
file “stdio.h”. We can declare a 
similar library function of own.
Program example: Functions with no arguments but returns value 
#include<stdio.h> 
send(); 
main() 
{ 
int z; 
z = send(); 
printf("nYou entered : %d.", z); 
return 0; 
} 
send() 
{ 
int no1; 
printf("Enter a no : "); 
scanf("%d",&no1); 
return(no1); 
}
Functions that return multiple values 
• We have used arguments to send values to the 
called function, in the same way we can also use 
arguments to send back information to the 
calling function. 
• The arguments that are used to send back data 
are called Output Parameters. 
• Is a bit difficult for novice because this type of 
function uses pointer.
Program example: Functions that return multiple values 
#include<stdio.h> 
calc(int x, int y, int *add, int *sub); 
main() 
{ 
int a,b,p,q; 
printf("Please enter a value a:"); 
scanf("%d",&a); 
printf("Please enter a value b:"); 
scanf("%d",&b); 
calc(a,b,&p,&q); 
printf("Sum = %d, Sub = %d",p,q); 
return 0; 
} 
calc(int x, int y, int *add, int *sub) 
{ 
*add = x+y; 
*sub = x-y; 
return (0); 
}

More Related Content

CHAPTER 6

  • 2. What is Function  Block of code that performs a specific task.  It has a name and it is reusable i.e. it can be executed from as many different parts in a C Program as required. Every function has a unique name. This name is used to call function from “main()” function. A function can be called from within another function.  It also optionally returns a value to the calling program  Performs a specific task. A task is a distinct job that your program must perform as a part of its overall operation, such as adding two or more integer, sorting an array into numerical order, or calculating a cube root etc.
  • 3. Sample Function Call #include <stdio.h> int main ( ) printf is the name of a predefined { function in the stdio library printf (“Hello World!n”) ; this statement is return 0 ; is known as a } function call this is a string we are passing as an argument (parameter) to the printf function
  • 4. Function • The ‘building blocks’ of a C program ▫ You’ve used predefined functions already:  main()  printf(), scanf(), pow() ▫ User-defined functions  Your own code  In combination with predefined functions
  • 5. Sample User-Defined Function #include <stdio.h> void printMessage ( void ) ; int main ( void ) { printMessage ( ) ; return 0 ; } void printMessage ( void ) { printf (“A message for you:nn”) ; printf (“Have a nice day!n”) ; }
  • 7. Examining printMessage #include <stdio.h> void printMessage ( void ) ; function prototype int main ( void ) { printMessage ( ) ; function call return 0 ; } void printMessage ( void ) function header { printf (“A message for you:nn”) ; function printf (“Have a nice day!n”) ; body } function definition
  • 8. Program example: functions #include<stdio.h> kira(int t_semasa, int t_lahir); main() { int t_semasa,t_lahir,u; printf("Please enter your birth year:"); scanf("%d",&t_lahir); printf("Please enter the current year:"); scanf("%d",&t_semasa); u = kira(t_semasa,t_lahir); printf("nYour age is: %d years oldnn",u); return 0; } kira(int t_semasa, int t_lahir) { int umur; umur = t_semasa-t_lahir; return(umur); }
  • 9. Types of functions Functions with no arguments and no return values. Functions with arguments and no return values. Functions with arguments and return values. Functions that return multiple values. Functions with no arguments and return values.
  • 10. Functions with no arguments and no return value  A C function without any arguments means you cannot pass data (values like int, char etc) to the called function.  Similarly, function with no return type does not pass back data to the calling function. It is one of the simplest types of function in C.  This type of function which does not return any value cannot be used in an expression it can be used only as independent statement.
  • 11. Program example: Functions with no arguments and no return value #include<stdio.h> cetak_line1(); cetak_line2(); main() { printf("Welcome to function in C"); cetak_line1(); printf("Function easy to learn."); cetak_line1(); printf("Please make sure you really understand about this topic."); cetak_line2(); return 0; } cetak_line1() { int i; printf("n"); for(i=0;i<30;i++) { printf("-"); } printf("n"); return 0; } cetak_line2() { printf("n--------------------------------------------------------"); return 0; }
  • 12. Functions with arguments and no return value  In our previous example what we have noticed that “main()” function has no control over the UDF “printfline()”, it cannot control its output. Whenever “main()” calls “printline()”, it simply prints line every time. So the result remains the same.  A C function with arguments can perform much better than previous function type.  This type of function can accept data from calling function. In other words, you send data to the called function from calling function but you cannot send result data back to the calling function. Rather, it displays the result on the terminal. But we can control the output of function by providing various values as arguments.
  • 13. Program example: Functions with arguments and no return value #include<stdio.h> tambah(int x, int y); main() { int x,y; printf("Please enter a value x:"); scanf("%d",&x); printf("Please enter a value y:"); scanf("%d",&y); tambah(x,y); return 0; } tambah(int x, int y) { int result; result = x+y; printf("Sum of %d and %d is %d.nn",x,y,result); return 0; }
  • 14. Functions with arguments and return value  This type of function can send arguments (data) from the calling function to the called function and wait for the result to be returned back from the called function back to the calling function.  This type of function is mostly used in programming world because it can do two way communications; it can accept data as arguments as well as can send back data as return value.  The data returned by the function can be used later in our program for further calculations.
  • 15. Program example: Functions with arguments and return value #include<stdio.h> tambah(int x, int y); main() { int x,y,z; printf("Please enter a value x:"); scanf("%d",&x); printf("Please enter a value y:"); scanf("%d",&y); z = tambah(x,y); printf("Result %d.nn",z); return 0; } tambah(int x, int y) { int result; result = x+y; return(result); }
  • 16. Functions with no arguments but returns value  We may need a function which does not take any argument but only returns values to the calling function then this type of function is useful. The best example of this type of function is “getchar()” library function which is declared in the header file “stdio.h”. We can declare a similar library function of own.
  • 17. Program example: Functions with no arguments but returns value #include<stdio.h> send(); main() { int z; z = send(); printf("nYou entered : %d.", z); return 0; } send() { int no1; printf("Enter a no : "); scanf("%d",&no1); return(no1); }
  • 18. Functions that return multiple values • We have used arguments to send values to the called function, in the same way we can also use arguments to send back information to the calling function. • The arguments that are used to send back data are called Output Parameters. • Is a bit difficult for novice because this type of function uses pointer.
  • 19. Program example: Functions that return multiple values #include<stdio.h> calc(int x, int y, int *add, int *sub); main() { int a,b,p,q; printf("Please enter a value a:"); scanf("%d",&a); printf("Please enter a value b:"); scanf("%d",&b); calc(a,b,&p,&q); printf("Sum = %d, Sub = %d",p,q); return 0; } calc(int x, int y, int *add, int *sub) { *add = x+y; *sub = x-y; return (0); }