Here is an algorithm to determine which child stole the cookie:
1. Interview each child individually
2. Ask each child if they took a cookie
3. If the child says no, go to the next child
4. If the child says yes, that child is the cookie thief
5. If all children say no, no one has confessed - the cookie thief remains unknown
This uses a sequence structure to interview each child one by one, and a selection structure (if/then) to determine if the child confesses or moving on to the next child.
In this document
Powered by AI
Overview of algorithms and flowcharts in programming: Problem solving phase and implementation phase.
Steps for algorithm development: start with a general algorithm, refine it using pseudocode.
Introduction to flowcharts: shows logic and interconnections, includes symbols for processes.
Examples of algorithms and flowcharts for calculating grades and conversions.
Algorithm and flowchart for calculating roots of quadratic equations using pseudocode.
Logical expressions and the use of IF-THEN-ELSE structures for decision making in algorithms.
Relational operators defined and usage in determining maximum values.
Usage of nested IF structures to determine the largest of three numbers, with flowchart examples.
Algorithm for calculating employee bonus based on overtime hours.
Introduction to pseudocode, basic computer operations for programming, control structures.
Importance of meaningful variable names for identification in programming.
Three basic control structures in programming: sequence, selection, and repetition.
Problem-solving approach illustrating a generic algorithm for the cookie jar scenario.
Translating the cookie problem into formal pseudocode for clarity and application.
ALGORITHMS AND FLOWCHARTS
•A typical programming task can be divided into two
phases:
• Problem solving phase
– produce an ordered sequence of steps that describe
solution of problem
– this sequence of steps is called an algorithm
• Implementation phase
– implement the program in some programming language
3.
Steps in ProblemSolving
• First produce a general algorithm (one can use
pseudocode)
• Refine the algorithm successively to get step by step
detailed algorithm that is very close to a computer
language.
• Pseudocode is an artificial and informal language
that helps programmers develop algorithms.
Pseudocode is very similar to everyday English.
4.
Pseudocode & Algorithm
•Example 1: Write an algorithm to determine a
student’s final grade and indicate whether it is
passing or failing. The final grade is calculated
as the average of four marks.
5.
Pseudocode & Algorithm
Pseudocode:
•Input a set of 4 marks
• Calculate their average by summing and dividing by 4
• if average is below 50
Print “FAIL”
else
Print “PASS”
The Flowchart
A Flowchart
– shows logic of an algorithm
– emphasizes individual steps and their
interconnections
– e.g. control flow from one action to the next
8.
Flowchart Symbols
Basic
Name Symbol Use in Flowchart
Oval Denotes the beginning or end of the program
Parallelogram Denotes an input operation
Rectangle Denotes a process to be carried out
e.g. addition, subtraction, division etc.
Diamond Denotes a decision (or branch) to be made.
The program should continue along one of
two routes. (e.g. IF/THEN/ELSE)
Hybrid Denotes an output operation
Flow line Denotes the direction of logic flow in the program
9.
Example
START
Step 1: Input M1,M2,M3,M4
Step 2: GRADE (M1+M2+M3+M4)/4
Input
M1,M2,M3,M4
Step 3: if (GRADE <50) then
Print “FAIL”
else
GRADE (M1+M2+M3+M4)/4 Print “PASS”
endif
N IS Y
GRADE<50
PRINT PRINT
“PASS” “FAIL”
STOP
10.
Example 2
• Writean algorithm and draw a flowchart to
convert the length in feet to centimeter.
Pseudocode:
• Input the length in feet (Lft)
• Calculate the length in cm (Lcm) by
multiplying LFT with 30
• Print length in cm (LCM)
Example 3
Write an algorithm and draw a flowchart that will
read the two sides of a rectangle and calculate its
area.
Pseudocode
• Input the width (W) and Length (L) of a rectangle
• Calculate the area (A) by multiplying L with W
• Print A
13.
Example 3
Algorithm START
• Step 1: Input W,L Input
W, L
• Step 2: A L x W
• Step 3: Print A A LxW
Print
A
STOP
14.
Example 4
• Writean algorithm and draw a flowchart that will
calculate the roots of a quadratic equation
ax 2 bx c 0
• X=(-b + sqrt (b2 -4ac))/2a
• X=(-b - sqrt (b2 -4ac))/2a
15.
Example 4
Pseudocode:
• Inputthe coefficients (a, b, c) of the quadratic
equation
• Calculate d
• Calculate x1
• Calculate x2
• Print x1 and x2
16.
Example 4
START
• Algorithm:
Input
• Step 1: Input a, b, c a, b, c
• Step 2: d sqrt ( b b 4 a ) c
• Step 3: x1 (–b + d) / (2 x a) d sqrt(b x b – 4 x a x c)
• Step 4: x2 (–b – d) / (2 x a)
x1 (–b + d) / (2 x a)
• Step 5: Print x1, x2
X2 (–b – d) / (2 x a)
Print
x1 ,x2
STOP
17.
DECISION STRUCTURES
• Theexpression A>B is a logical expression
• it describes a condition we want to test
• if A>B is true (if A is greater than B) we take the
action on left
• print the value of A
• if A>B is false (if A is not greater than B) we take the
action on right
• print the value of B
IF–THEN–ELSE STRUCTURE
• Thestructure is as follows
If condition then
true alternative
else
false alternative
endif
20.
IF–THEN–ELSE STRUCTURE
• Thealgorithm for the flowchart is as follows:
If A>B then
print A
else Y
is
N
print B A>B
endif
Print A Print B
21.
Relational Operators
Relational Operators
Operator Description
> Greater than
< Less than
= Equal to
Greater than or equal to
Less than or equal to
Not equal to
22.
Example 5
• Writean algorithm that reads two values, determines the
largest value and prints the largest value with an identifying
message.
ALGORITHM
Step 1: Input VALUE1, VALUE2
Step 2: if (VALUE1 > VALUE2) then
MAX VALUE1
else
MAX VALUE2
endif
Step 3: Print “The largest value is”, MAX
23.
Example 5
START
Input
VALUE1,VALUE2
Y is
N
VALUE1>VALUE2
MAX VALUE1 MAX VALUE2
Print
“The largest value is”, MAX
STOP
24.
NESTED IFS
• Oneof the alternatives within an IF–THEN–
ELSE statement
– may involve further IF–THEN–ELSE statement
25.
Example 6
• Writean algorithm that reads three numbers
and prints the value of the largest number.
26.
Example 6
Step 1:Input N1, N2, N3
Step 2: if (N1>N2) then
if (N1>N3) then
MAX N1 [N1>N2, N1>N3]
else
MAX N3 [N3>N1>N2]
endif
else
if (N2>N3) then
MAX N2 [N2>N1, N2>N3]
else
MAX N3 [N3>N2>N1]
endif
endif
Step 3: Print “The largest number is”, MAX
Example 7
• Writeand algorithm and draw a flowchart to
a) read an employee name (NAME), overtime
hours worked (OVERTIME), hours absent
(ABSENT) and
b) determine the bonus payment (PAYMENT).
29.
Example 7
Bonus Schedule
OVERTIME – (2/3)*ABSENT Bonus Paid
>40 hours $50
>30 but 40 hours $40
>20 but 30 hours $30
>10 but 20 hours $20
10 hours $10
30.
Step 1: InputNAME,OVERTIME,ABSENT
Step 2: if (OVERTIME–(2/3)*ABSENT > 40) then
PAYMENT 50
else if (OVERTIME–(2/3)*ABSENT > 30) then
PAYMENT 40
else if (OVERTIME–(2/3)*ABSENT > 20) then
PAYMENT 30
else if (OVERTIME–(2/3)*ABSENT > 10) then
PAYMENT 20
else
PAYMENT 10
endif
Step 3: Print “Bonus for”, NAME “is $”, PAYMENT
Objectives
• In thischapter you will be able to:
• Introduce common words, keywords, and meaningful
names when writing pseudocode
• Define the three basic control structures as set out in the
Structure Theorem
• Illustrate the three basic control structures using
pseudocode
Simple Program Design, Fourth Edition
32
Chapter 2
33.
How to WritePseudocode
• When designing a solution algorithm, you need
to keep in mind that a computer will eventually
perform the set of instructions written
• If you use words and phrases in the pseudocode
which are in line with basic computer operations,
the translation from pseudocode algorithm to a
specific programming language becomes quite
simple
Simple Program Design, Fourth Edition
33
Chapter 2
34.
Six Basic ComputerOperations
1 A computer can receive information
– When a computer is required to receive
information or input from a particular source,
whether it is a terminal, a disk or any other
device, the verbs Read and Get are used in
pseudocode Example pseudocode
Read student name
Get system data
Read => Input from a record Read number1, number2
Get tax_code
Get => Input from keyboard
Simple Program Design, Fourth Edition
34
Chapter 2
35.
Six Basic ComputerOperations
1 A computer can receive information
– Usually an output Prompt instruction is required
before an input Get instruction
Example pseudocode
Prompt for student_mark
Get student_mark
Simple Program Design, Fourth Edition
35
Chapter 2
36.
Six Basic ComputerOperations
2 A computer can put out information
– When a computer is required to supply
information or output to a device, the verbs Print,
Write, Put, Output, or Display are used in
pseudocode Example pseudocode
Print ‘Program Completed’
– Print => send output to printer Write customer record to master
Output total tax
– Write => send out to file Display ‘End of data’
– Put, Output, Display => send to screen
Simple Program Design, Fourth Edition
36
Chapter 2
37.
Six Basic ComputerOperations
3 A computer can perform arithmetic
– Most programs require the computer to perform some sort of mathematical
calculation, or formula, and for these, a programmer may use either actual
mathematical symbols or the words for those symbols
– To be consistent with high-level programming languages, the following
symbols can be written in pseudocode:
+ for Add - for Subtract
* for Multiply / for Divide ( ) for Parentheses
– When writing mathematical calculations for the computer, standard
mathematical ‘order of operations’ applies to pseudocode and most
computer languages
Simple Program Design, Fourth Edition
37
Chapter 2
38.
Six Basic ComputerOperations
4 A computer can assign a value to a variable or
memory location
– There are three cases where you may write
pseudocode to assign a value to a variable or
memory location:
1. To give data an initial value in pseudocode, the verbs
Initialize or Set are used
2. To assign a value as a result of some processing the symbols
‘=‘ or ‘ ’ are written
3. To keep a variable for later use, the verbs Save or Store are
used
Simple Program Design, Fourth Edition
38
Chapter 2
39.
Six Basic ComputerOperations
4 A computer can assign a value to a variable or
memory location
Example pseudocode
Initialize total_price to zero
Set student_count to zero
Total_price = cost_price + sales_tax
Total_price cost_price + sales_tax
Store customer_num in last_customer_num
Simple Program Design, Fourth Edition
39
Chapter 2
40.
Six Basic ComputerOperations
5 A computer can compare two variables and
select one or two alternate actions
– An important computer operation available to the
programmer is the ability to compare two variables
and then, as a result of the comparison, select one of
two alternate actions
– To represent this operation in pseudocode, special
keywords are used: IF, THEN, and ELSE
Simple Program Design, Fourth Edition
40
Chapter 2
41.
Six Basic ComputerOperations
6 A computer can repeat a group of actions
– When there is a sequence of processing steps that need to be
repeated, two special keywords, DOWHILE and ENDDO, are
used in pseudocode
– The condition for the repetition of a group of actions is
established in the DOWHILE clause, and the actions to be
repeated are listed beneath it
Simple Program Design, Fourth Edition
41
Chapter 2
42.
Meaningful Names
• Allnames should be meaningful
• A name given to a variable is simply a method of identifying a particular
storage location in the computer
• The uniqueness of a name will differentiate it from other locations
• Often a name describes the type of data stored in a particular variable
• Most programming languages do not tolerate a space in a variable name,
as a space would signal the end of the variable name and thus imply that
there were two variables
Simple Program Design, Fourth Edition
42
Chapter 2
43.
The Structure Theorem
•The Structure Theorem states that it is possible to
write any computer program by using only three
basic control structures that are easily represented in
pseudocode:
– Sequence
– Selection
– Repetition
Simple Program Design, Fourth Edition
43
Chapter 2
44.
The Three BasicControl Structures
1 Sequence
– The sequence control structure is the straightforward execution of one
processing step after another
– In pseudocode, we represent this construct as a sequence of pseudocode
statements
2 Selection
– The selection control structure is the presentation of a condition and the
choice between two actions; the choice depends on whether the condition is
true or false
– In pseudocode, selection is represented by the keywords IF, THEN, ELSE, and
ENDIF
Simple Program Design, Fourth Edition
44
Chapter 2
45.
The Three BasicControl Structures
3 Repetition
– The repetition control structure can be defined as the
presentation of a set of instructions to be performed
repeatedly, as long as a condition is true
– The basic idea of repetitive code is that a block of
statements is executed again and again, until a
terminating condition occurs
– This construct represents the sixth basic computer
operation, namely to repeat a group of actions
Simple Program Design, Fourth Edition
45
Chapter 2
46.
Summary
• In thischapter, six basic computer operations were listed, along
with pseudocode words and keywords to represent them
• These operations were: to receive information, put out information,
perform arithmetic, assign a value to a variable, decide between
two alternate actions, and repeat a group of actions
• The Structure Theorem was introduced; it states that it is possible
to write any computer program by using only three basic control
structures: sequence, selection, and repetition
Simple Program Design, Fourth Edition
46
Chapter 2
47.
Someone Stole aCookie from the Cookie Jar
Problem: Momma had just filled the cookie jar
when the 3 children went to bed. That night
one child woke up, ate half of the cookies
and went back to bed. Later, the second
child woke up, ate half of the remaining
cookies, and went back to bed. Still later,
the third child woke up, ate half of the
remaining cookies, leaving 3 cookies in the
jar. How many cookies were in the jar to
begin with?
48.
Someone Stole aCookie from the Cookie Jar (cont’d)
• Information available:
– Three children
– Each one ate half of the cookies
– Three cookies remaining
• Information needed:
– Original number of cookies
• Calculations:
– For each child, multiply the number of remaining cookies
by two.
49.
Specific Solution tothe Problem
• First, we solve the specific problem to help us
identify the steps.
– 3 cookies left X 2 = 6 cookies left after
2nd child
– 6 X 2 = 12 cookies left after 1st child
– 12 X 2 = 24 = original number of cookies
50.
A Generic Algorithm
•What is a generic algorithm for this problem?
An algorithm that will work with any number of
remaining cookies
AND
that will work with any number of children.
51.
Generic Algorithm forCookie Problem
• Get number of children.
• Get number of cookies remaining.
• While there are still children that have not
raided the cookie jar, multiply the number
of cookies by 2 and reduce the number of
children by 1.
• Display the original number of cookies.
52.
Test The GenericAlgorithm
• Try the algorithm on paper with:
– Four children and six cookies remaining.
– Two children with two cookies remaining.
• If you did not get the correct answer, modify
the algorithm so that you get the correct
answer.
53.
Pseudocode
• When webroke down the previous problem
into steps, we expressed each step as an English
phrase.
• We can think of this as writing pseudocode for
the problem.
• Typically, pseudocode is a combination of
English phrases and formulas.
54.
Pseudocode (con’t)
• Pseudocodeis used in
– designing algorithms
– communicating an algorithm to the customer
– converting an algorithm to code (used by the
programmer)
– debugging logic (semantic) errors in a solution
before coding (hand tracing)
• Let’s write the Cookie Problem algorithm using
a more formal pseudocode and being more
precise.
55.
Improved Pseudocode
Display “Enterthe number of children: “
Read <number of children>
Display “Enter the number of cookies remaining: “
Read <cookies remaining>
<original cookies> = <cookies remaining>
While (<number of children> > 0)
<original cookies> = <original cookies> X 2
<number of children> = <number of children> - 1
End_While
Display “Original number of cookies = “, <original cookies>