Presentation is loading. Please wait.

Presentation is loading. Please wait.

TK1913-C Programming1 TK1913-C Programming 1 C Library Functions C provides a collection of library functions for programmers If these library functions.

Similar presentations


Presentation on theme: "TK1913-C Programming1 TK1913-C Programming 1 C Library Functions C provides a collection of library functions for programmers If these library functions."— Presentation transcript:

1 TK1913-C Programming1 TK1913-C Programming 1 C Library Functions C provides a collection of library functions for programmers If these library functions are used in a program, be sure to include their prototypes. Library function prototypes are placed in specific header files. Example: Function prototypes of printf() and scanf() can be found in header file stdio.h.

2 TK1913-C Programming2 TK1913-C Programming 2 To include a function prototype defined in a header file into our program, use the preprocessor instruction #include. Example, #include

3 TK1913-C Programming3 TK1913-C Programming 3 math Library function One type of library functions which provides several functions for execution of mathematic operations is math Prototypes of these functions are declared in a header file named math.h

4 TK1913-C Programming4 TK1913-C Programming 4 Example: sqrt() function This function can be used to attain the square root of a given number The function declaration: Example: double num; printf(“Input a number: "); scanf("%lf", &num); printf(“Square root of %.2lf: %.2lf\n”, num, sqrt(num)); double sqrt(double n); The number its square root you want to get The data type returned by function sqrt() math Library function

5 TK1913-C Programming5 TK1913-C Programming 5 Example: abs() function This function is used to get the absolute value of a number The function declaration: Example: int num, abs_value; printf(“Input number: "); scanf("%d", &num); abs_value = abs(num); printf(“Absolute value for %d: %d\n”, num, abs_value); int abs(int n); The number its absolute value you want to get The data type returned by abs() function math Library function

6 TK1913-C Programming6 TK1913-C Programming 6 Variable scope There are two types of scope for variables: local and global Local variable : May only be accessed and manipulated in the block where it is declared Global variable : May be accessed and manipulated anywhere in a program, including in user-defined functions Must be declared outside a function definition Is not encouraged because program readability may be compromised and maintenance more tedious

7 TK1913-C Programming7 TK1913-C Programming 7 #include void negative(int); int main( ) { int num; scanf("%d", &num); negative(num); printf(“Value of num is now: %d\n", num); } void negative(int number) { number = -number; } Example: ??? num ??? number Variable scope : local variables

8 TK1913-C Programming8 TK1913-C Programming 8 In the following example, the variable number in main() and variable number in negative() are not referring to the same memory location. Both are local variable Variable scope : local variables number #include void negative(int); int main( ) { int number; scanf("%d", &number); negative(number); printf(“Value of number is now: %d\n", number); } void negative(int number) { number = - number; } void negative(int number) number int main( )

9 TK1913-C Programming9 TK1913-C Programming 9 In the following example, number in main() and negative() are referring to the same memory location #include void negative(); int number; int main( ) { scanf("%d", &number); negative(); printf(“Value of number is now : %d\n", number); } void negative() { number = -number; } Variable scope : global variables number int main( ) void negative()

10 TK1913-C Programming10 TK1913-C Programming 10 Can a function call itself ? A function that calls itself is known as recursive function Recursive function is used to handle problem that can be broken into sub-problem which resembles the original problem, repeatedly until the solution is achieved Recursive Function

11 TK1913-C Programming11 TK1913-C Programming 11 Example : Factorial formula can be written as : 1, when n = 0 n! = n * (n-1) * … * 2 * 1, when n >= 1 In other words, 1, when n = 0 n! = n * (n-1)!, when n >= 1 Recursive Function

12 TK1913-C Programming12 TK1913-C Programming 12 factorial(5) = 5 * factorial(4) Getting the value of factorial(5) using recursion Recursive Function Example : factorial factorial(5) = 5 * factorial(4) factorial(4) = 4 * factorial(3) factorial(5) = 5 * factorial(4) factorial(4) = 4 * factorial(3) factorial(3) = 3 * factorial(2) factorial(5) = 5 * factorial(4) factorial(4) = 4 * factorial(3) factorial(3) = 3 * factorial(2) factorial(2) = 2 * factorial(1) factorial(5) = 5 * factorial(4) factorial(4) = 4 * factorial(3) factorial(3) = 3 * factorial(2) factorial(2) = 2 * factorial(1) factorial(1) = 1 * factorial(0) factorial(5) = 5 * factorial(4) factorial(4) = 4 * factorial(3) factorial(3) = 3 * factorial(2) factorial(2) = 2 * factorial(1) factorial(1) = 1 * factorial(0) factorial(0) = 1 factorial(5) = 5 * factorial(4) factorial(4) = 4 * factorial(3) factorial(3) = 3 * factorial(2) factorial(2) = 2 * factorial(1) factorial(1) = 1 * 1 factorial(0) = 1 factorial(5) = 5 * factorial(4) factorial(4) = 4 * factorial(3) factorial(3) = 3 * factorial(2) factorial(2) = 2 * factorial(1) factorial(1) = 1 factorial(5) = 5 * factorial(4) factorial(4) = 4 * factorial(3) factorial(3) = 3 * factorial(2) factorial(2) = 2 * 1 factorial(1) = 1 factorial(5) = 5 * factorial(4) factorial(4) = 4 * factorial(3) factorial(3) = 3 * factorial(2) factorial(2) = 2 factorial(5) = 5 * factorial(4) factorial(4) = 4 * factorial(3) factorial(3) = 3 * 2 factorial(2) = 2 factorial(5) = 5 * factorial(4) factorial(4) = 4 * factorial(3) factorial(3) = 6 factorial(5) = 5 * factorial(4) factorial(4) = 4 * 6 factorial(3) = 6 factorial(5) = 5 * factorial(4) factorial(4) = 24 factorial(5) = 5 * 24 factorial(4) = 24 factorial(5) = 120

13 TK1913-C Programming13 TK1913-C Programming 13 #include int factorial(int n); int main() { int n; printf(“Input n : "); scanf("%d", &n); printf(“Value of %d! = %d\n", n, factorial(n)); } int factorial( int n ) { if (n == 0) return 1; else return (n * factorial(n - 1)); } This is a recursive function because a function call in its body calls itself. factorial function (using recursion)

14 TK1913-C Programming14 TK1913-C Programming 14 #include int factorial(int n); int main() { int n; printf(“Input n : "); scanf("%d", &n); printf(“Value of %d! = %d\n", n, factorial(n)); } int factorial( int n ) { if (n == 0) return 1; else return (n * factorial(n - 1)); } 0! = 1 n! = n * (n – 1)! factorial function (using recursion)

15 TK1913-C Programming15 TK1913-C Programming 15 #include int factorial(int n); int main() { int n; printf(“Input n : "); scanf("%d", &n); printf(“Value of %d! = %d\n", n, factorial(n)); } int factorial(int n ) { if (n == 0) return 1; else return (n * factorial(n - 1)); } ??? n _ int main() Input n :_ 5 Input n : 5 5 n1n1 Caller CalledP/m passed Returned value main fac-15 fac-1

16 TK1913-C Programming16 TK1913-C Programming 16 #include int factorial(int n); int main() { int n; printf(“Input n : "); scanf("%d", &n); printf(“Value of %d! = %d\n", n, factorial(n)); } int factorial(int n ) { if (n == 0) return 1; else return (n * factorial(n - 1)); } 5 n Input n : 5 5 n1n1 int factorial(int n) { Caller CalledP/m passed Returned value main fac-1 5 Caller CalledP/m passed Returned value main fac-1 5 5 * factorial(4) fac-2 (4) n2n2 4 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1 fac-24

17 TK1913-C Programming17 TK1913-C Programming 17 #include int factorial(int n); int main() { int n; printf(“Input n : "); scanf("%d", &n); printf(“Value of %d! = %d\n", n, factorial(n)); } int factorial(int n ) { if (n == 0) return 1; else return (n * factorial(n - 1)); } 5 n Input n : 5 5 n1n1 int factorial(int n) { fac-3 (3) n2n2 4 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1 fac-2 4 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1 fac-2 4 4 * factorial(3) 3 n3n3 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2 fac-33

18 TK1913-C Programming18 TK1913-C Programming 18 #include int factorial(int n); int main() { int n; printf(“Input n : "); scanf("%d", &n); printf(“Value of %d! = %d\n", n, factorial(n)); } int factorial(int n ) { if (n == 0) return 1; else return (n * factorial(n - 1)); } 5 n Input n : 5 5 n1n1 int factorial(int n) { fac-4 (2) n2n2 4 3 n3n3 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2 fac-3 3 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2 fac-3 3 3 * factorial(2) n4n4 2 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2fac-33 3 * factorial(2) fac-3 fac-42

19 TK1913-C Programming19 TK1913-C Programming 19 #include int factorial(int n); int main() { int n; printf(“Input n : "); scanf("%d", &n); printf(“Value of %d! = %d\n", n, factorial(n)); } int factorial(int n ) { if (n == 0) return 1; else return (n * factorial(n - 1)); } 5 n Input n : 5 5 n1n1 int factorial(int n) { fac-5 (1) n2n2 4 3 n3n3 n4n4 2 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2fac-33 3 * factorial(2) fac-3 fac-4 2 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2fac-33 3 * factorial(2) fac-3 fac-4 2 2 * factorial(1) n5n5 1 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2fac-33 3 * factorial(2) fac-3fac-42 2 * factorial(1) fac-4 fac-51

20 TK1913-C Programming20 TK1913-C Programming 20 #include int factorial(int n); int main() { int n; printf(“Input n : "); scanf("%d", &n); printf(“Value of %d! = %d\n", n, factorial(n)); } int factorial(int n ) { if (n == 0) return 1; else return (n * factorial(n - 1)); } 5 n Input n : 5 5 n1n1 int factorial(int n) { fac-6 (0) n2n2 4 3 n3n3 n4n4 2 n5n5 1 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2fac-33 3 * factorial(2) fac-3fac-42 2 * factorial(1) fac-4 fac-5 1 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2fac-33 3 * factorial(2) fac-3fac-42 2 * factorial(1) fac-4 fac-5 1 1 * factorial(0) n6n6 0 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2fac-33 3 * factorial(2) fac-3fac-42 2 * factorial(1) fac-4fac-51 1 * factorial(0) fac-5 fac-6 0 1 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2fac-33 3 * factorial(2) fac-3fac-42 2 * factorial(1) fac-4fac-51 1 * factorial(0) fac-5 fac-6 0 1

21 TK1913-C Programming21 TK1913-C Programming 21 #include int factorial(int n); int main() { int n; printf(“Input n : "); scanf("%d", &n); printf(“Value of %d! = %d\n", n, factorial(n)); } int factorial(int n ) { if (n == 0) return 1; else return (n * factorial(n - 1)); } 5 n Input n : 5 5 n1n1 int factorial(int n) { n2n2 4 3 n3n3 n4n4 2 n5n5 1 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2fac-33 3 * factorial(2) fac-3fac-42 2 * factorial(1) fac-4 fac-5 1 1 * 1 1 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2fac-33 3 * factorial(2) fac-3fac-42 2 * factorial(1) fac-4 fac-5 1 1

22 TK1913-C Programming22 TK1913-C Programming 22 #include int factorial(int n); int main() { int n; printf(“Input n : "); scanf("%d", &n); printf(“Value of %d! = %d\n", n, factorial(n)); } int factorial(int n ) { if (n == 0) return 1; else return (n * factorial(n - 1)); } 5 n Input n : 5 5 n1n1 int factorial(int n) { n2n2 4 3 n3n3 n4n4 2 2 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2fac-33 3 * factorial(2) fac-3 fac-4 2 2 * 1 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2fac-33 3 * factorial(2) fac-3 fac-4 2 2 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2 fac-3 3 3 * 2

23 TK1913-C Programming23 TK1913-C Programming 23 #include int factorial(int n); int main() { int n; printf(“Input n : "); scanf("%d", &n); printf(“Value of %d! = %d\n", n, factorial(n)); } int factorial(int n ) { if (n == 0) return 1; else return (n * factorial(n - 1)); } 5 n Input n : 5 5 n1n1 int factorial(int n) { n2n2 4 3 n3n3 6 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2 fac-3 3 3 * 2 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1fac-24 4 * factorial(3) fac-2 fac-3 3 6

24 TK1913-C Programming24 TK1913-C Programming 24 #include int factorial(int n); int main() { int n; printf(“Input n : "); scanf("%d", &n); printf(“Value of %d! = %d\n", n, factorial(n)); } int factorial(int n ) { if (n == 0) return 1; else return (n * factorial(n - 1)); } 5 n Input n : 5 5 n1n1 int factorial(int n) { n2n2 4 24 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1 fac-2 4 4 * 6 Caller CalledP/m passed Returned value mainfac-15 5 * factorial(4) fac-1 fac-2 4 24

25 TK1913-C Programming25 TK1913-C Programming 25 #include int factorial(int n); int main() { int n; printf(“Input n : "); scanf("%d", &n); printf(“Value of %d! = %d\n", n, factorial(n)); } int factorial(int n ) { if (n == 0) return 1; else return (n * factorial(n - 1)); } 5 n Input n : 5 5 n1n1 int factorial(int n) { 120 Caller CalledP/m passed Returned value main fac-1 5 5 * 24 Caller CalledP/m passed Returned value main fac-1 5 120 Input n : 5 Value of 5! = 120 int main()

26 TK1913-C Programming26 TK1913-C Programming 26 #include int factorial(int n); int main() { int n; printf(“Input n : "); scanf("%d", &n); printf(“Value of %d! = %d\n", n, factorial(n)); } int factorial(int n ) { if (n == 0) return 1; else return (n * factorial(n -1)); } Input n : 5 Value of 5! = 120


Download ppt "TK1913-C Programming1 TK1913-C Programming 1 C Library Functions C provides a collection of library functions for programmers If these library functions."

Similar presentations


Ads by Google