Lecture 3: Control Structures - Selection

Please download to get full document.

View again

of 25
7 views
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.

Download

Document Related
Document Description
Lecture 3: Control Structures - Selection. BJ Furman 10SEP2012. The Plan for Today. Review from last two weeks Flowcharts Pseudocode Data types Variables and Constants Structure of a C program Formatted output: printf( ) Operators and their precedence Review control structures
Document Share
Document Transcript
Lecture 3: Control Structures - SelectionBJ Furman10SEP2012The Plan for Today
  • Review from last two weeks
  • Flowcharts
  • Pseudocode
  • Data types
  • Variables and Constants
  • Structure of a C program
  • Formatted output: printf( )
  • Operators and their precedence
  • Review control structures
  • Sequence
  • Selection
  • Repetition
  • Selection structures
  • If
  • If/else
  • Switch
  • Relational operators
  • Selection structure example
  • Learning Objectives
  • Apply concepts for developing algorithms, using variables, and structuring a C program
  • Explain what is meant by a control structure
  • Explain the three basic types of control structures
  • Determine the result of relational comparisons
  • Apply the if and if/else control structures
  • Control Structures - Review
  • All programs can be written in terms of three control structures (like building blocks)
  • Sequence
  • ‘Built-in’ to C
  • Unless otherwise directed, one statement after the next is executed
  • Selection(three types)
  • Depending on a condition, select between one statement or another
  • If var1 is greater than 10, do this…, else do that…
  • Repetition(three types)
  • Depending on a condition, execute one or more statements repeatedly
  • Selection Structure Overview
  • Three kinds of selections structures
  • if (also called, ‘single-selection’)
  • if condition is true
  • Perform action
  • if condition is false, action is skipped, program continues
  • if/else (also called, ‘double-selection’)
  • if condition is true
  • Perform action
  • else (if condition is false)
  • Perform a different action (this will be skipped if condition is true)
  • switch (also called ‘multiple-selection’)
  • Allows selection among many actions depending on the integral value of a variable or expression
  • Single Selection IF - Flowchartconnectorflow lineaction symboldecision symbolTRUEPrint “You’re speeding”Speed > 65FALSERelational OperatorsImportant for constructing the decision expressionPractice5 < 7 result is ____5 > 7 result is _____7 <= 7 result is ____8 >= 7 result is ____5 == 5 result is ____5 == 7 result is ____var1 = 7 result is____5.0 == 5 result is ___6 != 5 result is ____Adapted from H. Cheng chap04.ppt, slide 5Double-Selection IF - FlowchartPrint “Within speed limit”Print “Over speed limit”Speed > 65TRUEFALSESWITCH - FlowchartAdapted from Deitel & Deitel, C How to Program, 6th ed., p. 111IF statement (single-selection)
  • Syntax
  • if(expression) /* if expression is TRUE (i.e., NOT EQUAL to zero) */ statement1; /* then execute this statement */ statement2; /* execute this statement next*/
  • Notes
  • Indent the statements for clarity
  • Can have multiple statements
  • Enclose a ‘block’ of statements using { } (curly braces)
  • if( x <= 2 ) { statement1; statement2; } statement3;IF statement example
  • Pseudocode (notice indentation!)
  • If speed is greater than 65 mph print “You’re speeding!”
  • C code
  • if(speed > 65) printf(“You’re speeding!\n”);
  • C code with multiple statement block
  • if(speed > 65)/* statements below executed only if speed > 65 is true */ { printf(“You’re speeding!\n”); printf(“Slow down!\n”); printf(“Keep speed below 65 MPH\n”); }IF-ELSE statement - Double Selection
  • Syntax
  • if(expression) /* if expression is TRUE (i.e., NOT EQUAL to zero) */statement1;/* execute this statement */else/* else execute the following statement */statement2;Notes:
  • If expression is non-zero, statement1 is executed, then the program continues with the statement afterstatement2, i.e., statement2 is skipped
  • If expression is equal to zero, statement1 is skipped and statement2 is executed, then the program continues with the statement after statement2
  • IF-ELSE statement example
  • Pseudocode (notice indentation!)
  • If speed is greater than 65 mph print “Over speed limit!”else print “Within speed limit”
  • C code
  • if(speed > 65) printf(“Over speed limit!\n”);else printf(“Within limit\n”);Compound Condition - &&
  • Logical operators for more complex decisions
  • Logical AND operator && (double ampersand)
  • if(switch1 == 0 && switch2 == 1)
  • turn on the motor
  • The condition evaluates to TRUE if and only if BOTH expressions on either side of && evaluate to TRUE
  • Note operator precedence
  • Otherwise condition evaluates to FALSE
  • Beware of ‘short circuit evaluation’
  • Make the condition most likely to be FALSE the left-most condition
  • Compound Condition - | |
  • Logical operators for more complex decisions, cont.
  • Logical OR operator | | (double vertical bar)
  • if(switch1 == 0 || switch2 == 1)
  • turn on the motor
  • The condition evaluates to TRUE if one or the other or both expressions on either side of && evaluate to TRUE
  • Note operator precedence
  • Otherwise condition evaluates to FALSE
  • Beware of ‘short circuit evaluation’
  • Make the condition most likely to be TRUE the left-most condition
  • Nesting selection structures
  • Grade Determination for Overall Percentage (OP)
  • OP >= 90 ‘A’
  • 80 <= OP < 90 ‘B’
  • 70 <= OP < 80 ‘C’
  • 60 <= OP < 70 ‘D’
  • OP < 60 ‘F’
  • Selection structures can be stacked and nested to handle more sophisticated decision/action functionality
  • Ex. Figuring grades
  • Pseudocode
  • Notes:
  • “anelseis alwaysassociated with the nearest previous if”(Darnell & Margolis, 1996)
  • Use braces ({ })to clarify the association of the else for other situations where the decision structure is more complicated
  • Adapted from Deitel & Deitel, C How to Program, 3rd ed., p. 64Nesting If/else – C Code – Two WaysOrAdapted from Deitel & Deitel, C How to Program, 3rd ed., p. 64SWITCH
  • Good when faced with testing multiple alternatives that depend on a single variable
  • The test is done once
  • Must be an integral expression
  • int or char
  • NOT float, double
  • case items must be constantintegral expressions
  • No variables
  • The structure is very organized and readable
  • SWITCH - FlowchartAdapted from Deitel & Deitel, C How to Program, 6th ed., p. 111Practice - 1
  • Pair up with someone next to you that you do not know
  • Develop an algorithm for:
  • Finding and printing out the largest of two numbers
  • (3 min) One person work on the pseudocode, the other on a flowchart
  • (1 min) Compare pseudocode and flowchart
  • (3 min) Write out the algorithm in C
  • Practice - 2
  • Develop an algorithm for the ignition control in a car:
  • Requirements:
  • The starter will only start when:
  • Key must be in the ignition slot
  • Transmission selector must be in ‘Park’
  • Key must be turned to ‘Start’ position
  • The starter is energized with the statementstarter_on();
  • ReviewReferences
  • Darnell, P. A. & Margolis, P. E. (1996) C, a software engineering approach, 3rd ed., Springer, New York.
  • Cheng, H. H. (2010). C for Engineers and Scientists: An Interpretive Approach, McGraw-Hill, New York.
  • Deitel, H. M. & Deitel, P. J. (2001). C How to Program, 3rd ed., Prentice-Hall, New Jersey.
  • Nesting selection structures
  • Selection structures can be stacked and nested to handle more sophisticated decision/action functionality
  • /* File: ifc.c */#include <stdio.h>int main (){ int i; i = 10; if(i==2 || i == 4) { printf("i = 2 or 4\n"); } else if(i == 10) { printf("i = 10\n"); } else { printf("i = %d\n", i); } return 0;}Adapted from H. Cheng chap05.ppt, slide 12OperatorsAdapted from H. Cheng chap04.ppt, slide 5
    Search Related
    We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks