Presentation is loading. Please wait.

Presentation is loading. Please wait.

COS120 Software Development Using C++ AUBG Fall semester 2010 Ref book: Problem Solving, Abstraction and Design Using C++ Authors: Frank Friedman, Elliot.

Similar presentations


Presentation on theme: "COS120 Software Development Using C++ AUBG Fall semester 2010 Ref book: Problem Solving, Abstraction and Design Using C++ Authors: Frank Friedman, Elliot."— Presentation transcript:

1 COS120 Software Development Using C++ AUBG Fall semester 2010 Ref book: Problem Solving, Abstraction and Design Using C++ Authors: Frank Friedman, Elliot Koffman, http://www.aw.com/cssupporthttp://www.aw.com/cssupport Course lecturer: Assoc. Prof. Stoyan Bonev, PhD

2 Lecture 11: Control Flow. Selection (Decision) structures (cont)

3 3 Lecture Contents: t The switch statement t Demo programs t Exercises

4 4 4. Control Structures t Three methods of processing a program –In sequence –Branching –Looping t Branch: altering the flow of program execution by making a selection or choice t Loop: altering the flow of program execution by repetition of statement(s)

5 5 5. Flow of Execution

6 Reminder Single (one-way) selection Double (two-way) selection

7 7 The if statement (then version) Syntax and flowchart fragment: if ( ) ;

8 8 The if statement (then – else version) Syntax and flowchart fragment: if ( ) ; else ;

9 New Multiple selection

10 10 Multiple selection

11 11 The switch statement Syntax and flowchart fragment: The switch statement: If you have a large decision tree and all the decisions depend on different values of the same variable (control expression) you’ll probably want to consider a switch statement instead of a series of nested if…else if…else statements or alternate sequence of if statements.

12 12 The switch statement Syntax&flowchart fragment in general: switch ( ) { case : ; break;... case : ; break; default: ; break; }; Don’t forget the break statement: Without it control passes down to (or falls through) the statements for the next case which is usually not what you want

13 13 The switch statement What is ? It’s an expression that may be evaluated at compile time. In other words, all operands must be with fixed, defined values during the compilation process. See examples on next slide(s)

14 14 The switch statement What is ? t Expression whose operands are literal values: YES –5 + 6 * 8 –10 * (4 +16) – 5 –100 % 5 + 20 / 5

15 15 The switch statement What is ? t Expression whose operands are constant ( const ) variables: YES – const int a=15;const int b=24; –5 + a * 8 –10 * (a + b) – 5 –100 % a + 20 / b

16 16 The switch statement What is ? t Expression whose operands are standard scalar variables: NO/YES –int a=15;int b=24; –5 + a * 8 –10 * (a + b) – 5 –100 % a + 20 / b

17 17 The switch statement What is ? t Expression whose operands are standard scalar variables: NO –int a;int b;cin >> a >> b; –5 + a * 8 –10 * (a + b) – 5 –100 % a + 20 / b

18 18 The switch statement Example: int speed; cout >speed; switch(speed) { case 33: cout<<”Long play album”; break; case 45: cout<<”Single selection”; break; case 78: cout<<”Obsolete format”; break; default: cout<<”Wrong value entered”; }; Reminder: Don’t forget the break statement: Without it control passes down to (or falls through) the statements for the next case which is usually not what you want

19 19 More on switch statement Extract from Friedman/Koffman, chapter 4

20 Selection Structures: if and switch Statements Chapter 4

21 21 Selection Statements –In this chapter we study statements that allow alternatives to straight sequential processing. In particular: if statements (do this only if a condition is true) if-else statements (do either this or that) Logical expressions (evaluate to true or false) Boolean operators (not: ! and: && or: ||) Bit-wise boolean operators (and: & or: |)

22 22 Logical Expressions –Logical expressions often use these relational operators:

23 23 Boolean Variables  boolean variable – basic data type bool bool leapYear, same; t boolean assignment Form:variable = expression; Example: leapYear = true; // Non zero return value leapYear = false; // Zero return value same = (x == y);

24 24 Truth Tables for Boolean Operators t Truth tables Logical operators !, ¦¦, && –1 is a symbol for true –0 is a symbol for false

25 25 Bit-wise logical operators t &- bit wise AND operator t |- bit wise OR operator

26 26 Precedence of Operators

27 27 4.8 The switch Control Statement switch ( switch-expression ) { case value-1 : statement(s)-1 break ;... // many cases are allowed case value-n : statement(s)-n break ; default : default-statement(s) }

28 28 Switch Control –When a switch statement is encountered, the switch-expression is evaluated. This value is compared to each case value until switch-expression == case value. All statements after the colon : are executed –It is important to include the break statement

29 29 Example switch Statement: switch(watts) // Assume char option = '?’ { case 25: cout << " Life expectancy is 2500 hours. " << endl; break; case 40: case 60: cout << " Life expectancy is 1000 hours. " << endl; break; case 75: case 100: cout << " Life expectancy is 750 hours. " << endl; break; default: cout << "Invalid Bulb !!" << endl; }; // end switch

30 30 Trace the previous switch –Show output when watts = '?'____________? watts = 40____________? watts = 10____________? watts = 200____________? watts = 100____________?

31 31 Before lecture end Lecture: Control Flow. Selection (decision) structures More to read: Friedman/Koffman, Chapter 04

32 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 4: Selection Structures: if and switch Statements Problem Solving, Abstraction, and Design using C++ 5e by Frank L. Friedman and Elliot B. Koffman

33 33 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 4.8 The switch Control Statement switch ( switch-expression ) { case label 1 : statements 1 ; break; case label 2 : statements 2 ; break;. case label n : statements n ; break; default: statements d ; // optional }

34 34 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Switch Control Statement Alternative to multiple if statements in some cases Most useful when switch selector is single variable or simple expression Switch selector must be an integral type (int, char, bool)

35 35 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Switch Control Statement Switch selector value compared to each case label. When there is an exact match, statements for that case are executed. If no case label matches the selector, the entire switch body is skipped unless it contains a default case label. break is typically used between cases to avoid fall through.

36 36 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Listing 4.5 switch statement to determine life expectancy of a lightbulb

37 37 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 4.9 Common Programming Errors Use parentheses to clarify complex expressions Use logical operators only with logical expressions Use braces { } to group multiple statements for use in control structures

38 38 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Common Programming Errors When writing a nested if statement, use multiple-alternative form if possible –if conditions are not mutually exclusive, put the most restrictive condition first Make sure switch selector and case labels are the same type. Provide a default case for a switch statement whenever possible.

39 39 Exercise 11.1 Build programs based on branch algorithms using the switch statement:  To test an input integer value entered from the keyboard as a valid speed of a gramophone (obsolete record player) – 33, 45, 78;

40 40 Exercise 11.2 Build programs based on branch algorithms using the switch statement: t To test a character as a valid grade ‘A’ or ‘a’- excellent ‘B’ or ‘b’- good ‘C’ or ‘c’- average ‘D’ or ‘d’- poor. Student is to retake.

41 41 Exercise 11.3 Build programs based on branch algorithms using the switch statement: t To classify the type of a ship through its class identifier: ‘B’ or ‘b’- Battle ship ‘C’ or ‘c’- Cruiser ‘D’ or ‘d’- Destroyer ‘F’ or ‘f’- Frigate

42 42 Exercise 11.4 Build programs based on branch algorithms using the switch statement: t To associate the expected brightness of a standard light bulb depending on its power (wattage); WattsBrightness (in lumens) 15125 25215 40500 60880 751000 1001675

43 43 Exercise 11.5 Build programs to test logical operators negation conjunction disjunction

44 44 Exercise 11.6 t Build programs to test the bit wise And (&) operator t Build programs to test the bit wise Or (|) operator

45 45 Homework 3 t Paper record to be presented before the end of next class t Tasks: –See.doc file.

46 46 Thank You For Your Attention!


Download ppt "COS120 Software Development Using C++ AUBG Fall semester 2010 Ref book: Problem Solving, Abstraction and Design Using C++ Authors: Frank Friedman, Elliot."

Similar presentations


Ads by Google