Nested if’s Multiple Alternatives

Slides:



Advertisements
Similar presentations
Decision Structures - If / Else If / Else. Decisions Often we need to make decisions based on information that we receive. Often we need to make decisions.
Advertisements

 2008 Pearson Education, Inc. All rights reserved JavaScript: Control Statements I.
 Control structures  Algorithm & flowchart  If statements  While statements.
Slide 1 Summary Two basic concepts: variables and assignments Some C++ practical issues: division rule, operator precedence  Sequential structure of a.
Insight Through Computing 3. Introduction to Conditionals Boolean expressions The If-Else Construct And, or, not.
6. More on the For-Loop Using the Count Variable Developing For-Loop Solutions.
Insight Through Computing More on Conditionals Nested if’s Multiple Alternatives Top-Down Design.
Precedence Parentheses Arithemetic ^ * / + - (exception logical not ~ ) Relational > =
Program Design and Development
Precedence Parentheses Arithemetic ^ * / + - (exception logical not ~ ) Relational > =
Algorithms. Introduction Before writing a program: –Have a thorough understanding of the problem –Carefully plan an approach for solving it While writing.
Chapter 4 MATLAB Programming Logical Structures Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Programming with MATLAB. Relational Operators The arithmetic operators has precedence over relational operators.
CSci 125 Lecture 10 Martin van Bommel. Simple Statements Expression followed by semicolon Assignments total = n1 + n2; Function calls printf(”Hello.\n”);
Introduction to Python
Selection Programming EE 100. Outline introduction Relational and Logical Operators Flow Control Loops Update Processes.
CSE123 Lecture 3 Different types of Variables Logical operators, Conditional Statements and If Blocks.
1 Flow of control Sequential Executing instructions one by one, in exact order given Selection Choosing to execute a particular set of statements depending.
1. Exam Topics Difference between computers and calculators John creates a new device. It will compute the orbit of all the planets in the solar system.
Boolean expressions, part 2: Logical operators. Previously discussed Recall that there are 2 types of operators that return a boolean result (true or.
1 Computer Programming (ECGD2102 ) Using MATLAB Instructor: Eng. Eman Al.Swaity Lecture (4): Control Flow (Chapter 2)
ALGORITHMS AND FLOWCHARTS CSCI 105 – Computer Fluency.
Conditionals CS 103 February 16, Blast from the Past: C14 Dating Problem Statement: Calculate the age of a fossil from its C-14 radioactivity Problem.
Algorithm Design.
Advanced Program Design. Review  Step 1: Problem analysis and specification –Specification description of the problem’s inputs and output –Analysis generalize.
Chapter 4 Controlling Execution CSE Objectives Evaluate logical expressions –Boolean –Relational Change the flow of execution –Diagrams (e.g.,
ENG 1181 College of Engineering Engineering Education Innovation Center P. 1 MAT - Conditional Statements Topics Covered: 1. if based conditional statements.
CS 100Lecture 21 CS100J: Lecture 2 n Previous Lecture –Programming Concepts n problem, algorithm, program, computer, input, output, sequential execution,
Lecture 2 Conditional Statement. chcslonline.org Conditional Statements in PHP Conditional Statements are used for decision making. Different actions.
CSCI 161 Lecture 7 Martin van Bommel. Control Statements Statements that affect the sequence of execution of other statements Normal is sequential May.
Introduction to Python Dr. José M. Reyes Álamo. 2 Three Rules of Programming Rule 1: Think before you program Rule 2: A program is a human-readable set.
Structured Programming II: If Statements By the end of this class you should be able to: implement branching in a program describe and use an “if” statement.
The If Statement There are no switch statements in Python. You need to use just if statements. There are no switch statements in Python. You need to use.
If statement.  It is made up of three main components:  The keyword itself,  an expression that is tested for its truth value,  and a code suite to.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Tevfik Bultan Lecture 4: Introduction to C: Control Flow.
L6. More on the For-Loop Using the Count Variable Developing For-Loop Solutions.
Introduction to Flowcharts
Algorithms and Pseudocode CS Principles Lesson Developed for CS4 Alabama Project Jim Morse.
Programming Logic and Design Fourth Edition, Introductory Chapter 2 Understanding Structure.
Recursion Powerful Tool
Chapter 7 JavaScript: Control Statements, Part 1
Visual Basic 6 (VB6) Data Types, And Operators
Chapter 4 MATLAB Programming
Introduction to Programming
Selection Statements by Ahmet Sacan
Chapter 4: Control Structures
ALGORITHMS AND FLOWCHARTS
Conditional Statements
If statement.
Control Structures: Selection Statement
ALGORITHMS AND FLOWCHARTS
Types of Flow of Control
CSE 1020:Control Structure
Introduction to Programming
Java Programming Control Structures Part 1
If selection construct
Exercise 2x − 3 = 9 x = 6.
Programming We have seen various examples of programming languages
Summary Two basic concepts: variables and assignments Basic types:
Chapter 5: Control Structure
CS100J Lecture 3 Previous Lecture This Lecture Programming Concepts
Leap Years.
Boolean Expressions to Make Comparisons
Simple Control Structures
Lecture Notes – Week 2 Lecture-2
Simple Control Structures
Selection Statements Chapter 3.
Matlab Basics.
Introduction to Programming
L3. Introduction to Conditionals
Presentation transcript:

Nested if’s Multiple Alternatives L5. More on Conditionals Nested if’s Multiple Alternatives

Recall the if-else “Template” boolean expression Commands to execute if the expression if TRUE else Commands to execute if the expression if FALSE end

Question Time Variables a, b, and c have whole number values. True or false: This fragment prints “Yes” if there is a right triangle with side lengths a, b, and c and prints “No” otherwise. if a^2 + b^2 == c^2 disp(‘Yes’) else disp(‘No’) end A. True B. False

a = 5; b = 3; c = 4; if a^2 + b^2 == c^2 disp(‘Yes’) else disp(‘No’) end 3 4 5 Prints “no” even though we have:

if a^2 + b^2 == c^2 disp(‘Yes’) a^2 + b^2 == c^2 else disp(‘No’) end The boolean expression should be true if a2+b2=c2 or a2+c2=b2 or b2+c2=a2 is true. (a^2+b^2==c^2) || (a^2+c^2==b^2) || (b^2+c^2==a^2)

Developing “If” Solutions Illustrate the thinking associated with the design of if statements. The methodology of stepwise refinement. Two examples...

Problem 1 Write a script that solicits a positive integer Y and prints the number of days in year Y as determined by the Gregorian calendar.

Leap Year Rule A non-century year is a leap year if it is divisible by 4. A century year is a leap year only if it is divisible by 400.

Will Need the Built-In Function rem a b rem(a,b) 15 6 3 56 7 The value of rem(a,b) is the remainder when the value of a is divided by the value of b. (Assume a, b are whole numbers.)

“Pseudocode” Solution Input y. If y is not divisible by 100 Use the non-century year rule. Otherwise Use the century year rule.

Refine… y = input(‘Enter the Year:’); if rem(y,100) ~= 0 % y is not a multiple of 100 Use the non-century rule else % y is a multiple of 100 Use the century rule end

Refine the If-Box % y is not a multiple of 100 Use the non-century rule % y is not a multiple of 100 If y is divisible by 4 Print 366 Otherwise Print 365

% y is not a multiple of 100 if rem(y,4)==0 % y is divisible by 4 disp(‘366’) else % y is not divisible by 4 disp(‘365’) end

Refine… y = input(‘Enter the Year:’); if rem(y,100) ~= 0 % y is not a multiple of 100 Use the non-century rule else % y is a multiple of 100 Use the century rule end Done Next

Refine the Else-Box % y is divisible by 100 Use the Century rule If y is divisible by 400 Print 366 Otherwise Print 365

% y is divisible by 100 if rem(y,400)==0 % y is divisible by 400 disp(‘366’) else % y is not divisible by 400 disp(‘365’) end

Refine… y = input(‘Enter the Year:’); if rem(y,100) ~= 0 % y is not a multiple of 100 Use the non-century rule else % y is a multiple of 100 Use the century rule end Done Done

y = input(‘Enter the Year:’); if rem(y,100)~=0 if rem(y,4)==0 disp(‘366’) else disp(‘365’) end if rem(y,400)==0 The whole thing without comments

Key Problem-Solving Strategy Progress from pseudocode to Matlab through a sequence of refinements. Comments have an essential role during the transitions. They “stay on” all the way to the finished fragment.

Starting Points Vary In “Friendliness” A non-century year is a leap year if it is divisible by 4. A century year is a leap year only if it is divisible by 400. A year is a leap year if it is divisible by 4 with the exception of century years that are not divisible by 400.

Problem 2 Write a fragment that prints the minimum value of interval. L <= x <= R

One Possibility L<=xc<=R minVal at xc L R

Another Possibility R<xc minVal at R L R

Still Another Possibility xc<L minVal at L L R

We conclude that... If xc is in the interval The minimum is at xc Otherwise The minimum is at an endpoint

We Start With Pseudocode… If xc is in the interval The minimum is at xc Otherwise The minimum is at an endpoint Task: Convert to “legal’’ Matlab.

First refinement… if (L <= xc) && (xc <= R) % L <= xc <= R % The minimum is at xc. else % xc < L or R < xc % The minimum is at an endpoint. end (1) Boolean expression, (2) commented if-box, (3) commented else box

Refine the If-Box % L <= xc <= R % The minimum is at xc. minVal = xc^2 + b*xc + c

Refine the Else-Box % xc < L or R < xc % The minimum is at an endpoint. xc<L minVal at L R<xc minVal at R

% xc < L or R < xc % The minimum is at an endpoint. if xc is to the left of L The minimum is at L Otherwise The minimum is at R

% xc < L or R < xc % The minimum is at an endpoint. if xc < L % The minimum is at L minVal = L^2 + b*L + c else % The minimum is at R minVal = R^2 + b*R + c end

Overall (w/o Comments) if (L <= xc) && (xc <= R) minVal = xc^2 + b*xc + c. else if xc < L minVal = L^2 + b*L + c minVal = R^2 + b*R + c end

Notice there are 3 Alternatives… if (L <= xc) && (xc <= R) minVal = xc^2 + b*xc + c. else if xc < L minVal = L^2 + b*L + c minVal = R^2 + b*R + c end

The if-elseif-else Construct if (L <= xc) && (xc <= R) minVal = xc^2 + b*xc + c. elseif xc < L minVal = L^2 + b*L + c else minVal = R^2 + b*R + c end Execute exactly one block.

When there are Many Alternatives if elseif else end Boolean Expression Find the first true boolean expression & execute its block. Otherwise execute the else block. Boolean Expression Boolean Expression

A Common Situation… Boolean Expression if end When there is nothing to do if the boolean expression is false.

Question Time What can you say about the value of x and y after this fragment is executed? x = 3; Y = 4; if x < y x = y; y = x end if x > y x = 3; y = 4; A. x is 3, y is 4 B. x is 4, y is 3. C. x is 4, y is 4.