Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts

Tuesday, 7 May 2019

Type Conversion and Typecasting In C


Introduction
In our C programs, an expression may contain data values of different data types. When the expression contains values of similar type values then no conversion is required. But if the expression contains values of different types then they must be converted to desired type. In a c programming language, the data conversion is performed in two different methods as follows:
    (i).Type Conversion
    (ii).Type Casting

 Type Conversion
  • In this procedure, a data value from one data type to another data type is converted automatically by the compiler.
  • Also known as implicit type conversion.
  • The implicit type conversion is automatically performed by the compiler.
  • To evaluate the expression, the data type is promoted from lower to higher level where the hierarchy of data types can be given as: double, float, long, int, short, and char.
Example:
#include<stdio.h>
  int main(){
     int x=3,u;
     float y,v=4.59;
     y= x;
     u=v;
     printf("y=%f\n",y);
     printf("u=%d\n",u);
 return 0;
}
Output:
 y=3.000000
 u=4  //data loss


Typecasting
  • also called as explicit type conversion or forced conversion.
  • Implicit type conversion may lead to data loss as in above example. That’s why we need type casting.
  • To convert data from one type to another type we specify the target data type in paranthesis as a prefix to the data value that has to be converted.
  • Type casting can be done by placing the destination data type in parentheses followed by the variable name that has to be converted.
The general syntax of type casting is as follows:
   (data/Type) variableName

Example:
#include<stdio.h>
   int main(){
     int x=3;
     float y;
     y= (float)x;
     printf("y=%f\n",y);
 return 0;
}
Output:
  Y=3.000000


Kindly like and share this post.

Sunday, 5 May 2019

Relational Operators in C


Relational operators are used to compare two values. There are six relational operators in C. These are called relational operator because they establish relation between its operands. These operators are used in decision-making. These are binary operators because they need two operands.
Following table lists the six relational operators and their meaning-
Sl No
Operator
Syntax
Meaning
1
< 
Op1<Op2
Is Op1 less than Op2
2
<=
Op1<=Op2
Is Op1 less than or equal to Op2
3
> 
Op1>Op2
Is Op1 greater than Op2
4
>=
Op1>=Op2
Is Op1 greater than or equal to  Op2
5
==
Op1==Op2
Is Op1 equal to Op2
6
!=
Op1!=Op2
Is Op1 not equal to than Op2

Each of these operations results in a value of type int. The result of each operation is 1 if the comparison is true and 0 if the comparison is false.

Following C program demonstrates the working of above relational operators-
#include<stdio.h>
int main(){
   int a=1,b=2;
   if(a<b){
      printf(“a is less than b.\n”);
    }

   a=3,b=2;
   if(a<=b){
      printf(“a is less than or equal to b.\n”);
    }
  a=2,b=1;
   if(a>b){
      printf(“a is grater than b.\n”);
    }

  a=2,b=3;
   if(a>=b){
     printf(“a is greater than or equal to b.\n”);
    }

a=4,b=4;
if(a==b){
     printf(“a is equal to b.\n”);
    }
if(a!=b){
     printf(“a is not equal to b.\n”);
    }

  return 0;
}
Output:
a is less than b.
a is grater than b.
a is equal to b.

Please comment and share if you find it useful.

Thursday, 2 May 2019

The Conditional Operator in C


Introduction
  • It involves three operands- the logical expression plus two other expressions—this operator is also referred to as the ternary operator.
  • The conditional operator evaluates to one of two expressions, depending on whether a logical expression evaluates true or false.

Syntax
Condition ? expression1 : expression2

The ? character follows the logical expression, condition. On the right of ? are two operands, expression1 and expression2, that represent choices. The value that results from the operation will be the value of expression1 if condition evaluates to true, or the value of expression2 if condition evaluates to false. Remember that only one, either expression1 or expression2, will be evaluated.

Example
The conditional operator can be used in place of if-else statements.

Following program find the greater number between two numbers using if-else statements.
#include<stdio.h>
int main(){
  int num1=20,num2=30;
  if(num1>num2)
     printf(“%d is greater than %d.”,num1,num2);
 else
       printf(“%d is greater than %d.”,num2,num1);

  return 0;
}
Output:
  30 is greater than 20.

Now we will find out the greater number using conditional operator.
#include<stdio.h>
int main(){
  int num1=20,num2=30;
     num1>num2?printf(“%d is greater than %d.”,num1,num2):printf(“%d is greater than %d.”,num2,num1);

  return 0;
}
Output:
  30 is greater than 20.


Please comment and share if you find it useful.

Logical Operators in C


Introduction
Sometimes you want to perform more than one test for a decision. You may want to combine two or more checks on values and perform a certain action only when they’re all true. For example, you may only want to go to watch a movie if you’re feeling well and it’s a weekend. These sorts of situations demand use of logical operators.
There are three logical operators available in C - &&,|| and !.

1. Logical AND && Operator
  • binary operator that combines two logical expressions—that is, two expressions that evaluate to true or false.
  • Returns true when both the conditions are true; return false when any of the conditions or both are false.

Syntax :
    Expression1 && Expression2

This expression evaluates to true if both expressions Expression1 and Expression2 evaluate to true. If either or both of the expressions are false, the result of the operation is false.

Example:
      if(marks >=60 && age < =80)
           printf("Grade : B\n");

2. Logical OR || Operator
  • binary operator that combines two logical expressions—that is, two expressions that evaluate to true or false.
  • If either or both expressions of the || operator are true, the result is true. The result is false only when both operands are false.


Syntax :
    Expression1 || Expression2

This expression evaluates to true if either or both expressions Expression1 and Expression2 evaluate to true. If both expressions are false, the result of the operation is false.

Example:
      if(marks >=60 || age < =80)
           printf("Grade : B\n");

3. Logical NOT ! Operator
  • The ! operator is a unary operator, because it applies to just one operand.
  • The logical NOT operator reverses the value of a logical expression: true becomes false, and false becomes true

Syntax :
!(expression)
   If expression is true, it becomes false; if it is false, it becomes true.

Example:
  int marks=100;
      if(!marks)
           printf("You didn’t received 100% marks.\n");


Please comment and share if you find it useful.

Sunday, 28 April 2019

Increment and decrement operators in C


Increment Operators are used to increase the value of the variable by one and Decrement Operators are used to decrease the value of the variable by one in C programs.

Both increment and decrement operator are used on a single operand or variable, so it is called as a unary operator. Unary operators are having higher priority than the other operators it means unary operators are executed before other operators.
There are two special unary operator in C/C++, called increment(++) and decrement(--) operators that changes the value of variable by a unit.
Syntax:
Increment Operator : ++
Decrement Operator : --

Example:
int i=1;
i++;
then i=2

int j=5;
j--;
then j=4

 Note :
i++ is same as i=i+1;
j-- is same as j=j-1;

Types of Increment Operator :
(a).Post Increment: varName ++
In post increment statement, first use the value of variable and then increment it.
For example;
int i=1;
int x= i++ + i;
Output:
x=2

(b).Pre Increment : ++varName
In pre increment statement, first increment and then use its value after completion of equation.
For example;
int i=1;
int x= ++i + i;
Output:
x=4

Types of Decrement Operator :
(a).Post Decrement : varName--
In post decrement statement, first use the value of variable and then decrement it.
For example;
int i=5;
int x= i-- + i;
Output:
x=10

(b).Pre Decrement : --varName
In post decrement statement, first decrement and then use its value after completion of equation.

For example;
int i=5;
int x= --i + i;
Output:
x=8

Complete Example:
#include<stdio.h>
int main(){
          int i=1,j=1,k=5,l=5,x1,x2,y1,y2;
//        printf("X1=%d\n",++(i+j));
          x1=i++ + i;
          printf("I=%d,X1=%d\n",i,x1);
          x2=++j + j;
          printf("J=%d,X2=%d\n",j,x2);
         
          y1=k-- + k;
          printf("K=%d,Y1=%d\n",k,y1);
          y2=--l + l;
          printf("L=%d,Y2=%d\n",l,y2);
         
          return 0;
}
Output:



Please comment and share if you find it useful.

Thursday, 4 April 2019

Functions in C(Part 2-Parameter Passing Methods)

C programming
In the previous article, you learnt basics of functions in C. In this article, you will learn about methods of passing values.

Passing values to function
There are two ways to pass arguments/parameters to function calls -- call by value and call by reference.
(i). Pass by value
(ii). Pass by reference

(i).Pass by Value
  In this method of parameter passing, a copy of actual parameters is passed to respective formal parameters. Any changes done in formal parameters are not reflected in actual parameters.
When a function is called, any arguments that are provided by the caller are simply treated as expressions. The value of each expression has the appropriate conversions applied and is then used to initialize the corresponding formal parameter in the called function, which behaves in exactly the same way as any other local variables in the function.
The initialization of the formal parameters is the last time that any communication occurs between the caller and the called function, except for the return value.

Example:
//Following example shows the functioning of call by value method
#include<stdio.h>

void swapCallByValue(int,int);  //function prototype
int main(){
    int num1=10,num2=20;
   printf("Values before swapping by call by value: num1=%d,num2=%d.\n",num1,num2);
    swapCallByValue (num1,num2);
    printf("Values after swapping by call by value: num1=%d,num2=%d.\n\n",num1,num2);
    return 0;
}
//function definition: using third variable
void swapCallByValue (int n1,int n2){
  int temp;
  temp=n1;
  n1=n2;
  n2=temp;
  printf("Inside swapCallByValue : num1=%d,num2=%d\n",n1,n2);
}
Output:
   Values before swapping by call by value: num1=10,num2=20.
   Inside swapCallByValue : num1=20,num2=10
   Values after swapping by call by value: num1=10,num2=20.

(ii).Pass by Reference
In call by reference method of parameter passing, the memory address of actual parameters is passed to formal parameters, hence any change made to formal parameters will also reflected in actual parameters.

This method of parameter passing is use-
(a).If the size of data is large.
(b).When there are more than one value we want to alter.

Example:
//Following example shows the functioning of call by reference method
#include<stdio.h>
void swapCallByReference(int *,int *);  //function prototype
int main(){
    int num1=10,num2=20;
    printf("Values before swapping by call by reference: num1=%d,num2=%d.\n",num1,num2);
    swapCallByReference (&num1,&num2);
    printf("Values after swapping by call by reference: num1=%d,num2=%d.\n\n",num1,num2);
    return 0;
}
//function definition: using third variable
void swapCallByReference (int *n1,int *n2){
  int temp;
  temp=*n1;
  *n1=*n2;
  *n2=temp;
  printf("Inside swapCallByReference : num1=%d,num2=%d\n",*n1,*n2);
}
Output:
   Values before swapping by call by reference: num1=10,num2=20.
   Inside swapCallByReference : num1=20,num2=10
   Values after swapping by call by reference: num1=20,num2=10.

Points to note about Functions
(a).The name of a function is always followed by ( ).
(b).The keyword void is used in the example to show the function has no return
value and no parameters.
(c).When no return type is specified, it is assumed to be int.
(d).The main program is also a function. It is called the driver function.
(e).The program always starts at the beginning of main, regardless of whether it is
the first function defined or not.


Please comment and share if you find it useful.