SlideShare a Scribd company logo
Lecture 3: Control
Structures - Selection
Author : Aamir Saleem Ansari
Web : www.techora.net
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
 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 - Flowchart
TRUE
FALSE
Speed > 65
connector
flow line
decision symbol
action symbol
Print “You’re
speeding”
Operations Associativity
::
() [] left to right
Function_name() right to left
. -> left to right
‘ ! ` ++ -- + - *
&(type) sizeof
right to left
* / % .* ./ left to right
+ - left to right
<< >> left to right
< <= > >= left to right
== != left to right
& left to right
^ left to right
| left to right
&& left to right
^^ left to right
|| left to right
?: right to left
= += -= *= /= %= |=
<<= >>=
right to left
, left to right
Relational Operators
Important for constructing
the decision expression
5 < 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 5
Practice
Double-Selection IF - Flowchart
TRUE
Speed > 65
FALSE
Print “Over
speed limit”
Print “Within
speed limit”
Adapted from Deitel & Deitel, C How to Program, 6th
ed., p. 111
SWITCH - Flowchart
IF 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 MPHn”);
}
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 after statement2,
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 limitn”);
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
Grade Determination for Overall Percentage (OP)
OP >= 90 ‘A’
80 <= OP < 90 ‘B’
70 <= OP < 80 ‘C’
60 <= OP < 70 ‘D’
OP < 60 ‘F’
Nesting selection structures
 Selection structures can
be stacked and nested
to handle more
sophisticated
decision/action
functionality
 Ex. Figuring grades
 Pseudocode 
Notes:
 “an else is always
associated 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.
64
Nesting If/else – C Code – Two Ways
Or
Adapted from Deitel & Deitel, C How to Program, 3rd
ed., p.
64
SWITCH
 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
constant integral
expressions
 No variables
 The structure is very
organized and readable
Adapted from Deitel & Deitel, C How to Program, 6th
ed., p. 111
SWITCH - Flowchart
Practice - 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 statement
starter_on();
References
 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 4n");
}
else if(i == 10)
{
printf("i = 10n");
}
else
{
printf("i = %dn", i);
}
return 0;
}
Adapted from H. Cheng chap05.ppt, slide 12
Operators Operations Associativity
::
() [] left to right
Function_name() right to left
. -> left to right
‘ ! ` ++ -- + - *
&(type) sizeof
right to left
* / % .* ./ left to right
+ - left to right
<< >> left to right
< <= > >= left to right
== != left to right
& left to right
^ left to right
| left to right
&& left to right
^^ left to right
|| left to right
?: right to left
= += -= *= /= %= |=
<<= >>=
right to left
, left to right
Adapted from H. Cheng chap04.ppt, slide 5
For More Info Visit :
www.techora.net
Ad

More Related Content

What's hot (20)

Control Flow Statements
Control Flow Statements Control Flow Statements
Control Flow Statements
Tarun Sharma
 
Loops in c
Loops in cLoops in c
Loops in c
baabtra.com - No. 1 supplier of quality freshers
 
C++ decision making
C++ decision makingC++ decision making
C++ decision making
Zohaib Ahmed
 
Inline function
Inline functionInline function
Inline function
Tech_MX
 
Java Thread Synchronization
Java Thread SynchronizationJava Thread Synchronization
Java Thread Synchronization
Benj Del Mundo
 
Loops in C
Loops in CLoops in C
Loops in C
Kamal Acharya
 
Decision making and loop in C#
Decision making and loop in C#Decision making and loop in C#
Decision making and loop in C#
Prasanna Kumar SM
 
Loops in C Programming Language
Loops in C Programming LanguageLoops in C Programming Language
Loops in C Programming Language
Mahantesh Devoor
 
If else statement in c++
If else statement in c++If else statement in c++
If else statement in c++
Bishal Sharma
 
Loops c++
Loops c++Loops c++
Loops c++
Shivani Singh
 
Repetition Structure
Repetition StructureRepetition Structure
Repetition Structure
PRN USM
 
Phases of compiler
Phases of compilerPhases of compiler
Phases of compiler
Karan Deopura
 
Presentation of control statement
Presentation of control statement  Presentation of control statement
Presentation of control statement
Bharat Rathore
 
Threads in JAVA
Threads in JAVAThreads in JAVA
Threads in JAVA
Haldia Institute of Technology
 
Principal of objected oriented programming
Principal of objected oriented programming Principal of objected oriented programming
Principal of objected oriented programming
Rokonuzzaman Rony
 
OOP java
OOP javaOOP java
OOP java
xball977
 
Control statements
Control statementsControl statements
Control statements
Kanwalpreet Kaur
 
Control structures in c++
Control structures in c++Control structures in c++
Control structures in c++
Nitin Jawla
 
Switch Case in C Programming
Switch Case in C ProgrammingSwitch Case in C Programming
Switch Case in C Programming
Sonya Akter Rupa
 
Control Structures
Control StructuresControl Structures
Control Structures
Ghaffar Khan
 

Similar to The Three Basic Selection Structures in C++ Programming Concepts (20)

ICP - Lecture 7 and 8
ICP - Lecture 7 and 8ICP - Lecture 7 and 8
ICP - Lecture 7 and 8
Hassaan Rahman
 
Control statements in c
Control statements in cControl statements in c
Control statements in c
Sathish Narayanan
 
Lect 3-4 Zaheer Abbas
Lect 3-4 Zaheer AbbasLect 3-4 Zaheer Abbas
Lect 3-4 Zaheer Abbas
Information Technology Center
 
Control statments in c
Control statments in cControl statments in c
Control statments in c
CGC Technical campus,Mohali
 
C Programming Unit-2
C Programming Unit-2C Programming Unit-2
C Programming Unit-2
Vikram Nandini
 
Dti2143 chap 4 control structures aka_selection
Dti2143 chap 4 control structures aka_selectionDti2143 chap 4 control structures aka_selection
Dti2143 chap 4 control structures aka_selection
alish sha
 
Dti2143 chap 4 control structures aka_selection
Dti2143 chap 4 control structures aka_selectionDti2143 chap 4 control structures aka_selection
Dti2143 chap 4 control structures aka_selection
alish sha
 
03a control structures
03a   control structures03a   control structures
03a control structures
Manzoor ALam
 
Fundamental of Information Technology - UNIT 8
Fundamental of Information Technology - UNIT 8Fundamental of Information Technology - UNIT 8
Fundamental of Information Technology - UNIT 8
Shipra Swati
 
What is c
What is cWhat is c
What is c
Nitesh Saitwal
 
6 Control Structures-1.pptxAAAAAAAAAAAAAAAAAAAAA
6 Control Structures-1.pptxAAAAAAAAAAAAAAAAAAAAA6 Control Structures-1.pptxAAAAAAAAAAAAAAAAAAAAA
6 Control Structures-1.pptxAAAAAAAAAAAAAAAAAAAAA
EG20910848921ISAACDU
 
Structured Program Development in C Language
Structured Program Development in C LanguageStructured Program Development in C Language
Structured Program Development in C Language
tarek574625
 
C_chap03 study of c++ lecture structured program.ppt
C_chap03 study of c++ lecture structured program.pptC_chap03 study of c++ lecture structured program.ppt
C_chap03 study of c++ lecture structured program.ppt
MonaSayed27
 
Chapter 1 nested control structures
Chapter 1 nested control structuresChapter 1 nested control structures
Chapter 1 nested control structures
Khirulnizam Abd Rahman
 
Visula C# Programming Lecture 3
Visula C# Programming Lecture 3Visula C# Programming Lecture 3
Visula C# Programming Lecture 3
Abou Bakr Ashraf
 
3. control statements
3. control statements3. control statements
3. control statements
amar kakde
 
control statements of clangauge (ii unit)
control statements of clangauge (ii unit)control statements of clangauge (ii unit)
control statements of clangauge (ii unit)
Prashant Sharma
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
Mohammed Saleh
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
Mohammed Saleh
 
Control Structures.pptx
Control Structures.pptxControl Structures.pptx
Control Structures.pptx
ssuserfb3c3e
 
Dti2143 chap 4 control structures aka_selection
Dti2143 chap 4 control structures aka_selectionDti2143 chap 4 control structures aka_selection
Dti2143 chap 4 control structures aka_selection
alish sha
 
Dti2143 chap 4 control structures aka_selection
Dti2143 chap 4 control structures aka_selectionDti2143 chap 4 control structures aka_selection
Dti2143 chap 4 control structures aka_selection
alish sha
 
03a control structures
03a   control structures03a   control structures
03a control structures
Manzoor ALam
 
Fundamental of Information Technology - UNIT 8
Fundamental of Information Technology - UNIT 8Fundamental of Information Technology - UNIT 8
Fundamental of Information Technology - UNIT 8
Shipra Swati
 
6 Control Structures-1.pptxAAAAAAAAAAAAAAAAAAAAA
6 Control Structures-1.pptxAAAAAAAAAAAAAAAAAAAAA6 Control Structures-1.pptxAAAAAAAAAAAAAAAAAAAAA
6 Control Structures-1.pptxAAAAAAAAAAAAAAAAAAAAA
EG20910848921ISAACDU
 
Structured Program Development in C Language
Structured Program Development in C LanguageStructured Program Development in C Language
Structured Program Development in C Language
tarek574625
 
C_chap03 study of c++ lecture structured program.ppt
C_chap03 study of c++ lecture structured program.pptC_chap03 study of c++ lecture structured program.ppt
C_chap03 study of c++ lecture structured program.ppt
MonaSayed27
 
Visula C# Programming Lecture 3
Visula C# Programming Lecture 3Visula C# Programming Lecture 3
Visula C# Programming Lecture 3
Abou Bakr Ashraf
 
3. control statements
3. control statements3. control statements
3. control statements
amar kakde
 
control statements of clangauge (ii unit)
control statements of clangauge (ii unit)control statements of clangauge (ii unit)
control statements of clangauge (ii unit)
Prashant Sharma
 
Control Structures.pptx
Control Structures.pptxControl Structures.pptx
Control Structures.pptx
ssuserfb3c3e
 
Ad

Recently uploaded (20)

Serato DJ Pro Crack Latest Version 2025??
Serato DJ Pro Crack Latest Version 2025??Serato DJ Pro Crack Latest Version 2025??
Serato DJ Pro Crack Latest Version 2025??
Web Designer
 
Medical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk ScoringMedical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk Scoring
ICS
 
Exchange Migration Tool- Shoviv Software
Exchange Migration Tool- Shoviv SoftwareExchange Migration Tool- Shoviv Software
Exchange Migration Tool- Shoviv Software
Shoviv Software
 
The Elixir Developer - All Things Open
The Elixir Developer - All Things OpenThe Elixir Developer - All Things Open
The Elixir Developer - All Things Open
Carlo Gilmar Padilla Santana
 
Solar-wind hybrid engery a system sustainable power
Solar-wind  hybrid engery a system sustainable powerSolar-wind  hybrid engery a system sustainable power
Solar-wind hybrid engery a system sustainable power
bhoomigowda12345
 
Best HR and Payroll Software in Bangladesh - accordHRM
Best HR and Payroll Software in Bangladesh - accordHRMBest HR and Payroll Software in Bangladesh - accordHRM
Best HR and Payroll Software in Bangladesh - accordHRM
accordHRM
 
Wilcom Embroidery Studio Crack Free Latest 2025
Wilcom Embroidery Studio Crack Free Latest 2025Wilcom Embroidery Studio Crack Free Latest 2025
Wilcom Embroidery Studio Crack Free Latest 2025
Web Designer
 
Protect HPE VM Essentials using Veeam Agents-a50012338enw.pdf
Protect HPE VM Essentials using Veeam Agents-a50012338enw.pdfProtect HPE VM Essentials using Veeam Agents-a50012338enw.pdf
Protect HPE VM Essentials using Veeam Agents-a50012338enw.pdf
株式会社クライム
 
Robotic Process Automation (RPA) Software Development Services.pptx
Robotic Process Automation (RPA) Software Development Services.pptxRobotic Process Automation (RPA) Software Development Services.pptx
Robotic Process Automation (RPA) Software Development Services.pptx
julia smits
 
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
Ranking Google
 
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.pptPassive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
IES VE
 
Artificial hand using embedded system.pptx
Artificial hand using embedded system.pptxArtificial hand using embedded system.pptx
Artificial hand using embedded system.pptx
bhoomigowda12345
 
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World ExamplesMastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
jamescantor38
 
Adobe InDesign Crack FREE Download 2025 link
Adobe InDesign Crack FREE Download 2025 linkAdobe InDesign Crack FREE Download 2025 link
Adobe InDesign Crack FREE Download 2025 link
mahmadzubair09
 
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptxThe-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
james brownuae
 
Sequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptxSequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptx
aashrithakondapalli8
 
Buy vs. Build: Unlocking the right path for your training tech
Buy vs. Build: Unlocking the right path for your training techBuy vs. Build: Unlocking the right path for your training tech
Buy vs. Build: Unlocking the right path for your training tech
Rustici Software
 
Download MathType Crack Version 2025???
Download MathType Crack  Version 2025???Download MathType Crack  Version 2025???
Download MathType Crack Version 2025???
Google
 
How to avoid IT Asset Management mistakes during implementation_PDF.pdf
How to avoid IT Asset Management mistakes during implementation_PDF.pdfHow to avoid IT Asset Management mistakes during implementation_PDF.pdf
How to avoid IT Asset Management mistakes during implementation_PDF.pdf
victordsane
 
Wilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For WindowsWilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For Windows
Google
 
Serato DJ Pro Crack Latest Version 2025??
Serato DJ Pro Crack Latest Version 2025??Serato DJ Pro Crack Latest Version 2025??
Serato DJ Pro Crack Latest Version 2025??
Web Designer
 
Medical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk ScoringMedical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk Scoring
ICS
 
Exchange Migration Tool- Shoviv Software
Exchange Migration Tool- Shoviv SoftwareExchange Migration Tool- Shoviv Software
Exchange Migration Tool- Shoviv Software
Shoviv Software
 
Solar-wind hybrid engery a system sustainable power
Solar-wind  hybrid engery a system sustainable powerSolar-wind  hybrid engery a system sustainable power
Solar-wind hybrid engery a system sustainable power
bhoomigowda12345
 
Best HR and Payroll Software in Bangladesh - accordHRM
Best HR and Payroll Software in Bangladesh - accordHRMBest HR and Payroll Software in Bangladesh - accordHRM
Best HR and Payroll Software in Bangladesh - accordHRM
accordHRM
 
Wilcom Embroidery Studio Crack Free Latest 2025
Wilcom Embroidery Studio Crack Free Latest 2025Wilcom Embroidery Studio Crack Free Latest 2025
Wilcom Embroidery Studio Crack Free Latest 2025
Web Designer
 
Protect HPE VM Essentials using Veeam Agents-a50012338enw.pdf
Protect HPE VM Essentials using Veeam Agents-a50012338enw.pdfProtect HPE VM Essentials using Veeam Agents-a50012338enw.pdf
Protect HPE VM Essentials using Veeam Agents-a50012338enw.pdf
株式会社クライム
 
Robotic Process Automation (RPA) Software Development Services.pptx
Robotic Process Automation (RPA) Software Development Services.pptxRobotic Process Automation (RPA) Software Development Services.pptx
Robotic Process Automation (RPA) Software Development Services.pptx
julia smits
 
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
Ranking Google
 
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.pptPassive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
IES VE
 
Artificial hand using embedded system.pptx
Artificial hand using embedded system.pptxArtificial hand using embedded system.pptx
Artificial hand using embedded system.pptx
bhoomigowda12345
 
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World ExamplesMastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
jamescantor38
 
Adobe InDesign Crack FREE Download 2025 link
Adobe InDesign Crack FREE Download 2025 linkAdobe InDesign Crack FREE Download 2025 link
Adobe InDesign Crack FREE Download 2025 link
mahmadzubair09
 
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptxThe-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
james brownuae
 
Sequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptxSequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptx
aashrithakondapalli8
 
Buy vs. Build: Unlocking the right path for your training tech
Buy vs. Build: Unlocking the right path for your training techBuy vs. Build: Unlocking the right path for your training tech
Buy vs. Build: Unlocking the right path for your training tech
Rustici Software
 
Download MathType Crack Version 2025???
Download MathType Crack  Version 2025???Download MathType Crack  Version 2025???
Download MathType Crack Version 2025???
Google
 
How to avoid IT Asset Management mistakes during implementation_PDF.pdf
How to avoid IT Asset Management mistakes during implementation_PDF.pdfHow to avoid IT Asset Management mistakes during implementation_PDF.pdf
How to avoid IT Asset Management mistakes during implementation_PDF.pdf
victordsane
 
Wilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For WindowsWilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For Windows
Google
 
Ad

The Three Basic Selection Structures in C++ Programming Concepts

  • 1. Lecture 3: Control Structures - Selection Author : Aamir Saleem Ansari Web : www.techora.net
  • 2. 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  Sequence  Selection  Repetition  Selection structures  If  If/else  Switch  Relational operators  Selection structure example
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. Single Selection IF - Flowchart TRUE FALSE Speed > 65 connector flow line decision symbol action symbol Print “You’re speeding”
  • 7. Operations Associativity :: () [] left to right Function_name() right to left . -> left to right ‘ ! ` ++ -- + - * &(type) sizeof right to left * / % .* ./ left to right + - left to right << >> left to right < <= > >= left to right == != left to right & left to right ^ left to right | left to right && left to right ^^ left to right || left to right ?: right to left = += -= *= /= %= |= <<= >>= right to left , left to right Relational Operators Important for constructing the decision expression 5 < 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 5 Practice
  • 8. Double-Selection IF - Flowchart TRUE Speed > 65 FALSE Print “Over speed limit” Print “Within speed limit”
  • 9. Adapted from Deitel & Deitel, C How to Program, 6th ed., p. 111 SWITCH - Flowchart
  • 10. IF 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;
  • 11. 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 MPHn”); }
  • 12. 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 after statement2, 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
  • 13. 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 limitn”);
  • 14. 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
  • 15. 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
  • 16. Grade Determination for Overall Percentage (OP) OP >= 90 ‘A’ 80 <= OP < 90 ‘B’ 70 <= OP < 80 ‘C’ 60 <= OP < 70 ‘D’ OP < 60 ‘F’ Nesting selection structures  Selection structures can be stacked and nested to handle more sophisticated decision/action functionality  Ex. Figuring grades  Pseudocode  Notes:  “an else is always associated 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. 64
  • 17. Nesting If/else – C Code – Two Ways Or Adapted from Deitel & Deitel, C How to Program, 3rd ed., p. 64
  • 18. SWITCH  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 constant integral expressions  No variables  The structure is very organized and readable
  • 19. Adapted from Deitel & Deitel, C How to Program, 6th ed., p. 111 SWITCH - Flowchart
  • 20. Practice - 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
  • 21. 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 statement starter_on();
  • 22. References  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.
  • 23. 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 4n"); } else if(i == 10) { printf("i = 10n"); } else { printf("i = %dn", i); } return 0; } Adapted from H. Cheng chap05.ppt, slide 12
  • 24. Operators Operations Associativity :: () [] left to right Function_name() right to left . -> left to right ‘ ! ` ++ -- + - * &(type) sizeof right to left * / % .* ./ left to right + - left to right << >> left to right < <= > >= left to right == != left to right & left to right ^ left to right | left to right && left to right ^^ left to right || left to right ?: right to left = += -= *= /= %= |= <<= >>= right to left , left to right Adapted from H. Cheng chap04.ppt, slide 5
  • 25. For More Info Visit : www.techora.net

Editor's Notes

  • #5: So far your programs have simply been a grouping of statements, which are executed one after the next from the beginning of the program to the end. This, ‘one after the next’ flow of a program is called a sequence structure. Such simple, sequential programs have their place, but there is much more that can be done by applying several other control structures to control the flow of which statements are executed. In this lecture, we are going to look into the first of the other two control structures: selection
  • #7: If the speed is greater than 65, take the action to print a message. If the speed is not greater than 65, just keep going on in the program. What does Speed &amp;gt; 65 evaluate to if Speed == 72 ?
  • #8: Discuss these
  • #9: Note that if Speed &amp;gt; 65 is true, then the message “Over speed limit is printed”, and then the program continues. If Speed &amp;gt; 65 is not true, then the message “Within limit” is printed.
  • #11: Note: an expression is an entity that evaluates to a single number. An expression is TRUE if it is non-zero. Example if(7), is the expression true or not? The block of statements is called a ‘compound’ statement. Note how the curly brackets are aligned, and how the statements in the block are indented, so that it makes it obvious where the block begins, where it ends, and which statements make up the block. Note comments. Two styles will work for most C compilers: /* */ the clean C version and // the C++ version
  • #13: Note that in the case of the single selection IF, there is no way without a goto, to skip over statements in the implied else. So in single-selection IF, if the decision expression evaluates to non-zero, the statement after the IF is executed, then the program resumes after the statement. If the decision expression evaluates to zero, then the statement immediately after the IF is skipped, and the program resumes with the next statement. With IF-ELSE, the ELSE acts like a shield to prevent the alternative statement(s) from being executed if the decision expression is non-zero. You are probably safer to always use IF-ELSE. For single-selection, just put a semicolon after the ELSE: If(expression) take this action ELSE don’t do anything (;)
  • #15: Note that evaluation of the condition continues until the truth or falsity of the condition is determined. Thus, if switch1 is not equal to zero, the compound condition is false, and the second relational test will not be done! Back to the driving example: IF speed is less than or equal to 65 AND greater than 60 print “You’re doing fine” ELSE IF speed is greater than 65 print, “You’re speeding” ELSE print, “You’re driving too slow” END IF END IF
  • #16: Note that evaluation of the condition continues until the truth or falsity of the condition is determined. Thus, if switch1 is not equal to zero, the compound condition is true, and the second relational test will not be done! See p. 118 in D&amp;D
  翻译: