What is Function?Types of Function.

=== Library/Built-in/standard Functions ===
A function is a block of statement is a block of that performs a specific task or return single/multiple new/modified
values of a function is as follows:
values to out side. The structure of a function is given below:

function_return_type fun_name ([parameter list]){
fun_body;
}
Every function must have a useful name.

The parameter list is optional but a pair of parenthesis is must which differentiate
the function name from the variable/named constant.The use of parameters is to
receive/supply value(s) from/to outside.

Function return type may be void (means returns nothing using return st),constant name
or any standard data type(may be int, long, unsigned int/long, char or unsigned char,
float, double, long double), which is the type of the value that the
function returns using return statement.

The body contains single/multiple st(s) under a pair of block markers.

Functions are of two types:
a) built-in/standard/simple type
b) user defined type.
We will study in this class the built-in functions of different classes/categories.

All the built-in types are called value return function that means they return a value
to the calling statement using return statement. This type of function is treated as
a value.You must call/use them as an operand of an other statement/expression.
=== Algebric  functions===

#include <stdio.h>

#include <conio.h>

#include <math.h>//for math functions

void pause() {
printf("\nPress any key to continue..");
getch();
}

void ex1() {
/*abs(n) absolute function that returns the absolute value of x, where
x in an int value.
fabs(x)where x is float value */
printf("\nThe absolute value of an int value -3 is %d", abs(-3)); //could be a int var/expr
pause();
float b = -12.45;
printf("\nThe value b is %.2f", b);
printf("\nThe absolute value of float var b is %.2f", fabs(b)); //error
/*sqrt(x) returns the square root of x, x can never be negative*/
//printf("\nsquare root of b is %.2f",sqrt(b));//b can't be -ve, gives garbage value
printf("\ncorrect sqrt(b) should be sqrt(fabs(b)) is %.2f", sqrt(fabs(b)));
/*exp(x) returns the value of e to the power x*/
printf("\ne to the power 1.0 is %.2f", exp(1.0)); //2.72, do the same for b
/*log(x): Its a natural log*/
printf("\nlog(10.0) is %.2f", log(10.0)); //ans is 2.30
/*log10(x) : it is ten base log*/
printf("\nlog10(10.0) is %.2f", log10(10.0)); //ans is 1
/*NOTE: log(n)=2.30*log10(n)==*/
//==floor(x): x rounded down to the nearest integer
float f = 2.34;
printf("\nfloor(2.54) is %.f)", floor(2.54)); //2

//==cell(x) x rounded up to the nearest integer
printf("\nceil(2.53) is %f", ceil(2.53)); //3
//==pow(x,n) returns the x to the power n
f = pow(2, 2.34);
printf("\n2 to the power 2.54 is %f", pow(2, 2.54));
//arguments of pow() are float/double/int

/*==character functions===*/
void ex2() {
/*getch(), getche() returns a character from the keyboard. They don't need
to press ENTER key while supplying the value from the keyboard. Thery are
call unbuffered function. */
printf("\nPress any key to continue pl...");
getch(); //waits to press a character. The character will not echo on the screen.
printf("\nPress another key to continue pl...");
getche(); //will the character you press in the keyboard
//In the above we did not preserve/store any where the value you pressed.
//U can use these two functions using another way..
printf("\nPress a key third times to continue pl...");
char ch = getch();
printf("\nThe character u pressed is %c", ch);
/*getcha(ch) read a character from the keyboard, need to press ENTER after
pressing the character. putchar(ch) display/put the character on the screen. */
printf("\nGive me a character pl");
char ch1 = getchar();
printf("\nThe given character is: ");
putchar(ch1);
}