Professional Documents
Culture Documents
Control Structures: Sequential, Selective, and Repetitive
Control Structures: Sequential, Selective, and Repetitive
SEQUENTIAL, SELECTIVE,
AND REPETITIVE
THREE CATEGORIES
OF CONTROL
STRUCTURES:
• SEQUENTIAL
• SELECTIVE
• REPETITIVE
SEQUENTIA
L
statement_2
.
.
statement_n
SELECTIV
E
CONTROL FOLLOWS ONE OF SEVERAL
ALTERNATIVES OF LOGIC FLOW BASED ON A
CONDITION.
ENTER
process process
EXIT
REPETITIV
E
CONTROL ALLOWS FOR THE REPETITION OF A
CERTAIN TASK BASED ON A CONDITION.
ENTER
true
logical
process
expression
false
EXIT
EXAMPLE
:
PROBLEM:
1. DISCUSSION
0
2. DATA REQUIREMENTS
a) INPUT
hours (float) // HOURS WORKED
rate (float) // HOURLY RATE
final (int) // NUMBER OF REPETITIONS
b) OUTPUT
gross (float) // GROSS PAY
net (float) // NET PAY
c) INTERMEDIATE DATA
counter (int) // LOOP CONTROL VARIABLE
d) NAMED CONSTANTS
tax_bracket = 100.00 // MAXIMUM SALARY WITHOUT
// A TAX DEDUCTION
tax = 25.00 // AMOUNT OF TAX WITHHELD
1
3. RELEVANT FORMULAE
gross pay = hourly rate x hours worked
net pay = gross pay - deductions
2
DESIGN:
1. STRUCTURE CHART
PAYROLL
LEVEL 0
SYSTEM
LEVEL 1
3
2. MODULE SPECIFICATION
(WE INCLUDE ONLY ONE MODULE DESCRIPTION AS AN EXAMPLE):
GROSS PAY
DATA RECEIVED: hours, rate
INFORMATION RETURNED: gross
LOGIC: THE HOURS ARE MULTIPLIED BY THE PAY
RATE TO PRODUCE THE GROSS PAY.
4
3. ALGORITHM:
5
NEW
CONCEPTS
LOGICAL EXPRESSIONS, SELECTION, AND REPETITION
6
LOGICAL
EXPRESSIONS
CONDITIONS ARE WRITTEN IN THE FORM OF
LOGICAL EXPRESSIONS.
THERE ARE TWO POSSIBLE VALUES FOR SUCH AN
EXPRESSION: 1 (REPRESENTS TRUE), OR 0
(REPRESENTS FALSE).
7
LOGICAL EXPRESSIONS MAY BE FORMED BY USING
COMBINATIONS OF TWO KINDS OF OPERATORS:
RELATIONAL AND LOGICAL.
8
RELATIONAL
OPERATORS
OPERATOR MEANING
== EQUAL TO
!= NOT EQUAL TO
< LESS THAN
<= LESS THAN OR EQUAL TO
> GREATER THAN
>= GREATER THAN OR EQUAL TO
9
LOGICAL
OPERATORS
OPERATOR MEANING
&& AND
|| OR
! NOT
0
LOGICAL EXPRESSIONS ARE MADE UP OF
1
EXAMPLE
S:
(counter <= FINAL)
divisor == 0
2
(midterm_grade >= 90) && (final_grade >= 90)
3
&& TRUTH TABLE
operand operator operand
outcome
1(true) && 1(true) 1(true)
1(true) && 0(false) 0(false)
0(false) && 1(true) 0(false)
0(false) && 0(false) 0(false)
4
|| TRUTH TABLE
operand operator operand outcome
1(true) || 1(true) 1(true)
1(true) || 0(false) 1(true)
0(false) || 1(true) 1(true)
0(false) || 0(false) 0(false)
5
! TRUTH TABLE
operator operand outcome
! 1(true) 0(false)
! 0(false) 1(true)
6
PRECEDENCE OF
OPERATORS (REVISITED)
! HIGHEST
* / % PRECEDENCE
+ -
< <= >= >
== !=
&&
||
=
LOWEST PRECEDENCE
EXPRESSION EVALUATION IS LEFT TO RIGHT.
7
THE if
STATEMENT
if STATEMENT INSTRUCTIONS ARE EXECUTED IN A
PHYSICAL ORDER.
8
(TRUE) OR 0 (FALSE).
ONE
ALTERNATIVE
if (logical_expression)
statement_1;
9
LOGIC FLOW OF if
WITH
ONE ALTERNATIVEENTER
true logical
expressio
n
false
statement_1
0 EXIT
TWO
ALTERNATIVES
if (logical expression)
statement_1a;
else
statement_1b;
1
LOGIC FLOW OF if
WITH
TWO ALTERNATIVES
ENTER
statement_1a statement_1b
2 EXIT
COMPOUND
STATEMENTS
AND THE if
THE “TASK” TO BE CARRIED OUT WITHIN THE if
STATEMENT MAY BE SIMPLE OR COMPOUND.
3
EXAMPL
if
E:
(total_grade >= class_average)
{
passing_grade = passing_grade + 1;
cout << "passing!" << endl;
}
else
{
weak_grade = weak_grade + 1;
cout << "in trouble!!!" << endl;
}
4
MULTIPLE
ALTERNATIVES
if (logical expression_1)
statement_1;
else if (logical expression_2)
statement_2;
.
.
else if (logical expression_n)
statement_n;
else
5 statement_n+1;
if (total_grade >= 90)
letter_grade = ‘A’;
else if (total_grade >= 80)
letter_grade = ‘B’;
else if (total_grade >= 70)
letter_grade = ‘C’;
else if (total_grade >= 60)
letter_grade = ‘D’;
else
letter_grade = ‘F’;
6
LOGIC FLOW OF if WITH
MULTIPLE ALTERNATIVES
ENTER
7 EXIT
LOGIC FLOW OF if WITH
MULTIPLE ALTERNATIVES
ENTER
8
EXIT
SEQUENTIAL if
VERSUS
NESTED if
if STATEMENTS
(number > 0)
positive_num = positive_num + 1;
if (number < 0)
negative_num = negative_num + 1;
if (number == 0)
zero_num = zero_num + 1;
9
if (total_grade >= 90)
letter_grade = ‘A’;
else if (total_grade >= 80)
letter_grade = ‘B’;
else if (total_grade >= 70)
letter_grade = ‘C’;
else if (total_grade >= 60)
letter_grade = ‘D’;
else
letter_grade = ‘F’;
0
. COMPOUND if
. STATEMENTS
if (side_1 == side_2) && (side_2 == side_3)
cout << "Triangle is Equilateral" << endl;
else if (side_1 == side_2) || (side_2 == side_3) ||
(side_1 == side_3)
cout << "Triangle is Isosceles" << endl;
else
cout << "Triangle is Scalene" << endl;
.
1
.
THE while STATEMENT
THE REPETITION OF TASKS IN A PROGRAM IS
CALLED LOOPING.
REMAINS TRUE.
2
while (logical_expression)
statement;
total = 0;
counter = 1;
TO BEGIN WITH?
4
IMPLEMENTATION:
// FILE: Payroll.cpp
// Computes and prints gross pay and net pay given an
// hourly rate and number of hours worked. Deducts a tax
// of $25 if gross salary exceeds $100; otherwise, deducts
// no tax.
// LOCAL DATA:
const float tax_bracket = 100.00; // max salary for
// no deductions
const float tax = 25.00; // tax amount
6
// Display user instructions
Instruct_user (tax_bracket, tax);
counter = 1;
while (counter <= final)
{
// Enter hours and rate
cout << "Hours worked: ";
cin >> hours;
cout << "Hourly rate: ";
cin >> rate;
7
// Compute net salary
net = Compute_net (gross, tax_bracket, tax);
8
// Display user instructions
void Instruct_user
(const float tax_bracket, // IN: maximum salary
// for no deduction
const float tax) // IN: tax amount
{
cout << "This program computes gross and net salary."
<< endl;
cout << "A tax amount of $" << tax << " is deducted for"
<< endl;
cout << "an employee who earns more than $" << tax_bracket
<< endl << endl;
cout << "First, enter how many times do you want to "
<< "repeat the calculations." << endl << endl;
cout << "Then, enter hours worked and hourly rate" << endl;
cout << "on separate lines after the prompts." << endl;
cout << "Press <RETURN> after typing each number."
<< endl << endl;
return;
} // end of Instruct_user
9
// Find the gross salary
float Compute_gross
(float hours, // IN: number of hours worked
float rate) // IN: hourly payrate
{
// Compute gross pay
return hours * rate;
} // end of Compute_gross