ALGORITHMS AND FLOWCHARTS



Similar documents
ALGORITHMS AND FLOWCHARTS. By Miss Reham Tufail

Algorithms, Flowcharts & Program Design. ComPro

PROG0101 Fundamentals of Programming PROG0101 FUNDAMENTALS OF PROGRAMMING. Chapter 3 Algorithms

Notes on Algorithms, Pseudocode, and Flowcharts

Instructor Özgür ZEYDAN (PhD) CIV 112 Computer Programming

Chapter One Introduction to Programming

9 Control Statements. 9.1 Introduction. 9.2 Objectives. 9.3 Statements

Chapter 1 An Introduction to Computers and Problem Solving

Computer Programming Lecturer: Dr. Laith Abdullah Mohammed

2 SYSTEM DESCRIPTION TECHNIQUES

QUIZ-II QUIZ-II. Chapter 5: Control Structures II (Repetition) Objectives. Objectives (cont d.) 20/11/2015. EEE 117 Computer Programming Fall

Chapter 2: Algorithm Discovery and Design. Invitation to Computer Science, C++ Version, Third Edition

Chapter 8 Selection 8-1

Unit 1 Number Sense. In this unit, students will study repeating decimals, percents, fractions, decimals, and proportions.

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

Visual Logic Instructions and Assignments

Chapter 5. Selection 5-1

Flowchart Techniques

PREPARATION FOR MATH TESTING at CityLab Academy

What is a Loop? Pretest Loops in C++ Types of Loop Testing. Count-controlled loops. Loops can be...

How do you compare numbers? On a number line, larger numbers are to the right and smaller numbers are to the left.

JavaScript: Control Statements I

Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha

Computer Programming

Solve addition and subtraction word problems, and add and subtract within 10, e.g., by using objects or drawings to represent the problem.

Fourth Grade Math Standards and "I Can Statements"

2. Capitalize initial keyword In the example above, READ and WRITE are in caps. There are just a few keywords we will use:

Quick Reference ebook

Two-way selection. Branching and Looping

The While Loop. Objectives. Textbook. WHILE Loops

Binary Division. Decimal Division. Hardware for Binary Division. Simple 16-bit Divider Circuit

BPS Math Year at a Glance (Adapted from A Story Of Units Curriculum Maps in Mathematics K-5) 1

Grade 5 Common Core State Standard

CHAPTER 5. Number Theory. 1. Integers and Division. Discussion

VB.NET Programming Fundamentals

JUST THE MATHS UNIT NUMBER 1.8. ALGEBRA 8 (Polynomials) A.J.Hobson

NUMBER SYSTEMS. William Stallings

Answer Key for California State Standards: Algebra I

POLYNOMIAL FUNCTIONS

Application. Outline. 3-1 Polynomial Functions 3-2 Finding Rational Zeros of. Polynomial. 3-3 Approximating Real Zeros of.

Fundamentals of Programming and Software Development Lesson Objectives

Chapter 13: Program Development and Programming Languages

Problem Solving Basics and Computer Programming

Computer Science 217

Continued Fractions and the Euclidean Algorithm

3.2. Solving quadratic equations. Introduction. Prerequisites. Learning Outcomes. Learning Style

Algorithm and Flowchart Structured Programming 1

MATLAB Programming. Problem 1: Sequential

Math Review. for the Quantitative Reasoning Measure of the GRE revised General Test

4.1. COMPLEX NUMBERS

VISUAL ALGEBRA FOR COLLEGE STUDENTS. Laurie J. Burton Western Oregon University

Chapter 3 Problem Solving

Flowcharting, pseudocoding, and process design

COMMON CORE STATE STANDARDS FOR MATHEMATICS 3-5 DOMAIN PROGRESSIONS

Introduction to Programming (in C++) Loops. Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC

Example. Introduction to Programming (in C++) Loops. The while statement. Write the numbers 1 N. Assume the following specification:

6. Control Structures

Wage Calculator Application

1 BPS Math Year at a Glance (Adapted from A Story of Units Curriculum Maps in Mathematics P-5)

Sources: On the Web: Slides will be available on:

Binary Number System. 16. Binary Numbers. Base 10 digits: Base 2 digits: 0 1

MA107 Precalculus Algebra Exam 2 Review Solutions

Section 1.5 Exponents, Square Roots, and the Order of Operations

Student Outcomes. Lesson Notes. Classwork. Exercises 1 3 (4 minutes)

Math 0980 Chapter Objectives. Chapter 1: Introduction to Algebra: The Integers.

I PUC - Computer Science. Practical s Syllabus. Contents

Factoring Polynomials

PAYCHEX, INC. BASIC BUSINESS MATH TRAINING MODULE

Chapter 2: Linear Equations and Inequalities Lecture notes Math 1010

INTRODUCTION TO FRACTIONS

Elementary Number Theory and Methods of Proof. CSE 215, Foundations of Computer Science Stony Brook University

Chapter 4 -- Decimals

Paramedic Program Pre-Admission Mathematics Test Study Guide

MATH-0910 Review Concepts (Haugen)

Polynomials. Dr. philippe B. laval Kennesaw State University. April 3, 2005

DATE PERIOD. Estimate the product of a decimal and a whole number by rounding the Estimation

Zero: If P is a polynomial and if c is a number such that P (c) = 0 then c is a zero of P.

Session 6 Number Theory

Prentice Hall Mathematics: Course Correlated to: Arizona Academic Standards for Mathematics (Grades 6)

Florida Math Correlation of the ALEKS course Florida Math 0018 to the Florida Mathematics Competencies - Lower

Integer Operations. Overview. Grade 7 Mathematics, Quarter 1, Unit 1.1. Number of Instructional Days: 15 (1 day = 45 minutes) Essential Questions

KS3 Computing Group 1 Programme of Study hours per week

Polynomial and Rational Functions

Conditionals: (Coding with Cards)

While Loop. 6. Iteration

Process / Operation Symbols

IS0020 Program Design and Software Tools Midterm, Feb 24, Instruction

Advanced GMAT Math Questions

CCSS Mathematics Implementation Guide Grade First Nine Weeks

Chapter 11 Number Theory

UEE1302 (1102) F10 Introduction to Computers and Programming

BEST METHODS FOR SOLVING QUADRATIC INEQUALITIES.

1.3 Conditionals and Loops

Copy in your notebook: Add an example of each term with the symbols used in algebra 2 if there are any.

Section 4.2: The Division Algorithm and Greatest Common Divisors

Unit 6 Number and Operations in Base Ten: Decimals

Objective To introduce the concept of square roots and the use of the square-root key on a calculator. Assessment Management

Transcription:

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 1

Steps in Problem Solving 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. 2

The Flowchart Program flowcharts show the sequence of instructions in a single program or subroutine. Different symbols are used to draw each type of flowchart. A Flowchart shows logic of an algorithm emphasizes individual steps and their interconnections e.g. control flow from one action to the next 3

What is a Flowchart? A flowchart is a diagram that depicts the flow of a program. The figure shown here is a flowchart for paycalculating program. START Display message How many hours did you work? Read Hours Display message How much do you get paid per hour? Read Pay Rate Multiply Hours by Pay Rate. Store result in Gross Pay. Display Gross Pay END 4

Basic Flowchart Symbols Notice there are three types of symbols in this flowchart: rounded rectangles parallelograms a rectangle Each symbol represents a different type of operation. Rectangle Rounded Rectangle START Display message How many hours did you work? Read Hours Display message How much do you get paid per hour? Read Pay Rate Multiply Hours by Pay Rate. Store result in Gross Pay. Display Gross Pay END Rounded Rectangle Parallelogram 5

Basic Flowchart Symbols Terminals represented by rounded rectangles indicate a starting or ending point START Display message How many hours did you work? Read Hours Display message How much do you get paid per hour? Read Pay Rate Terminal START Multiply Hours by Pay Rate. Store result in Gross Pay. END Terminal Display Gross Pay END 6

Basic Flowchart Symbols Input/Output Operations represented by parallelograms indicate an input or output operation START Display message How many hours did you work? Read Hours Display message How much do you get paid per hour? Read Pay Rate Input/Output Operation Display message How many hours did you work? Read Hours Multiply Hours by Pay Rate. Store result in Gross Pay. Display Gross Pay END 7

Basic Flowchart Symbols Processes represented by rectangles indicates a process such as a mathematical computation or variable assignment Multiply Hours by Pay Rate. Store result in Gross Pay. Process START Display message How many hours did you work? Read Hours Display message How much do you get paid per hour? Read Pay Rate Multiply Hours by Pay Rate. Store result in Gross Pay. Display Gross Pay END 8

Stepping Through the Flowchart START Display message How many hours did you work? Output Operation How many hours did you work? Read Hours Display message How much do you get paid per hour? Read Pay Rate Variable Contents: Hours:? Pay Rate:? Gross Pay:? Multiply Hours by Pay Rate. Store result in Gross Pay. Display Gross Pay END 9

Stepping Through the Flowchart START Display message How many hours did you work? How many hours did you work? 40 Input Operation (User types 40) Read Hours Display message How much do you get paid per hour? Read Pay Rate Variable Contents: Hours: 40 Pay Rate:? Gross Pay:? Multiply Hours by Pay Rate. Store result in Gross Pay. Display Gross Pay END 10

Stepping Through the Flowchart START Display message How many hours did you work? How much do you get paid per hour? Output Operation Read Hours Display message How much do you get paid per hour? Read Pay Rate Variable Contents: Hours: 40 Pay Rate:? Gross Pay:? Multiply Hours by Pay Rate. Store result in Gross Pay. Display Gross Pay END 11

Stepping Through the Flowchart START Display message How many hours did you work? How much do you get paid per hour? 20 Read Hours Display message How much do you get paid per hour? Variable Contents: Hours: 40 Pay Rate: 20 Gross Pay:? Input Operation (User types 20) Read Pay Rate Multiply Hours by Pay Rate. Store result in Gross Pay. Display Gross Pay END 12

Stepping Through the Flowchart START Display message How many hours did you work? How much do you get paid per hour? Read Hours Display message How much do you get paid per hour? Read Pay Rate Variable Contents: Hours: 40 Pay Rate: 20 Gross Pay: 800 Process: The product of 40 times 20 is stored in Gross Pay Multiply Hours by Pay Rate. Store result in Gross Pay. Display Gross Pay END 13

Stepping Through the Flowchart START Display message How many hours did you work? Your gross pay is 800 Read Hours Display message How much do you get paid per hour? Read Pay Rate Variable Contents: Hours: 40 Pay Rate: 20 Gross Pay: 800 Output Operation Multiply Hours by Pay Rate. Store result in Gross Pay. Display Gross Pay END 14

Four Flowchart Structures Sequence Decision Repetition Case 15

Sequence Structure a series of actions are performed in sequence The pay-calculating example was a sequence flowchart. 16

Decision Structure One of two possible actions is taken, depending on a condition. 17

Decision Structure A new symbol, the diamond, indicates a yes/no question. If the answer to the question is yes, the flow follows one path. If the answer is no, the flow follows another path NO YES 18

Decision Structure In the flowchart segment below, the question is x < y? is asked. If the answer is no, then process A is performed. If the answer is yes, then process B is performed. NO x < y? YES Process A Process B 19

Decision Structure The flowchart segment below shows how a decision structure is expressed in C++ as an if/else statement. Flowchart C++ Code NO x < y? YES if (x < y) a = x * 2; else Calculate a as x plus y. Calculate a as x times 2. a = x + y; 20

Decision Structure The flowchart segment below shows a decision structure with only one action to perform. It is expressed as an if statement in C++ code. Flowchart C++ Code NO x < y? YES if (x < y) a = x * 2; Calculate a as x times 2. 21

Repetition Structure A repetition structure represents part of the program that repeats. This type of structure is commonly known as a loop. 22

Repetition Structure Notice the use of the diamond symbol. A loop tests a condition, and if the condition exists, it performs an action. Then it tests the condition again. If the condition still exists, the action is repeated. This continues until the condition no longer exists. 23

Repetition Structure In the flowchart segment, the question is x < y? is asked. If the answer is yes, then Process A is performed. The question is x < y? is asked again. Process A is repeated as long as x is less than y. When x is no longer less than y, the repetition stops and the structure is exited. x < y? YES Process A 24

Repetition Structure The flowchart segment below shows a repetition structure expressed in C++ as a while loop. Flowchart C++ Code while (x < y) x < y? YES Add 1 to x x++; 25

Controlling a Repetition Structure The action performed by a repetition structure must eventually cause the loop to terminate. Otherwise, an infinite loop is created. In this flowchart segment, x is never changed. Once the loop starts, it will never end. QUESTION: How can this flowchart be modified so it is no longer an infinite loop? x < y? YES Display x 26

Controlling a Repetition Structure ANSWER: By adding an action within the repetition that changes the value of x. YES x < y? Display x Add 1 to x 27

A Pre-Test Repetition Structure This type of structure is known as a pre-test repetition structure. The condition is tested BEFORE any actions are performed. YES x < y? Display x Add 1 to x 28

A Pre-Test Repetition Structure In a pre-test repetition structure, if the condition does not exist, the loop will never begin. YES x < y? Display x Add 1 to x 29

A Post-Test Repetition Structure This flowchart segment shows a post-test repetition structure. The condition is tested AFTER the actions are performed. A post-test repetition structure always performs its actions at least once. Display x Add 1 to x x < y? YES 30

A Post-Test Repetition Structure The flowchart segment below shows a post-test repetition structure expressed in C++ as a do-while loop. Flowchart Display x Add 1 to x C++ Code do { cout << x << endl; x++; } while (x < y); x < y? YES 31

Post-Test vs Pre-Test Repetition Structure 32

Case Structure One of several possible actions is taken, depending on the contents of a variable. 33

Case Structure The structure below indicates actions to perform depending on the value in years_employed. CASE years_employed 1 2 3 Other bonus = 100 bonus = 200 bonus = 400 bonus = 800 34

Case Structure If years_employed = 1, bonus is set to 100 If years_employed = 2, bonus is set to 200 CASE years_employed If years_employed = 3, bonus is set to 400 If years_employed is any other value, bonus is set to 800 1 2 3 Other bonus = 100 bonus = 200 bonus = 400 bonus = 800 35

Connectors Sometimes a flowchart will not fit on one page. A connector (represented by a small circle) allows you to connect two flowchart segments. A 36

Connectors The A connector indicates that the second flowchart segment begins where the first segment ends. START A A END 37

Modules A program module (such as a function in C++) is represented by a special symbol. 38

Modules The position of the module symbol indicates the point the module is executed. A separate flowchart can be constructed for the module. START Read Input. Call calc_pay function. Display results. END 39

Combining Structures Structures are commonly combined to create more complex algorithms. The flowchart segment below combines a decision structure with a sequence structure. YES x < y? Display x Add 1 to x 40

Combining Structures This flowchart segment shows two decision structures combined. NO x > min? YES Display x is outside the limits. NO x < max? YES Display x is outside the limits. Display x is within limits. 41

Review What do each of the following symbols represent? (Answer on next slide) 42

Answer What do each of the following symbols represent? Terminal Decision Input/Output Operation Connector Process Module 43

Review Name the four flowchart structures. (Answer on next slide) 44

Answer Sequence Decision Repetition Case 45

Review What type of structure is this? (Answer on next slide) 46

Answer Repetition 47

Review What type of structure is this? (Answer on next slide) 48

Answer Sequence 49

Review What type of structure is this? (Answer on next slide) 50

Answer Case 51

Review What type of structure is this? (Answer on next slide) 52

Answer Decision 53

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. 54

Pseudocode & Algorithm Detailed Algorithm Step 1: Input M1,M2,M3,M4 Step 2: GRADE (M1+M2+M3+M4)/4 Step 3: if (GRADE < 50) then Print FAIL else Print PASS endif 55

Example 1 START Input M1,M2,M3,M4 GRADE (M1+M2+M3+M4)/4 N IS GRADE<50 Y Step 1: Input M1,M2,M3,M4 Step 2: GRADE (M1+M2+M3+M4)/4 Step 3: if (GRADE <50) then Print FAIL else Print PASS endif PRINT PASS PRINT FAIL STOP 56

Example 2 Write an algorithm and draw a flowchart to convert the length in feet to centimeter. 57

Example 2 Algorithm Step 1: Input Lft Step 2: Lcm Lft x 30 Step 3: Print Lcm Flowchart START Input Lft Lcm Lft x 30 Print Lcm STOP 58

Example 3 Write an algorithm and draw a flowchart that will read the two sides of a rectangle and calculate its area. 59

Example 3 Algorithm Step 1: Input W,L Step 2: A L x W Step 3: Print A START Input W, L A L x W Print A STOP 60

Example 4 We want to create a flowchart that prints out double the number of the inputted value. On the following slide, a number of potential boxes you could use to correctly implement the algorithm. 61

START END 62

Pick the appropriate three of the following boxes that describe the algorithm as described. Read A B = A*2 Print A Read B B = A / 2 Print B Read C B = A + 2 Print C 63

Example 5 We want to create a flowchart that reads in a number, and checks if it is odd or even. On the following slide, a number of potential boxes you could use to correctly implement the algorithm. 64

START Read in A Yes No END 65

Pick the appropriate three of the following boxes that describe the algorithm as described. Read B Is A > B? Print It s Even Print It s Odd Does A/2 give a remainder? Print A /2 Read C Is A = = B? Print I dunno 66

NESTED IFS One of the alternatives within an IF THEN ELSE statement may involve further IF THEN ELSE statement 67

Example 6 We want to create a flowchart that prints out the biggest of three inputted numbers 68

Example 6 Step 1: Input A, B, C Step 2: if (A>B) then if (A>C) then MAX A [A>B, A>C] else MAX C [C>A>B] endif else if (B>C) then MAX B [B>A, B>C] else MAX C [C>B>A] endif endif Step 3: Print The largest number is, MAX 69

Example 6 Flowchart: Draw the flowchart of the above Algorithm. On the following slide, a number of potential boxes you could use to correctly implement the algorithm. 70

START Read A, B, C Yes Yes A>B? No Yes No No END 71

Pick the appropriate three of the following boxes that describe the algorithm as described. B<C? B>C? Print A A<C? A>C? Print B A<B? A>B? Print C 72

Example 7 We want to create a flowchart that prints out the word Honour if the number input is greater than 70, if the number is less than 40 print out the word Fail, otherwise print out the word Pass. On the following slide, a number of potential boxes you could use to correctly implement the algorithm. 73

START Read A Yes No No Yes END 74

Pick the appropriate three of the following boxes that describe the algorithm as described A < 70? A > 70? Print Honour A < 40? A > 40? Print Fail A > Pass? A > Honour? Print Pass 75

Example 8 We want to create a flowchart that prints out the average value of five numbers input in. On the following slide, a number of potential boxes you could use to correctly implement the algorithm. 76

START Total = 0 A = 1 A = A + 1 No Yes END 77

Pick the appropriate three of the following boxes that describe the algorithm as described. Is A==6? Is A==5? Is A==0? Print Total Print Total / 5 Print Total++ Total = X Total = Total Total = Total + X Read A Read Total Read X 78

Example 9 Write an algorithm and draw a flowchart that will calculate the roots of a quadratic equation 2 ax bx c Hint: d = sqrt ( ), 0 b 2 4ac and the roots are: x1 = ( b + d)/2a and x2 = ( b d)/2a 79

Algorithm: Step 1: Input a, b, c Example 9 b b 4 a c Step 2: d sqrt ( ) Step 3: x1 ( b + d) / (2 x a) Step 4: x2 ( b d) / (2 x a) Step 5: Print x1, x2 START Input a, b, c d sqrt(b x b 4 x a x c) x 1 ( b + d) / (2 x a) X 2 ( b d) / (2 x a) Print x 1,x 2 STOP 80

Example 10 Write an algorithm that reads two values, determines the largest value and prints the largest value with an identifying message. 81

Example 10 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 Y MAX VALUE1 START Input VALUE1,VALUE2 is VALUE1>VALUE2 N MAX VALUE2 Print The largest value is, MAX STOP 82

Example 11 Write and 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). 83

Example 11 Bonus Schedule OVERTIME (2/3)*ABSENT Bonus Paid >40 hours >30 but 40 hours >20 but 30 hours >10 but 20 hours 10 hours $50 $40 $30 $20 $10 84

Step 1: Input NAME,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 85

Example 11 Flowchart: Draw the flowchart of the above algorithm? 86

Example 12 Express an algorithm to get two numbers from the user (dividend and divisor), testing to make sure that the divisor number is not zero, and displaying their quotient using a flowchart. 87

Example 12 Answer Step 1 Declare variables dividend, divisor, quotient Step 2 Prompt user to get dividend Step 3 Store values in dividend variable Step 4 Prompt user to get divisor Step 5 Store value in divisor variable Step 6 Display dividend and divisor Step 7 - Loop Selection: If divisor is equal to zero Display error message, divisor must be non-zero and go back to step 4 Step 8 - Calculate quotient as dividend/divisor Step 9 - Display quotient 88

89