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

Slides:



Advertisements
Similar presentations
Control Statements. Define the way of flow in which the program statements should take place. Control Statements Implement decisions and repetitions.
Advertisements

Chapter 4: Making Decisions.
Flow Control if, while, do-while Juan Marquez (03_flow_control.ppt)
Chapter 4 Control Structures I. Objectives ► Examine relational and logical operators ► Explore how to form and evaluate logical (Boolean) expressions.
Slide 1 Summary Two basic concepts: variables and assignments Some C++ practical issues: division rule, operator precedence  Sequential structure of a.
Introduction to Computers and Programming Lecture 6 Professor: Evan Korth New York University.
1 Objectives You should be able to describe: Relational Expressions The if-else Statement Nested if Statements The switch Statement Common Programming.
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 4: Control Structures I (Selection)
Switch structure Switch structure selects one from several alternatives depending on the value of the controlling expression. The controlling expression.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 4- 1.
Control Structures Control structures control the flow of program execution. 3 types of control structures: sequence, selection.
CONTROL STATEMENTS Lakhbir Singh(Lect.IT) S.R.S.G.P.C.G. Ludhiana.
Section 3 - Selection and Repetition Constructs. Control Structures 1. Sequence 2. Selection 3. Repetition.
CHAPTER#3 STRUCTURED PROGRAM DEVELOPMENT IN C++ 1 st semester King Saud University College of Applied studies and Community Service Csc 1101.
EGR 2261 Unit 4 Control Structures I: Selection  Read Malik, Chapter 4.  Homework #4 and Lab #4 due next week.  Quiz next week.
Unit 3 Lesson 8 Selection Structures Mr. Dave Clausen La Cañada High School.
Programming Fundamentals. Today’s lecture Decisions If else …… Switch Conditional Operators Logical Operators.
C++ Programming: From Problem Analysis to Program Design, Fourth Edition Chapter 4: Control Structures I (Selection)
Chapter 4: Control Structures I (Selection). Objectives In this chapter, you will: – Learn about control structures – Examine relational operators – Discover.
More on Input Output Input Stream : A sequence of characters from an input device (like the keyboard) to the computer (the program running). Output Stream.
Liang, Introduction to Programming with C++, Second Edition, (c) 2010 Pearson Education, Inc. All rights reserved Chapter 3 Selections.
UniMAP Sem II-09/10EKT120: Computer Programming1 Week 3 – Selection Structures.
Chapter 4: Control Structures I (Selection). Objectives In this chapter, you will: – Learn about control structures – Examine relational and logical operators.
CPS120: Introduction to Computer Science Decision Making in Programs.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 4: Selection Structures: if and switch Statements Problem Solving,
2 Objectives You should be able to describe: Relational Expressions Relational Expressions The if-else Statement The if-else Statement Nested if Statements.
1 Lecture 5: Selection Structures. Outline 2  Control Structures  Conditions  Relational Operators  Logical Operators  if statements  Two-Alternatives.
Copyright © 2012 Pearson Education, Inc. Chapter 4: Making Decisions.
Decision II. CSCE 1062 Outline  Boolean expressions  switch statement (section 4.8)
Pseudocode When designing an ALGORITHM to solve a problem, Pseudocode, can be used. –Artificial, informal language used to develop algorithms –Similar.
CPS120: Introduction to Computer Science Decision Making in Programs.
PROBLEM SOLVING & ALGORITHMS CHAPTER 5: CONTROL STRUCTURES - SELECTION.
A First Book of ANSI C Fourth Edition Chapter 4 Selection.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 4: Making Decisions.
Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement.
CHAPTER#3 STRUCTURED PROGRAM DEVELOPMENT IN C++ 1 st semester King Saud University College of Applied studies and Community Service Csc 1101.
Chapter 7 Selection Dept of Computer Engineering Khon Kaen University.
Programming 1 DCT 1033 Control Structures I (Selection) if selection statement If..else double selection statement Switch multiple selection statement.
COS120 Software Development Using C++ AUBG Fall semester 2010 Ref book: Problem Solving, Abstraction and Design Using C++ Authors: Frank Friedman, Elliot.
Copyright © 2015, 2012, 2009 Pearson Education, Inc., Publishing as Addison-Wesley All rights reserved. Chapter 4: Making Decisions.
1 Chapter 4, Part 1 If Control Construct A mechanism for deciding whether an action should be taken JPC and JWD © 2002 McGraw-Hill, Inc. Modified by S.
Selection Structures: if and switch Statements. 2 Selection Statements –In this chapter we study statements that allow alternatives to straight sequential.
Chapter 4 Control Structures I. Chapter Objectives Learn about control structures Examine relational and logical operators Explore how to form and evaluate.
Chapter 5: Control Structures I (Selection). Objectives In this chapter you will: Learn about control structures Examine relational and logical operators.
Sections © Copyright by Pearson Education, Inc. All Rights Reserved.
Programming Fundamentals1 Chapter 4 SELECTION STRUCTURES.
Chapter 4: Control Structures I (Selection). Objectives In this chapter, you will: – Learn about control structures – Examine relational and logical operators.
Week 4 Program Control Structure
CPS120: Introduction to Computer Science Decision Making in Programs.
A First Book of C++ Chapter 4 Selection. Objectives In this chapter, you will learn about: –Relational Expressions –The if-else Statement –Nested if Statements.
Chapter 7 Conditional Statements. 7.1 Conditional Expressions Conditions - compare the values of variables, constants and literals using one or more relational.
Copyright © 2015, 2012, 2009 Pearson Education, Inc., Publishing as Addison-Wesley All rights reserved. Chapter 4: Making Decisions 1.
CPS120: Introduction to Computer Science Decision Making in Programs.
Programming Language C++ Lecture 3. Control Structures  C++ provides control structures that serve to specify what has to be done to perform our program.
STRUCTURED PROGRAMMING Selection Statements. Content 2  Control structures  Types of selection statements  if single-selection statement  if..else.
CSE202: Lecture 5The Ohio State University1 Selection Structures.
Chapter 4 Selection Structures: if and switch Statements Lecture Notes Prepared By: Blaise W. Liffick, PhD Department of Computer Science Millersville.
C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 2: Control Structures (Selection & Repetition)
Chapter 7 Conditional Statements. 7.1 Conditional Expressions Condition – any expression that evaluates to true/false value Relational operators are BINARY.
LECTURE # 7 : STRUCTURED PROGRAMMING Selection Statements Tr.Hadeel.
Selection (if-then-else) Programming Has 3 Types of Control: Sequential (normal): Control of Execution Proceeds One after the Other Selection (if-then-else):
A First Book of C++ Chapter 4 Selection.
The Ohio State University
Control Structures Combine individual statements into a single logical unit with one entry point and one exit point. Used to regulate the flow of execution.
EGR 2261 Unit 4 Control Structures I: Selection
Chapter 7 Conditional Statements
Chapter 4: Control Structures I (Selection)
Week 3 – Program Control Structure
Structured Program Development in C++
Chapter 4: Selection Structures: if and switch Statements
Presentation transcript:

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

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

3 3. 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)

4 4. Flow of Execution

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

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

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

New Multiple selection

9

10 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.

11 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

12 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)

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

14 The switch statement What is ? t Expression whose operands are constant ( const ), i.e. named constant: YES – const int A = 15;const int B = 24; –5 + A * 8 –10 * (A + B) – 5 –100 % A + 20 / B

15 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

16 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

17 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

18 More on switch statement Extract from Friedman/Koffman 4e chapter 4

Selection Structures: if and switch Statements Chapter 4

20 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: |)

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

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

23 Precedence of Operators

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) }

25 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

26 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

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

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

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

30 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 }

31 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)

32 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.

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

34 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

35 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.

Decision Tree C# Programming: From Problem Analysis to Program Design 36 Figure 5-7 Bonus decision tree

Decision Tables Decision tables are a precise yet compact way to model complicated logic. Decision tables, like flowcharts and if-then- else and switch-case statements, associate conditions with actions to perform, but in many cases do so in a more elegant way.

Decision Tables The four quadrants Each decision corresponds to a variable, relation or predicate whose possible values are listed among the condition alternatives. Each action is a procedure or operation to perform, and the entries specify whether (or in what order) the action is to be performed for the set of condition alternatives the entry corresponds to. ConditionsCondition alternatives ActionsAction entries

Decision Tables

10/13/2015 Decision Tables Conditions Rules Actions/Activities ConditionsRules C1. Qual > 10 yearsYYYYNNNN C2. Gender – maleYYNNYYNN C3. Age > 50YNYNYNYN Actions A1. Extra payment

10/13/2015 Таблици на решение Стих: древноперсийски епос: Този, който не знае и не знае, че не знае, Той е глупак, бягай от него! Този, който не знае и знае, че не знае, Той може да се изучи, помогни му! Този, който знае и не знае, че знае, Той спи, събуди го! Този, който знае и знае, че знае, Той е пророк(мъдрец), учи се от него!

10/13/2015 Таблицы Решений В древнем персидском стихотворении сказано: Тот, кто не знает и не знает, что он не знает, - глупец, избегай его. Тот, кто не знает и знает, что он не знает, может научиться, научи его. Тот, кто знает и не знает, что он знает, спит, разбуди его, Тот, кто знает и знает, что он знает, - пророк, учись у него.

10/13/2015 Decision Tables Version in English presented as Jewish proverb: He who knows not and knows not he knows not, he is a fool, shun him. He who knows not and knows he knows not, he is ignorant, teach him. He who knows and knows not he knows, he is asleep, awaken him. He who knows and knows he knows, he is wise, follow him.

10/13/ Decision Tables ConditionsRules C1. Man knowsNNYY C2. Man knows, that C1NYNY Actions A1. SHUN HIM!X A2. TEACH HIMX A3. AWAKEN HIM!X A4. FOLLOW HIM!X

Exercises Write a C# program that corresponds to the extra payment decision table.

46 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;

47 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.

48 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

49 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)

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

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

52 Thank You For Your Attention!