0% found this document useful (0 votes)
75 views27 pages

Chapter 2 - Algorithms and Design: Counter Loop User Query Loop Sentinel Value Loop

This flowchart implements a loop to print "Happy birthday!" 10 times. It contains a start symbol, rectangle for the print statement, diamond for the loop condition, and stop symbol. Arrows show the flow of control from the print statement back to the loop condition diamond until the count exceeds 10.

Uploaded by

Angela Beatrice
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
75 views27 pages

Chapter 2 - Algorithms and Design: Counter Loop User Query Loop Sentinel Value Loop

This flowchart implements a loop to print "Happy birthday!" 10 times. It contains a start symbol, rectangle for the print statement, diamond for the loop condition, and stop symbol. Arrows show the flow of control from the print statement back to the loop condition diamond until the count exceeds 10.

Uploaded by

Angela Beatrice
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 27

Chapter 2 - Algorithms and Design

print Statement
input Statement and Variables
Assignment Statement
if Statement
Flowcharts
Flow of Control
Looping with Flowcharts
Looping with Pseudocode
Tracing
Pseudocode Syntax Summary
Loop Terminatation
Counter loop
User query loop
Sentinel value loop
Nested Loops
1
print Statement
Here's a pseudocode algorithm that calculates the area of a
rectangle: print statement
print "Enter a length: "
input length
print "Enter a width: "
input width
set area to length * width
print "The area is " area

The print statement causes the specified item(s) to be


displayed.
For example, the first line in the above algorithm causes this to
be displayed:
Enter a length:
You can print different types of items. Later we'll talk about
printing numbers, but for now, let's focus on printing
characters….
If you want to print a sequence of characters, surround the
characters with quotes. A sequence of characters surrounded by
quotes is called a string. For example, in the first line, "Enter a
length: "2 is a string.
input Statement & Variables
print "Enter a length:"
input statement
input length
print "Enter a width:"
input width
set area to length * width
print "The area is" area
• The input statement:
• Causes the algorithm to wait for the user to enter a value.
• After the user enters a value, the value is stored in the specified
variable.
• A variable is a box/container that can hold a value.

• The first two print statements are called prompts because they
prompt the
3 user to enter a value.
Assignment Statement

print "Enter a length:"


input length
print "Enter a width:"
input width assignment statement
set area to length * width
print "The area is" area
The assignment statement:
Puts the right-hand-side expression's value into the left-hand-side
variable.
Suppose that 2 and 4 were entered as input for the above algorithm.
Here's a picture of what the assignment statement does:

area length width

8 2 * 4
4
if Statement
Use an if statement if you need to ask a question in order to determine
what to do next.
There are three forms for an if statement:
“if”
“if, else”
“if, else if”

Format for the “if” form of the if statement:


if <condition>
<statement(s)> Don't forget to indent.

Classroom notation: I use angled brackets "<>" to surround a


description of what should be placed at a particular position. Thus,
don't enter the word "condition," the word "statement(s)," or the <>'s.
5
Instead, enter an actual condition and an actual statement(s).
if Statement

• A condition is a question whose answer is either yes or no.


The answer to the condition’s question determines which
statement executes next.
• How the “if” form of the if statement works:
• If the condition is true, execute all subordinate statements; that is,
execute all indented statements immediately below the “if.”
• If the condition is false, jump to the line after the last subordinate
statement; that is, jump to the first un-indented statement below
the “if.”

6
if Statement

“if” example: These two


set lightningFactor to 3 statements are
print “Seconds between lightning and thunder?” subordinate to the
encompassing if
input seconds
statement.
print “Are you flying in an airplane (y/n)?”
input inAnAirplane condition
if inAnAirplane equals “y”
print “Beware – the lightning may be closer than you think!”
set lightningFactor to 3.4
set distance to seconds / lightningFactor
print “You are ” distance “ kilometers from the lightning.”
Note the spelling of the lightningFactor and inAnAirplane
variable names. If a variable name requires multiple words (e.g., “lightning
factor”), omit the spaces between the words and use all lowercase except
for the first letter of the 2nd, 3rd, etc. words.
7
if Statement
Format for the “if, else” form of the if statement:
if <condition>
<statement(s)>
else
<statement(s)>

How the “if, else” form of the if statement works:


If the condition is true, execute all statements subordinate to the “if,”
and skip all statements subordinate to the “else.”
If the condition is false, skip all statement(s) subordinate to the “if,” and
execute all statements subordinate to the “else.”
“if, else” example:
if grade is greater than or equal to 60
print “Pass”
else
print “Fail”
8
if Statement

Format for the “if, else if” form of the if statement:


if <condition>
<statement(s)>
else if <condition>
<statement(s)>
. more else if's here (optional)
.
.
optional
else
<statement(s)>

How the “if, else if” form of the if statement works:


For the first condition that's true, execute its statement(s) and
skip the other statement(s).
If none of the conditions are true, execute the else
statement(s)
9
(if there is an else).
if Statement

• “if, else if” example:


if grade is greater than or equal to 90
print "A"
else if grade is greater than or equal to 80
print "B"
else if grade is greater than or equal to 70
print "C"
else if grade is greater than or equal to 60
print "D"
else
print "F"
10
if Statement
If statement summary:
Use the first format (if by itself) for problems where you want to do
something or nothing.
Use the second format (if, else) for problems where you want to do one
thing or another thing.
Use the third format (if, else, if, else) for problems where you
want to do one thing out of three or more choices.

Practice problems:
Write an algorithm that prints "warm" if the temperature (a variable) is
above 50 degrees and prints "cold" otherwise.
Write an algorithm that prints "No school!" if the temperature is below 10
degrees.
Write an algorithm that prints "too cold" if the temperature is below 50
degrees, "OK" if the temperature is between 50 and 90 degrees, and "too
hot" if11the temperature is above 90 degrees.
if Statement
• Write an algorithm that prints "too cold" if the temperature
is below 50 degrees, "OK" if the temperature is between 50
and 90 degrees, and "too hot" if the temperature is above 90
degrees.

too cold 50 o OK 90 o too hot

14
Flowcharts

• Flowchart = a pictorial representation of a program's logic.


 Flowchart symbols:
 Surround print, input, and assignment
statements with rectangles:
 Surround questions (for if conditions and
loop conditions) with diamonds:
 Connect the rectangles and diamonds
with arrows, which show the direction of
the logic flow:

15
Flowcharts
Equivalent flowchart:
• Example algorithm that cuts a CEO’s print "Enter CEO
Salary:"

large salary in half:


input ceoSalary
print "Enter CEO salary: "
input ceoSalary
ceoSalary >
$500,000 ?
if ceoSalary is greater than no

500000 yes

set ceoSalary to
set ceoSalary to ceoSalary ceoSalary * .5

* .5
print "Reduced CEO

print "Reduced salary is $" Salary is $" ceoSalary “.”

ceoSalary
16
Flowcharts
Flowchart:

• Draw a flowchart that prints


"too cold" if temperature is
below 50 degrees, "OK" if
the temperature is between
50 and 90 degrees, and "too
hot" if the temperature is
above 90 degrees.

17
Flow of Control

• Flow of control – the order in which a program's statements


are executed.
• Statements are grouped according to their flow of control.
• Sequential statements are executed in sequence, one after the other.
Sequential statement examples – print, input, assignment.
• Branching statements contain one or more choices and only one of
the choices is executed. Branching statement examples – the three
forms of the if statement.
• Loop statements cause you to jump back to a previously executed
statement. By continuing at that previous statement, a loop is
formed.

19
Looping with Flowcharts
Flowchart:
• Let's first implement a loop
using a flowchart (later
we'll implement loops
using pseudocode):
• Draw a flowchart that
prints "Happy birthday!"
100 times.
• Note: We don't need any
new flowchart symbols for
loops. Flowchart looping is
implemented by an arrow
going to a previously
executed statement.
20
Looping with Pseudocode
• Use a loop statement if you need to do the same thing
repeatedly.
• loop format:
the loop's heading
while <condition>
the loop's body
<statement(s)>

• How the while loop works:


• While the condition is true, execute the statement(s) and jump back
to the condition.

• When the condition finally becomes false, jump below the


22
subordinate statement(s) and continue with the next statement.
Looping with Pseudocode

• Loop terminology:
• The number of times that the loop repeats is called the number of
iterations.
• It's possible for a loop to repeat forever. That's called an infinite loop.
(Note: It's also possible for a loop to repeat zero times.)

• Example:
• Write an algorithm that prints "Happy Birthday!" five times.
set count to 1
while count is less than or equal to 5
print "Happy birthday!"
set
23
count to count + 1
What is tracing? Tracing
It's when a human executes an algorithm (or a program) line by line and
carefully records everything that happens.
It's used to 1) verify that an algorithm is correct or 2) find errors/bugs in an
algorithm.
How to trace:
Setup:
 If there is input, provide a column heading labeled "input."
 Provide a column heading for each variable.
 Provide a column labeled "output."
Whenever there's an input statement, cross off the next input value under
the input column heading.
Update a variable's value by writing the new value underneath the variable's
column heading and crossing off the old value.
Whenever there's a print statement, write the printed value under the
output column heading.
For full
24 credit on the homework, your variable and output values must be
100% accurate.
Pseudocode Summary
• print <variables, strings, math expressions>
• Use quotes to surround strings.
• input <variable>
• Variables (no spaces, all lowercase except for first letter of 2nd,
3rd, etc. words)
• Assignment statement
• set <variable> to <value>
• math operators: +, -, /, *
• if <condition>
• else if <condition>
• else
• while <condition>
25
Loop Termination
• There are three basic ways to terminate/exit loops:
• Counter loop
• Use a counter variable to keep track of the number of iterations.
• Example - "Happy birthday" algorithm.

• User query
• Ask the user if he/she wants to continue.
• Example – miles-to-kilometers conversion algorithm (coming up).

• Sentinel value
• Use a special value to indicate that there's no more input.
• Example - bowling scores algorithm (coming up).
26
User-Query Example
• Write an algorithm that converts a series of user-entered
miles values to kilometer values. The program should
continue as long as the user answers "y" to a "Continue?"
prompt.
set continue to "y"
while continue equals "y"
print "Enter a distance in miles: "
input miles
set km to miles * 1.609
print "The equivalent distance in kilometers is " km
print "Continue? (y/n): "
input27continue
Sentinel Value Example

• Write an algorithm that reads in bowling scores repeatedly


until a sentinel value of -1 is entered. Print the average
score. As always, your algorithm should be robust.
• (Robust means that the algorithm works even for the weird
cases, not just the easy cases.)

28
Sentinel Value Example

• Remember: Your algorithms should be robust.


• Is the bowling score algorithm robust?
• Note: Division by zero in an actual computer program
causes the program to "crash" (= terminate immediately)
rather than continuing to the end of the program.
• Moral: Prevent division by zero by using an appropriate if
statement.

31
Nested Loops
• A nested loop is a loop that's inside another loop.
• Example:
• Write an algorithm that finds the largest prime number from a list
of user-entered numbers. The user indicates he/she is done by
entering a negative number.
• For each entered number, how can you determine whether the
number is prime?
• When the user finally enters a negative number, the algorithm
prints the largest prime number entered or “No prime numbers
were entered.”

32
set largestPrime to 1 Nested Loops
print “Enter a number (negative to quit): ”
input num

while num ≥ 0
set count to 2
set prime to “yes”
while count < num and prime equals “yes”
if num / count has no remainder
set prime to “no”
else
set count to count + 1
if prime equals “yes” and num > largestPrime
set largestPrime to num
print “Enter a number (negative to quit): ”
input num

if largestPrime equals 1
print “No prime numbers were entered.”
else
33
print “The largest prime number entered was ” largestPrime “.”

You might also like