Professional Documents
Culture Documents
CH 04 If
CH 04 If
Testing Conditions
4.1 Objective
The objective is to learn how to construct a program structures for testing conditions by using if control
statement.
columns
columns
/* Income tax calculator I . co
columns
columns
if income is greater than or equal to Rs 600000 , then tax is 10%. co
*/
columns
columns co
columns
columns
# include < stdio .h > co
columns
columns co
columns
columns
int main ( void ) co
columns
columns
{ co
double annual_income , income_tax ;
columns
columns co
columns
columns co
columns
columns
printf ( " Enter your annnual Income [ Rs ] : " ) ; co
columns
columns
scanf ( " % lf " ,& annual_income ) ; co
columns
columns co
columns
columns
if ( annual_income > 600000) co
{
columns
columns co
columns
columns
income_tax = annual_income * 10.0/100.0; co
columnsprintf ( " \ nIncome Tax = Rs . %.2 lf \ n " , income_tax ) ;
columns co
columns
columns
} co
columns
columns co
columns
columns
return 0; co
columns
columns
} co
columns
columns
/* Keyboard character clasification I . co
columns
columns
Check if user entered character ’A ’ co
columns
columns
*/ co
# include < stdio .h >
columns
columns co
columns
columns co
columns
columns
int main ( void ) co
columns
columns
{ co
columns
columns
char cKbd ; co
columns
columns co
columns
columns
printf ( " Enter any key : " ) ; co
columns
columns
scanf ( " % c " , & cKbd ) ; co
columns
columns co
columns
columns
if ( cKbd == ’A ’) co
columns
columns
{ co
columns
columns
printf ( " \ nFirst letter of the English alphabet . " ) ; co
columns
columns
} co
columns
columns co
columns
columns
return 0; co
columns
columns
} co
4.3 if-else
• The if-else control statement has the following format
if(Expression)
{
Statement1;
}
else
2
{
Statement2;
}
• and it functions as follows
– If the Expression is true, the Statement1 is executed.
– otherwise (i.e. if the Expression is false), the Statemen2t is executed.
– The flow chart given in the Figure 4.2 also describe how if-Statement works.
columns
columns
/* Income tax calculator II . co
columns
columns
if income is greater than or equal to Rs 600000 , then tax is 10%. co
columns
columns
Otherwise , no tax co
columns
columns
*/ co
columns
columns
# include < stdio .h > co
columns
columns co
columns
columns
int main ( void ) co
{
columns
columns co
columns
columns
double annual_income , income_tax ; co
columns
columns co
columns
columns
printf ( " Enter your annnual Income [ Rs ] : " ) ; co
columns
columns
scanf ( " % lf " ,& annual_income ) ; co
columns
columns co
columns
columns
if ( annual_income > 600000) co
columns
columns
{ co
columns
columns
income_tax = annual_income * 10.0/100.0; co
columns
columns
printf ( " \ nIncome Tax = Rs . %.2 lf \ n " , income_tax ) ; co
}
columns
columns co
columns
columns
else co
columns
columns
{ co
columns
columns
printf ( " \ nNO TAX \ n " ) ; co
columns
columns
} co
3
columns
columns co
columns
columns
return 0; co
}
columns
columns co
.
Exercise 4.11 Execute the program in Listing 4.4.
Exercise 4.12 Explain how if control statement works in the program in Listing 4.4.
Exercise 4.13 Execute the program in Listing 4.5.
Exercise 4.14 Explain how if control statement works in the program in Listing 4.5.
Exercise 4.15 Write a program to grade a student based on the obtained marks, in accordance with the
following table.
4
Figure 4.3: Flowchar of if-else if-else statement.
columns
columns
/* Income tax calculator . co
columns
columns co
columns
columns
Income Rs | Tax co
=================|======
columns
columns co
columns
columns
above 1 ,000 ,000 | 12% co
columns
columns
800000 - 1000000 | 9% co
columns
columns
500000 - 799000 | 7% co
columns
columns
300000 - 499000 | 5% co
columns
columns 0 - 299000 | 0% co
columns
columns co
columns
columns
*/ co
columns
columns
# include < stdio .h > co
columns
columns co
int main ( void )
columns
columns co
columns
columns
{ co
columns
columns
double annual_income , income_tax ; co
columns
columns co
columns
columns
/* Input : Income */ co
columns
columns
printf ( " Income Tax Calculator \ n " ) ; co
columns
columns
printf ( " = = = = = = = = = = = = = = = == = = = = \ n " ) ; co
columns
columns
printf ( " Enter your annnual Income [ Rs ] : " ) ; co
columns
columns
scanf ( " % lf " , & annual_income ) ; co
columns
columns co
columns
columns
/* Calculate tax based on the income */ co
columns
columns
if ( annual_income >= 1000000) co
columns
columns
{ co
columns
columns
income_tax = annual_income * 12.0/100.0; co
columns
columns
} co
5
columns
columns
else if ( annual_income >= 800000) co
columns
columns
{ co
income_tax = annual_income * 9.0/100.0;
columns
columns co
columns
columns
} co
else if ( annual_income >= 500000)
columns
columns co
columns
columns
{ co
columns
columns
income_tax = annual_income * 7.0/100.0; co
}
columns
columns co
columns
columns
else if ( annual_income >= 300000) co
{
columns
columns co
columns
columns
income_tax = annual_income * 5.0/100.0; co
}
columns
columns co
columns
columns
else co
{
columns
columns co
columns
columns
income_tax = annual_income * 0.0/100.0; co
}
columns
columns co
columns
columns co
columns
columns
/* Display the Tax */ co
printf ( " \ nIncome Tax = Rs . %.2 lf \ n " , income_tax ) ;
columns
columns co
columns
columns co
return 0;
columns
columns co
columns
columns
} co
columns
columns
/* Calculator . Simple Menu co
columns
columns
Input : x , y co
Menu : a - Add
columns
columns co
columns
columns s - Substract co
columns
columns q - Quit program co
columns
columns
if a is chosen , then z = x + y co
columns
columns
if s is chosen , then z = x - y co
columns
columns
if q is chosen , then end the program co
*/
columns
columns co
columns
columns
# include < stdio .h > co
columns
columns co
columns
columns
int main ( void ) co
columns
columns
{ co
columns
columns
double x , y , z ; co
columns
columns
char cKbd ; co
columns
columns co
columns
columns
/* Input : x , y */ co
columns
columns
printf ( " Calculator \ n " ) ; co
columns
columns
printf ( " ==========\ n " ) ; co
columns
columns
printf ( " Enter X : " ) ; co
columns
columns
scanf ( " % lf " ,& x ) ; co
columns
columns
printf ( " \ nEnter Y : " ) ; co
columns
columns
scanf ( " % lf " ,& y ) ; co
columns
columns co
columns
columns
/* Display Menu */ co
columns
columns
printf ( " \ nMenu :\ ta - Add ( X + Y ) \ n \ ts - Substract (X - Y ) \ n \ tq - Quit co
columns
columns
Program " ) ; co
columns
columns
printf ( " \ nEnter Your Choise : " ) ; co
columns
columns co
columns
columns
/* read the user ’s choise */ co
columns
columns
scanf ( " % c " ,& cKbd ) ; co
columns
columns co
columns
columns
/* Do the calculations */ co
if ( cKbd == ’a ’)
columns
columns co
columns
columns
{ co
columns
columns
printf ( " \ n X + Y = % lf \ n " , x + y ) ; co
columns
columns
} co
columns
columns
else if ( cKbd == ’s ’) co
6
columns
columns
{ co
columns
columns
printf ( " \ n X - Y = % lf \ n " , x - y ) ; co
}
columns
columns co
columns
columns
else if ( cKbd == ’q ’) co
{
columns
columns co
columns
columns
printf ( " \ nQuit the program \ n " ) ; co
columns
columns
} co
else
columns
columns co
columns
columns
{ co
printf ( " \ nError : Your choise is not in the menu \ n " ) ;
columns
columns co
columns
columns
} co
columns
columns co
columns
columns
return 0; co
}
columns
columns co
Expression Evaluates to
(x+1==y)&& x>2 true
(x+1==y)&& x<2 false
(x+1==y) || x<2 true
(x+1>y) || y>2 false
Exercise 4.17 Execute the program in Listing 4.6. Explain how && operator works in the program.
Exercise 4.18 Execute the program in Listing 4.7. Explain how || operator works in the program.
Exercise 4.19 Write if-else if-else statements to check if user input keyboard character is
(a) is a digit or not.
(b) a simple letter or not.
(c) Check if user input keyboard character is a capital letter or not.
(d) Check if user input keyboard character is a letter (simple or capital).
(e) Check if user input keyboard character is not a digit.
(f) Check if user input keyboard character is not a letter.
(g) Check if user input keyboard character is not a letter or digit.
columns
columns
/* Minimum Job Qualification I co
columns
columns
Input : Height , Chest Size co
columns
columns
Selected if Height >=160 cm AND Chest >=90 cm co
columns
columns
*/ co
columns
columns
# include < stdio .h > co
columns
columns co
columns
columns
# define MIN_HEIGHT 160 co
7
columns
columns
# define MIN_CHEST 90 co
columns
columns co
int main ( void )
columns
columns co
columns
columns
{ co
int canHeight , canChest ;
columns
columns co
columns
columns co
columns
columns
/* Input : height and chest size */ co
printf ( " Minimum Job Criteria \ n " ) ;
columns
columns co
columns
columns
printf ( " = = = = = = = = = = = = = = = == = = = \ n " ) ; co
printf ( " Enter height of candidate [ cm ] : " ) ;
columns
columns co
columns
columns
scanf ( " % d " , & canHeight ) ; co
columns
columns co
columns
columns
printf ( " \ nEnter chest size of candidate [ cm ] : " ) ; co
scanf ( " % d " , & canChest ) ;
columns
columns co
columns
columns co
/* Check the Qualificaiton */
columns
columns co
columns
columns
if ( canHeight >= MIN_HEIGHT && canChest >= MIN_CHEST ) co
columns
columns
{ co
columnsprintf ( " \ nQUALIFIED \ n " ) ;
columns co
columns
columns
} co
else
columns
columns co
columns
columns
{ co
columnsprintf ( " \ nDISQUALIFIED \ n " ) ;
columns co
columns
columns
} co
columns
columns co
columns
columns
return 0; co
columns
columns
} co
Step 3 If q is pressed, immediately exit the program. Otherwise perform the following steps.
Step 4 Prompt for appropriate user input operand or operands depending on the operator type.
That is if the operation is one of p, r, n or c, user should be prompted for single number n.
Enter the First Number (n) :
Otherwise, in case any of a, s, m or d, user should be prompted for two numbers n1 and n2.
Enter the First Number (n1) :
Enter the Second Number (n2) :
Step 5 The operation of users choice is performed with appropriate error handling.
Step 6 The result is displayed on console with appropriate description.
Eg. If n1 is 2.5 and n2 is 3.75 then the results may be displayed as
The result of 2.5 + 3.75 is 6.25.
Step 7 Exit the program by displaying
End of the Calculator Program.
4.2 Display the day of the week Monday, Tuesday, . . . Sunday, for entered number between 1, 2 . . . 7, respec-
tively. Also check if the entered number corresponds to a working day or week end.
4.3 Write a program that calculates the area of 2D objects. The user can choose any of the objects; Rectangle,
Triangle, Circle, Square, through a menu, and then user also should input the appropriate parameters
required to calculate the area of the chosen object.
4.4 Write a program that calculates the volume of 3D objects. The user can choose any of the objects; Cylinder,
Sphere, Cuboid, Triangular Prism, Cone, and then user also should input the appropriate parameters
required to calculate the volume of the chosen object.
4.5 Read a positive integer N and determine whether N is even or odd.
4.6 Read three integer values from user. Display the greatest value.
4.7 Read three integer values from user. Display the middle value.
4.8 Read three integer values from user. Display them in ascending order.
4.9 Read an integer value from user. Display ”Congrats you won!” if user entered 1, 10 or 100.
4.10 Read three integer values from user. Display ”Congrats you won!” if user entered 1, 10 and 100 in the
order.
4.11 Ask the user to enter a number between 0 and 10. Use the || operator to warn the user if the entered
number is less than or equal to zero or greater than or equal to ten. Otherwise prompt ”Good Job!”.
4.12 Ask the user to enter a number between 0 and 10. Use the && operator to warn the user if the entered
number is less than or equal to zero or greater than or equal to ten. Otherwise prompt ”Good Job!”.
9
4.13 Ask the user to enter a number between 50 and 100 which is not equal to 75. Use the || operator to warn
the user if the entered number is invalid. Otherwise prompt ”Good Job!”.
4.14 Ask the user to enter a number between 50 and 100 which is not equal to 75. Use the && operator to warn
the user if the entered number is invalid. Otherwise prompt ”Good Job!”.
4.15 Classify if the user entered keyboard character is a digit, capital letter, simple letter.
4.16 Classify if the user entered keyboard character is not a digit or a capital letter or a simple letter.
10