Iteration Control Structures Presentation

Download Report

Transcript Iteration Control Structures Presentation

ITERATION
ITERATION
FIXED ITERATION
KNOWN FIXED QUANTITY OF TIMES
FOR
TOP TESTED
ENTER LOOP ONLY IF CONDITION IS TRUE
WHILE
LOOP MAY NOT BE EXECUTED
BOTTOM TESTED
CONTINUE LOOP UNTIL CONDITION IS TRUE
DO- WHILE
LOOP IS ALWAYS EXECUTED ONCE
TOP TESTED LOOP (WHILE)
SIMPLE
while (RELATIONAL EXPRESSION(s))
statement;
COMPOUND
while (RELATIONAL EXPRESSION(s))
{
statement;
“
“
statement(s);
}
TOP TESTED LOOP (WHILE)
RULES
1.
2.
3.
STATEMENT(s) IS/ARE EXECUTED IF AND
ONLY IF THE RELATIONAL EXPRESSION(s)
EVALUATE TRUE.
STATEMENT(s) IS/ARE EXECUTED FOLLOWING
EACH TRUE EVALUATION OF THE
RELATIONAL EXPRESSION(s).
ONE OF THE LOOP’S STATEMENTS MUST SET
UP A CONDITION TO EXIT THE LOOP OR IT
WILL BE AN INFINITE LOOP.
TOP TESTED LOOP (WHILE)
TYPICAL VARIATIONS
COUNTER CONTROLLED
 DESIGNED TO RUN A FIXED NUMBER OF TIMES
SENTINEL CONTROLLED
 SENTINEL VALUE CONTROLLED
– READ FIRST INPUT & TEST
– VALID EXECUTE LOOP
– INVALID (MATCHES SENTINEL) DO NOT EXECUTE LOOP
– CONTINUE UNTIL INPUT MATCHES SENTINEL
FLAG CONTROLLED
 BOOLEAN FLAG CONTROLLED
– FLAG IS INITIALIZED TO FALSE
– LOOP EXECUTES UNTIL FLAG IS TRUE
– FLAG IS SET TO TRUE BY STATEMENTS IN BODY OF
WHILE
EOF CONTROLLED
 CONTROLLED BY RESULT OF EOF FUNCTION
– MORE TO COME IN CS362
TOP TESTED LOOP (WHILE)
EXAMPLES
int main( )
{
char answer;
float score, total, avg;
int count;
count = 0;
total = 0;
answer = ‘Y’;
while (answer == ‘Y’ || answer == ‘y’)
{
cout << “Enter the students’s score.” << endl;
cin >> score;
total = total + score;
count ++;
cout << “Is there another score to enter? Y/N” << endl;
cin >> answer;
}
avg = total / count;
cout << fixed << setprecision(2);
cout << “The class average is ‘ << avg << endl;
cout << endl;
system(“Pause”);
}
TOP TESTED LOOP (WHILE)
 EXAMPLES
int main ( )
{
char answer;
float score, total, avg;
int quantity;
cout << “Enter the number of students in the class.” << endl;
cin >> quantity;
count = 1;
total = 0;
while (count <= quantity)
{
cout << “Enter the students score.” << endl;
cin >> score;
total = total + score;
count ++;
}
avg = total / quantity;
cout << fixed << setprecision(2);
cout << “The class average is “ << avg << endl;
cout << endl;
system(“Pause”);
}
FIXED ITERATION (FOR)
SIMPLE
for (initialization; condition; update)
statement;
COMPOUND
for (initialization; condition; update)
{
statement;
statement:
statement(s);
}
FIXED ITERATION (FOR)
 RULES
1. INITIALIZATION STATEMENT EXECUTES
2. LOOP CONDITION IS EVALUATED
a) IF TRUE STATEMENT(S) IS/ARE EXECUTED
b) IF FALSE LOOP IS EXITED
3. UPDATE STATEMENT IS EXECUTED
FIXED ITERATION (FOR)
EXAMPLES
const int upper = 25;
const int percent = 100;
int index, quantity, lower;
float score, total, avg;
int main( )
{
total = 0;
score = 0;
for (lower = 1; lower <= upper; lower ++)
{
cout << “ENTER THE STUDENTS SCORE” << endl;
cin >> score;
total = total + score;
}
avg = (total / upper) * percent;
cout << fixed << setprecision(2);
cout << “THE CLASS AVERAGE IS “ << avg << endl;
cout << system(“Pause”);
}
FIXED ITERATION (FOR)
EXAMPLES
const int percent = 100;
int index, quantity, lower, upper;
float score, total, avg;
int main( )
{
total = 0;
score = 0;
upper = 0;
cout << “HOW MANY STUDENTS ARE IN THE CLASS?” << endl;
cin >> upper;
for (lower = 1; lower <= upper; lower ++)
{
cout << “ENTER THE STUDENTS SCORE” << endl;
cin >> score;
total = total + score;
}
avg = (total / upper) * percent;
cout << fixed << setprecision(2);
cout << “THE CLASS AVERAGE IS “ << avg << endl;
cout << system(“Pause”);
}
BOTTOM TESTED LOOP (DO WHILE)
SIMPLE
do
statement;
while (RELATIONAL EXPRESSION(s));
COMPOUND
do
{
statement;
“
“
statement(s);
}
while (RELATIONAL EXPRESSION(s));
BOTTOM TESTED LOOP (DO WHILE)
RULES
1. STATEMENT(s) IS/ARE ALWAYS EXECUTED
AT LEAST ONCE.
2. STATEMENT(s) CONTINUE TO BE EXECUTED
UNTIL THE RELATIONAL EXPRESSION(s)
EVALUATES TO FALSE.
BOTTOM TESTED LOOP (DO WHILE)
EXAMPLES
float score, total, avg;
int quantity, count;
char answer;
Int main( )
{
total = 0;
count = 0;
do
{
cout << “ENTER THE STUDENTS SCORE” << endl;
cin >> score;
total = total + SCORE;
count = count + 1;
cout << “IS THERE ANOTHER SCORE TO ENTER? Y/N” << endl;
cin >> answer;
}
while (answer != ‘N’ && answer != ‘n’);
avg = total / count;
cout << fixed << setprecision(2);
cout << “THE CLASS AVERAGE IS “ << avg << endl;
cout << system(“Pause”);
}
BOTTOM TESTED LOOP (REPEAT)
EXAMPLES
float score, total, avg;
int quantity, cnt;
char answer;
Int main( )
{
quantity = 0;
total = 0;
cnt = 1;
cout << “ENTER THE NUMBER OF STUDENTS: “ << endl;
cin >> quantity;
do
{
cout << “ENTER THE STUDENTS SCORE” << endl;
cin >> score;
total = total + score;
cnt = cnt + 1;
}
while (cnt <= quantity);
avg = total / quantity;
cout << fixed << setprecision(2);
cout << “THE CLASS AVERAGE IS “ << avg << endl;
cout << system(“Pause”);
}