Download presentation
Presentation is loading. Please wait.
Published byGarry Stewart Modified over 6 years ago
1
Engineering Problem Solving with C++, Etter/Ingber
Chapter 3 Control Structures Engineering Problem Solving with C++, Second Edition, J. Ingber
2
Engineering Problem Solving with C++, Second Edition, J. Ingber
Control structures Algorithm Development Conditional Expressions Selection Statements Repetition Statements Structuring Input Loops Engineering Problem Solving with C++, Second Edition, J. Ingber
3
Algorithm Development
Structured Programming Evaluation of Alternative Solutions Algorithm Development Engineering Problem Solving with C++, Second Edition, J. Ingber
4
Algorithm Development
An algorithm is a sequence of steps for solving a problem. Engineering problem solutions to real world problems require complex algorithms. Development of a good algorithm increases the quality and maintainability of a solution, and reduces the overall time required to implement a correct solution. Engineering Problem Solving with C++, Second Edition, J. Ingber
5
Engineering Problem Solving with C++, Second Edition, J. Ingber
Top-Down Design Top-down design begins with a "big picture" description of a problem solution in sequential steps. The sequential steps are refined until the steps are detailed enough to translate to language statements. The refined steps, or algorithm, can be described using pseudo code or flowcharts. Engineering Problem Solving with C++, Second Edition, J. Ingber
6
Evaluation of Alternative Solutions
Most problems have more than one solution. There may not be a single best solution, but some solutions are better than others. Elements that contribute to a good solution: correctness reliability readability maintainability execution speed memory considerations user interface Engineering Problem Solving with C++, Second Edition, J. Ingber
7
Structured Programming
A structured program is written using simple control structures, including: Sequence – steps are performed one after another. Selection – one set of statements is executed if a given condition is true, a different set of statements, or no statements at all, is executed if the condition is false. Repetition –A set of statements is executed repeatedly as long as a given condition is true. Engineering Problem Solving with C++, Second Edition, J. Ingber
8
Structured Programming
Sequence Selection Repetition ? false true ? true false ? => conditional expression Engineering Problem Solving with C++, Second Edition, J. Ingber
9
Conditional Expressions
Relational operators Logical operators Conditional Expressions Engineering Problem Solving with C++, Second Edition, J. Ingber
10
Conditional Expressions
A conditional expression is a Boolean expression that evaluates to true or false. Selection structures and repetition structures rely on conditional expressions. Relational operators and logical operators are used to form conditional expressions. Engineering Problem Solving with C++, Second Edition, J. Ingber
11
Engineering Problem Solving with C++, Second Edition, J. Ingber
Relational Operators == equality != non equality < less than > greater than <= less than equal to >= greater than equal to Engineering Problem Solving with C++, Second Edition, J. Ingber
12
Engineering Problem Solving with C++, Second Edition, J. Ingber
Logical Operators ! not && and || or Engineering Problem Solving with C++, Second Edition, J. Ingber
13
Engineering Problem Solving with C++, Second Edition, J. Ingber
Logical Operators A B A&&B A||B !A !B 1 Truth table for conditional expressions 0 = Engineering Problem Solving with C++, Second Edition, J. Ingber
14
Engineering Problem Solving with C++, Second Edition, J. Ingber
Operator Precedence < <= > >= == != && || Engineering Problem Solving with C++, Second Edition, J. Ingber
15
Engineering Problem Solving with C++, Second Edition, J. Ingber
Practice! - evaluate (-6<0)&&(12>=10) (3.0 >= 2.0) || (3.0 >= 4.0) (3.0 >= 2.0) && (3.0 >= 4.0) true && true results in true true || false results in true true && false results in false Engineering Problem Solving with C++, Second Edition, J. Ingber
16
Engineering Problem Solving with C++, Second Edition, J. Ingber
if statement switch statement Selection Statements Engineering Problem Solving with C++, Second Edition, J. Ingber
17
Engineering Problem Solving with C++, Second Edition, J. Ingber
Selection Statements The C++ programming language supports the implementation of selection with: if statements switch statements Engineering Problem Solving with C++, Second Edition, J. Ingber
18
Engineering Problem Solving with C++, Second Edition, J. Ingber
The if statement if(expression) statement; /*single statement executed if expression is true */ // statement block is executed if expression is true. if(expression) { statement1; statement2; … statement n; } Engineering Problem Solving with C++, Second Edition, J. Ingber
19
The if statement - examples
if (x>0) ++k; if(x>0) { x=sqrt(x); } Engineering Problem Solving with C++, Second Edition, J. Ingber
20
Engineering Problem Solving with C++, Second Edition, J. Ingber
The if - else statement if(expression) statement; else if(expression) { statement block } else Engineering Problem Solving with C++, Second Edition, J. Ingber
21
Engineering Problem Solving with C++, Second Edition, J. Ingber
The nested if-else if(x > y) if(y < z) k++; else m++; j++; Engineering Problem Solving with C++, Second Edition, J. Ingber
22
Engineering Problem Solving with C++, Second Edition, J. Ingber
Practice! int x=9, y=7, z=2, k=0, m=0, j=0; if(x > y) if(y >z && y>k) k++; else m++; j++; What are the values of j, k and m? Engineering Problem Solving with C++, Second Edition, J. Ingber
23
Engineering Problem Solving with C++, Second Edition, J. Ingber
The switch statement switch(expression) { case constant: statement(s); break; /* default is optional*/ default: } Engineering Problem Solving with C++, Second Edition, J. Ingber
24
Engineering Problem Solving with C++, Second Edition, J. Ingber
The switch statement Expression must be of type integer or character. The keyword case must be followed by a constant. break statement is required unless you want all subsequent statements to be executed. Engineering Problem Solving with C++, Second Edition, J. Ingber
25
switch statement example
char ch; int ecount=0, vowels=0, other=0; cin.get(ch); while(!cin.eof()) { switch(ch) { case ‘e’: ecount++; case ‘a’: case ‘i’: case ‘o’: case ‘u’: vowels++; break; default: other++; }//end switch }//end while cout << ecount << ‘,’ << vowels << ‘,’ << other << endl; Engineering Problem Solving with C++, Second Edition, J. Ingber
26
Engineering Problem Solving with C++, Second Edition, J. Ingber
Practice! Convert these nested if/else statements to a switch statement: if (rank==1 || rank==2) cout << "Lower division \n"; else { if (rank==3 || rank==4) cout << "Upper division \n"; { if (rank==5) cout << "Graduate student \n"; cout << "Invalid rank \n"; } Engineering Problem Solving with C++, Second Edition, J. Ingber
27
Repetition Statements
while statement do while statement for statement Structuring input loops Repetition Statements Engineering Problem Solving with C++, Second Edition, J. Ingber
28
Repetition Statements
The C++ programming language supports the implementation of repetition with: while statements do/while statements for statements Engineering Problem Solving with C++, Second Edition, J. Ingber
29
Engineering Problem Solving with C++, Second Edition, J. Ingber
The while statement ? true false while (expression) statement; { statement block } Engineering Problem Solving with C++, Second Edition, J. Ingber
30
The do/while statement
? true false do statement; while (expression) { statement block } while (expression) Engineering Problem Solving with C++, Second Edition, J. Ingber
31
Engineering Problem Solving with C++, Second Edition, J. Ingber
Practice! #include <iostream> using namespace std; int main() { int n=4; while(n>0) cout << n << endl; --n; } cout << “value of n outside while is “ << n << endl; return 0; Program Trace: Output? Engineering Problem Solving with C++, Second Edition, J. Ingber
32
Engineering Problem Solving with C++, Second Edition, J. Ingber
The for statement initalize ? false increment/ decrement true statement(s) statement(s) Engineering Problem Solving with C++, Second Edition, J. Ingber
33
Engineering Problem Solving with C++, Second Edition, J. Ingber
The for statement for(initialization; expression; increment/decrement) statement; { } Engineering Problem Solving with C++, Second Edition, J. Ingber
34
The for statement - examples
Alternate solution: //sum integers from //1 to 10 #include<iostream> using namespace std; int main() { int sum=0; for(int i=1;i<=10;i++) sum = sum + i; cout << sum << endl; return 0; } //sum integers from //1 to 10 inclusive #include<iostream> using namespace std; int main() { int sum=0; for(int i=1;i<11;++i) sum = sum + i; } cout << sum << endl; return 0; Engineering Problem Solving with C++, Second Edition, J. Ingber
35
The for statement - example
//sum odd integers from //1 to n inclusive #include<iostream> using namespace std; int main() { int sum=0, n; cout << "enter non-negative integer: "; cin >> n; for(int i=1;i<=n;i+=2) sum = sum + i cout << sum << endl; return 0; } Engineering Problem Solving with C++, Second Edition, J. Ingber
36
The for statement - example
//sum odd integers from //1 to n inclusive //Alternate Solution #include<iostream> using namespace std; int main() { int sum=0, n; cout << "enter non-negative integer: "; cin >> n; for(int i=1;i<=n;++i) if(i%2) sum = sum + i; } cout << sum << endl; return 0; Engineering Problem Solving with C++, Second Edition, J. Ingber
37
Engineering Problem Solving with C++, Second Edition, J. Ingber
Practice! Write a program solution to print all integer values between 1 and n that are multiples of 5 (ie evenly divisible by 5). Compare your solution with another person's solution. Engineering Problem Solving with C++, Second Edition, J. Ingber
38
Engineering Problem Solving with C++, Second Edition, J. Ingber
The break statement break; terminates loop execution continues with the first statement following the loop Example: What is the output? for(int i-0; i<=10; ++i) { if(i%2) break; cout << i << endl; } Engineering Problem Solving with C++, Second Edition, J. Ingber
39
The continue statement
forces next iteration of the loop, skipping any remaining statements in the loop Example: What is the output? for(int i-0; i<=10; ++i) { if(i%2) continue; cout << i << endl; } Engineering Problem Solving with C++, Second Edition, J. Ingber
40
Engineering Problem Solving with C++, Second Edition, J. Ingber
Practice! //This while loop calculates n! int nfact=1, n; cout << "enter positive integer "; cin >> n; while(n > 1) { nfact = nfact*n; n--; } cout << n << "! = " << nfact << endl; //What is the output for n=5? //Write an alternate solution. Engineering Problem Solving with C++, Second Edition, J. Ingber
41
Structuring Input Loops
Repetition is useful when inputting data from standard input or from a file. Common repetition structures: counter-controlled sentinel-controlled end-of-data controlled Engineering Problem Solving with C++, Second Edition, J. Ingber
42
Counter-controlled Repetition Structure
while i < = counter input data value //Do something with data value increment i end while Engineering Problem Solving with C++, Second Edition, J. Ingber
43
Sentinel-controlled Repetition Structure
input data value while data value ! = sentinel value //Do something with data value input next data value end while Engineering Problem Solving with C++, Second Edition, J. Ingber
44
eof()-controlled Repetition Structure
input data value while end-of-file is not true //Do something with input data input next data value end while Engineering Problem Solving with C++, Second Edition, J. Ingber
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.