Operators, Loops, Type Conversion



Part – 3: Operators, Loops, Type Conversion
in previous lesson you learned about arrays, strings and preprocessors. In this lesson we will learn about using mathematical and logical operators. Mathematical operators are equivalent to the operators being used in mathematics (+-*/…). There are differences which we will mention in this lesson however. Loops are also important part of programming languages. In this lesson we will also learn how to convert variables from a specific type into variables with other types.

Operators
There are many kinds of operators in each programming language. We mention some of the operators being used in C language here:

() Parentheses
+ Add
- Subtract
* Multiply
/ Divide

There are also some other operators which work differently:
% Modulus
++ Increase by one
-- Decrease by one
= Assignment

sizeof( ) return value is the size of a variable or type inside parentheses in bytes. It is actually the size
that variable takes in system memory.

Examples:
c=4%3; c will be equal to 1 after execution of this command.
i=3;
i=i*3; i will be equal to 9
f=5/2; if f is integer then it will be equal to 2. If it
is a float type variable its value will be 2.5
j++; Increases the value of j by one
j--; Decreases value of j by one
sizeof(int) returned value is 2 in dos and 4 in windows
int a=10;
c=sizeof(a); c will be 2 in dos and 4 in windows as the size of integer
is different in different Os.

Loops
Sometimes we want some part of our code to be executed more than once. We can either repeat the code in our program or use loops instead. It is obvious that if for example we need to execute some part of code for a hundred times it is not practical to repeat the code. Alternatively we can use our repeating code inside a loop.

while(not a hundred times)
{
code
}
There are a few kinds of loop commands in C programming language. We will see these commands in next sections.

While loop
while loop is constructed of a condition and a single command or a block of commands that must run
in a loop. As we have told earlier a block of commands is a series of commands enclosed in two opening and closing braces.

while( condition )
command;
while( condition )
{
block of commands
}

Loop condition is a boolean expression. A boolean expression is a logical statement which is either correct or incorrect. It has a value of 1 if the logical statement is valid and its value is 0 if it is not. For example the Boolean statement (3>4) is invalid and therefore has a value of 0. While the statement (10==10) is a valid logical statement and therefore its value is 1.

Example 3-1: example3-1.c
#include
main()
{
int i=0;
while( i<100 )
{
printf("\ni=%d",i);
i=i+1;
}
system("pause");
}

In above example i=i+1 means: add 1 to i and then assign it to i or simply increase its value. As we saw earlier, there is a special operator in C programming language that does the same thing. We can use the expression i++ instead of i=i+1.

We will learn more about logical operators in next lessons.

Type Conversion
From time to time you will need to convert type of a value or variable to assign it to a variable from another type. This type of conversions may be useful in different situations, for example when you want to convert type of a variable to become compatible with a function with different type of arguments.

Some rules are implemented in C programming language for this purpose.
• Automatic type conversion takes place in some cases. Char is automatically converted to int.
Unsigned int will be automatically converted to int.
• If there are two different types in an expression then both will convert to better type.
• In an assignment statement, final result of calculation will be converted to the type of the
variable which will hold the result of the calculation (ex. the variable “count” in the assignment
count=i+1; )

For example if you add two values from int and float type and assign it to a double type variable, result will be double.

Using loops in an example
Write a program to accept scores of a person and calculate sum of them and their average and print them.

Example 3-2 : example3-2.c
#include
main()
{
int count=0;
float num=0,sum=0,avg=0;
printf("Enter score (-1 to stop): ");
scanf("%f",&num);
while(num>=0)
{
sum=sum+num;
count++;
printf("Enter score (-1 to stop): ");
scanf("%f",&num);
}
avg=sum/count;
printf("\nAverage=%f",avg);
printf("\nSum=%f\n",sum);
system("pause");
}

In this example we get first number and then enter the loop. We will stay inside loop until user enters a value smaller than 0. If user enters a value lower than 0 we will interpret it as STOP receiving scores.

Here are the output results of a sample run:
Enter score (-1 to stop): 12
Enter score (-1 to stop): 14
Enter score (-1 to stop): -1
Average=13.000000
Sum=26.000000

When user enters -1 as the value of num, logical expression inside loop condition becomes false (invalid) as num>=0 is not a valid statement.

Just remember that “while loop” will continue running until the logical condition inside its parentheses becomes false (and in that case it terminates).

For loop
As we told earlier, there are many kinds of loops in C programming language. We will learn about for loop in this section.

“For loop” is something similar to while loop but it is more complex. “For loop” is constructed from a control statement that determines how many times the loop will run and a command section. Command section is either a single command or a block of commands.

for( control statement )
command;
for( control statement )
{
block of commands
}
Control statement itself has three parts:
for ( initialization; test condition; run every time command )

Initialization part is performed only once at “for loop” start. We can initialize a loop variable here. Test condition is the most important part of the loop. Loop will continue to run if this condition is valid (True). If the condition becomes invalid (false) then the loop will terminate.

‘Run every time command’ section will be performed in every loop cycle. We use this part to reach the final condition for terminating the loop. For example we can increase or decrease loop variable’s value in a way that after specified number of cycles the loop condition becomes invalid and “for loop” can terminate.

At this step we rewrite example 3-1 with for loop. Just pay attention that we no more need I=I+1 for
increasing loop variable. It is now included inside “for loop” condition phrase (i++).

Example 3-3:example3-3.c
#include
main()
{
int i=0;
for(i=0;i<100;i++ )
printf("\ni=%d",i);
system("pause");
}

Example 3-4: example3-4.c
Write a program that gets temperatures of week days and calculate average temperature for that week.
#include
main()
{
int count=0;
float num=0,sum=0,avg=0;
for(count=0;count<7;count ++)
{
printf("Enter temperature : ");
scanf("%f",&num);
sum=sum+num;
}
avg=sum/7;
printf("\nAverage=%f\n",avg);
system("pause");
}

Loading
Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Flying Twitter Bird Widget By ICT Sparkle