Notes on Algorithms, Pseudocode, and Flowcharts



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

ALGORITHMS AND FLOWCHARTS

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

2 SYSTEM DESCRIPTION TECHNIQUES

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

Flowchart Techniques

JavaScript: Control Statements I

Computer Programming Lecturer: Dr. Laith Abdullah Mohammed

ALGORITHMS AND FLOWCHARTS. By Miss Reham Tufail

Salad Dressing Recipes

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

Chapter One Introduction to Programming

EKT150 Introduction to Computer Programming. Wk1-Introduction to Computer and Computer Program

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

Algorithms, Flowcharts & Program Design. ComPro

Pseudo code Tutorial and Exercises Teacher s Version

CS101 Lecture 26: Low Level Programming. John Magee 30 July 2013 Some material copyright Jones and Bartlett. Overview/Questions

Mediterranean Bean Salad. You ll Need - Take Out - 1/3 cup SPLENDA Granular measuring cups

GREEN ONION POTATO SALAD A Bobby Flay Recipe

Flowcharting, pseudocoding, and process design

Problem Solving Basics and Computer Programming

Organifi Green Juice Recipe Book

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

MATLAB Programming. Problem 1: Sequential

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

KS3 Computing Group 1 Programme of Study hours per week

A Guide to Process Mapping

Total Quality Management (TQM) Quality, Success and Failure. Total Quality Management (TQM) vs. Process Reengineering (BPR)

DRY BEAN RECIPES. Beans, Beans and More Beans Soup

classic passata sauce

Creating a table of contents quickly in Word

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

Salad with Creole Roquefort Dressing

Software development and programming. Software

VB Controls and Events. Introduc)on. Program Planning and Flowcharts Visual Basic Visual basic Interface VB Controls CreaGng a Project

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

Ithaca College Culinary Arts Club Mediterranean Night Recipes

Chapter 13: Program Development and Programming Languages

1 Description of The Simpletron

Crockpot Beef/Chicken Fajitas

Chapter 1 An Introduction to Computers and Problem Solving

Using Casio Graphics Calculators

QUINOA AND BLACK BEAN SALAD

Chapter 13: Program Development and Programming Languages

GROCERY LIST FOR ALL 8 MEALS

Informatica e Sistemi in Tempo Reale

Algorithm and Flowchart Structured Programming 1

Lab 4 - Data Acquisition

Microsoft Office PowerPoint Creating a new presentation from a design template. Creating a new presentation from a design template

Converting English and Metric Recipes

Comp 255Q - 1M: Computer Organization Lab #3 - Machine Language Programs for the PDP-8

Gourmet røgeopskrifter med elletræ briketter

Instructor Özgür ZEYDAN BEU Dept. of Enve. Eng. CIV 112 Computer Programming Lecture Notes (1)

Copyright 2009 Bahn, D., Tang, H. & Yardley, A. All Rights Reserved. ISBN: Systems Analysis and Design Learning Module Series #3

BEST HORS D'OEUVRE 2014

An Assembly Language Programming Style Guide. by Ken Lambert. Naming Conventions. Use of Whitespace

C A R I B B E A N E X A M I N A T I O N S REPORT ON CANDIDATES S WORK IN THE CARIBBEAN SECONDARY EDUCATION CERTIFICATE EXAMINATION MAY/JUNE 2012

Introduction to BPMN Part III - Flow and Connecting Objects Written Date : March 07, 2016

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

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

A GUIDE TO PROCESS MAPPING AND IMPROVEMENT

SALSA RECIPES FOR CANNING

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

SHOP SMART, STORE SAFE

THE UNIVERSITY OF TRINIDAD & TOBAGO

Lecture 2 Mathcad Basics

BLENDER. Safety Guidelines. Meet Your Rapid Boiler. Before First Use. Using Your Blender. Blender Setting Guide. Cleaning Your Rapid Boiler.

COMPUTER SCIENCE (5651) Test at a Glance

Course MS10975A Introduction to Programming. Length: 5 Days

Algorithms are the threads that tie together most of the subfields of computer science.

Easy Herb Recipes. Place the strawberries, mint leaves, orange juice, and yogurt in your blender. Blend until thick and smooth.

Glossary of Object Oriented Terms

Introduction to LogixPro - Lab

Producing Standards Based Content with ToolBook

The Powerful Winter Squash

Parameter Passing in Pascal

RPM Blender. Owner s Manual & User Guide

Process / Operation Symbols

MEN'S FITNESS FAT TO FIT CHALLENGE CALORIE MEAL PLAN WEEK 3

Name: Hour: Review: 1. What are the similarities and differences between a blender and a hand blender?

Mexican Recipes. 1 tablespoon chili powder ¼ teaspoon garlic powder

Fiesta Salsa From the Moscow Farmers Market

Programming Logic controllers

Wage Calculator Application

!!!!!!! Herring with beetroot gnocchi

Practical Course On Emulsions

S7 for Windows S7-300/400

if and if-else: Part 1

Chapter 12 Programming Concepts and Languages

Yields: One gallon-sized freezer bag with six servings

ChE-1800 H-2: Flowchart Diagrams (last updated January 13, 2013)

Two-way selection. Branching and Looping

table of CoNteNts Chef s Notes Traditional Recipes Smokey Recipes Signature Recipes General Information Time and Temperature Chart

SIMATIC HMI. WinCC flexible 2008 Getting Started - First-Time Users Getting Started. Printout of the Online Help 06/2008 A5E

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement?

Application Unit, MDRC AB/S 1.1, GH Q R0111

MICROSOFT WORD TUTORIAL

Transcription:

Notes on Algorithms, Pseudocode, and Flowcharts Introduction Do you like hot sauce? Here is an algorithm for how to make a good one: Volcanic Hot Sauce (from: http://recipeland.com/recipe/v/volcanic-hot-sauce-1125) 10-12 scotch bonnets or Habanero, serrano, jalapeno 6 cloves Garlic, peeled and chopped 1/3 c Fresh lime juice 1/3 c Distilled white vinegar 2 tbl Dijon style mustard 2 tbl Olive oil 1 tsp Molasses 1/2 tsp Turmeric 1 tbl Salt or to taste 1. Combine the pepper, garlic, lime juice, vinegar, mustard, oil, molasses, turmeric, and salt in a blender and puree until smooth. Correct the seasoning, adding more salt or molasses to taste. 2. Transfer the sauce to a clean bottle. You can use it right away, but the flavor will improve if you let it age for a few days. Volcanic Hot Sauce will keep almost indefinitely, refrigerated or at room temperature. Just give it a good shake before using. As you can see, this algorithm is a really a recipe, that is, a set of step-by-step instructions that takes raw ingredients and produces a tasty result. In general, an algorithm can be described as a procedure to solve a problem. In the context of computer programming, an algorithm, is defined as a: well-ordered collection of unambiguous and effectively computable operations, that when executed, produces a result and halts in a finite amount of time. 1 Characteristics of an Algorithm Well-ordered: the steps are in a clear order Unambiguous: the operations described are understood by a computing agent without further simplification Effectively computable: the computing agent can actually carry out the operation Method for Developing an Algorithm 1. Define the problem: State the problem you are trying to solve in clear and concise terms. 2. List the inputs (information needed to solve the problem) and the outputs (what the algorithm will produce as a result) 3. Describe the steps needed to convert or manipulate the inputs to produce the outputs. Start at a high level first, and keep refining the steps until they are effectively computable operations. 4. Test the algorithm: choose data sets and verify that your algorithm works! 1 definition from: An Invitation to Computer Science (Gersting/Schneider) via http://www.cs.xu.edu/csci170/08f/sect01/overheads/whatisanalgorithm.html (visited 19JUN2009) BJ Furman ME 30 Computer Applications Algorithms, Pseudocode, and Flowcharts.doc 29DEC2010 Page 1 of 6

Structured Programming In 1966, computer scientists Corrado Böhm and Giuseppe Jacopini demonstrated that all programs could be written using three control structures: Sequence, Selection, and Repetition 2. The sequence structure is the construct where one statement is executed after another The selection structure is the construct where statements can executed or skipped depending on whether a condition evaluates to TRUE or FALSE There are three selection structures in C: 1. IF 2. IF ELSE 3. SWITCH The repetition structure is the construct where statements can be executed repeatedly until a condition evaluates to TRUE or FALSE There are three repetition structures in C: 1. WHILE 2. DO WHILE 3. FOR Pseudocode (or Program Design Language) Consists of natural language-like statements that precisely describe the steps of an algorithm or program Statements describe actions 3 Focuses on the logic of the algorithm or program Avoids language-specific elements Written at a level so that the desired programming code can be generated almost automatically from each statement Steps are numbered. Subordinate numbers and/or indentation are used for dependent statements in selection and repetition structures 4. 2 Corrado; B. and Jacopini, G. (May 1966). "Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules". Communications of the ACM 9 (5): 366 371. 3 Some programmers also include data declarations in their pseudocode. I think this is a good idea, because it helps you keep track of the variables that you will need in the algorithm and can help you think through what data types are needed. 4 Some programmers will add an ending keyword on a separate line to make it explicit where a selection or repetition structure ends, for example: ENDIF, ENDWHILE, etc. On the one hand, this is good because it makes it clear where the selection or repetition block ends, but on the other hand it adds to the length of the pseudocode, and such statements will not translate into an actual line of code in C. In a language like Pascal however, they will. BJ Furman ME 30 Computer Applications Algorithms, Pseudocode, and Flowcharts.doc 29DEC2010 Page 2 of 6

Pseudocode Language Constructs 5 Computation/Assignment Compute var1 as the sum of x and y Assign expression to var2 Increment counter1 Input/Output Input: Get var1, var2, Output: Display var1, var2, Selection Single-Selection IF 1. IF condition THEN (IF condition is true, then do subordinate statement 1, etc. If condition is false, then skip statements) 1.1 statement 1 1.2 etc. Double-Selection IF 2. IF condition THEN (IF condition is true, then do subordinate statement 1, etc. If condition is false, then skip statements and execute statements under ELSE) 2.1 statement 1 2.2 etc. 3. ELSE (else if condition is not true, then do subordinate statement 2, etc.) 3.1 statement 2 3.2 statement 3 4. SWITCH expression TO 4.1 case 1: action1 4.2 case 2: action2 4.3 etc. 4.4 default: actionx Repetition 5. WHILE condition (while condition is true, then do subordinate statements) 5.1 statement 1 5.2 etc. DO WHILE structure (like WHILE, but tests condition at the end of the loop. Thus, statements in the structure will always be executed at least once.) 6. DO 6.1 statement 1 6.2 etc. 7. WHILE condition 5 See Pseudocode Standard at http://users.csc.calpoly.edu/~jdalbey/swe/pdl_std.html for more examples. BJ Furman ME 30 Computer Applications Algorithms, Pseudocode, and Flowcharts.doc 29DEC2010 Page 3 of 6

FOR structure (a specialized version of WHILE for repeating execution of statements a specific number of times) 8. FOR bounds on repetition 8.1 statement 1 8.2 etc. Pseudocode Example 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 pseudocode 1. Declare variables: dividend, divisor, quotient 2. Prompt user to enter dividend and divisor 3. Get dividend and divisor 4. IF divisor is equal to zero, THEN 4.1. DO 4.1.1. Display error message, divisor must be non-zero 4.1.2. Prompt user to enter divisor 4.1.3. Get divisor 4.2. WHILE divisor is equal to zero 5. ENDIF 6. Display dividend and divisor 7. Calculate quotient as dividend/divisor 8. Display quotient Flowcharts A graphical tool that diagrammatically depicts the steps and structure of an algorithm or program Symbols 6,7 (the most commonly used ones) Symbol Name/Meaning Symbol Meaning Process Any type of internal operation: data transformation, data movement, logic operation, etc. Input/Output input or output of data Decision evaluates a condition or statement and branches depending on whether the evaluation is true or false Connector connects sections of the flowchart, so that the diagram can maintain a smooth, linear flow Terminal indicates start or end of the program or algorithm Flow lines arrows that indicate the direction of the progression of the program 6 For a comprehensive tutorial on flowcharting, see: Chapin, N. (1970). Flowcharting With the ANSI Standard: A Tutorial, ACM Computing Surveys (CSUR), vol. 2, issue 2, pp. 119 146. 7 MS Word incorporates flowchart symbols in the Draw toolbar. After drawing a symbol, right click to pop-up and select, Add text, to easily insert a text expression into the symbol. BJ Furman ME 30 Computer Applications Algorithms, Pseudocode, and Flowcharts.doc 29DEC2010 Page 4 of 6

General rules for flowcharts All symbols of the flowchart are connected by flow lines (note arrows, not lines) Flowlines enter the top of the symbol and exit out the bottom, except for the Decision symbol, which can have flow lines exiting from the bottom or the sides Flowcharts are drawn so flow generally goes from top to bottom The beginning and the end of the flowchart is indicated using the Terminal symbol Flowchart Constructs (from Deitel & Deitel, 6 th ed., p. 122) The flowchart equivalents for the structured programming constructs described earlier are: BJ Furman ME 30 Computer Applications Algorithms, Pseudocode, and Flowcharts.doc 29DEC2010 Page 5 of 6

Flowchart Example 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. Start Declare variables: dividend, divisor, quotient Prompt user to enter dividend and divisor Get dividend and divisor Display dividend and divisor If divisor = 0 Yes No Display error message, divisor must be non-zero Calculate quotient as dividend/divisor Prompt user to enter divisor Display quotient Get dividend and divisor Stop BJ Furman ME 30 Computer Applications Algorithms, Pseudocode, and Flowcharts.doc 29DEC2010 Page 6 of 6