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");
}