Introduction
Do you like hot sauce? Here is an ‘algorithm’ for how to make a good one:
Volcanic Hot Sauce
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 | 21JAN2010
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 structures4 .
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 | 21JAN2010
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 OF
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 | 21JAN2010
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.
2.
3.
4.
Declare variables: dividend, divisor, quotient
Prompt user to enter dividend and divisor
Get dividend and divisor
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
ENDIF
Display dividend and divisor
Calculate quotient as dividend/divisor
Display quotient
5.
6.
7.
8.
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.
Connector – connects sections of the flowchart, so that the diagram can maintain a smooth, linear flow
Input/Output – input or output of data Terminal – indicates start or end of the program or algorithm
Decision – evaluates a condition or statement and branches depending on whether the evaluation is true or false 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 | 21JAN2010
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, 6th 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 | 21JAN2010
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
Display error message, “divisor must be non-zero”
No
Calculate quotient as dividend/divisor Display quotient
Prompt user to enter divisor
Get dividend and divisor Stop
BJ Furman | ME 30 Computer Applications | Algorithms, Pseudocode, and Flowcharts.doc | 21JAN2010
Page 6 of 6
You May Also Find These Documents Helpful
-
Step 9: Explain what you think will be displayed to the screen in Step 8. (Reference:…
- 365 Words
- 2 Pages
Satisfactory Essays -
Step 1: Examine the following algorithm as a base for how the program should flow. (Reference: Designing a Program, page 31).…
- 777 Words
- 4 Pages
Satisfactory Essays -
7. Heated strongly for five minutes. During the heating, used the stirring rod to put any of the hydrate onto the hottest part of the dish.…
- 604 Words
- 3 Pages
Good Essays -
Describe your answer for each item below in complete sentences, whenever it is necessary. Show all of your calculations and processes for the following points:…
- 1085 Words
- 12 Pages
Powerful Essays -
Up to this point, you have identified the processes the program must perform, but you have not given any consideration to exactly how the processes work together to solve the problem. At this point, you must generate a description of the processing using pseudocode, a natural language description of the processing the application must perform.…
- 453 Words
- 4 Pages
Powerful Essays -
This assignment addresses the learning objective “Explain the types of input and output devices and their…
- 344 Words
- 3 Pages
Satisfactory Essays -
3. Design an algorithm in pseudocode to solve the problem. Make sure to include steps to get each input and to report each output.…
- 662 Words
- 3 Pages
Satisfactory Essays -
Your conclusion must comprise a summary of the problems and the reason you selected a particular method to solve them. It would also be appropriate to include a statement as to what you learned and how you will apply the knowledge gained in this exercise to real-world situations.…
- 495 Words
- 2 Pages
Satisfactory Essays -
· Investigate the problem by obtaining necessary information (see Ch. 8). List the questions must answer to understand the problem. Identify a source of information to answer each question.…
- 580 Words
- 3 Pages
Satisfactory Essays -
4) Add 10 drops of pectinase to the apple sauce and stir for 1 minute…
- 573 Words
- 3 Pages
Good Essays -
1 lb bag of dry red kidney beans (you could also use a can but the flavor is much less desirable) Making them from scratch yields fabulous tasting beans! Do not skimp on these!…
- 491 Words
- 2 Pages
Good Essays -
Use what you have learned in class and the following source documents to answer the…
- 3172 Words
- 26 Pages
Powerful Essays -
Meatloaf provokes images of a simple dish, a brick on a plate with classic connotations of blandness and mediocrity. This recipe is simple in its description, yet complex in its flavors and texture. This iteration of the recipe incorporates the flavor of various meats, spices and textures without the perpetual salty coating of brown gravy or weak red sauce usually associated with dish. Hopefully if one follows this recipe they also can become enlightened by the experience and view the proverbial “meatloaf night” as a culinary treat. This recipe is somewhat larger in volume than most meatloaf recipes. This is not a depiction of the chef’s physique or appetite, but is based upon the fact that leftover meatloaf is better the next day.…
- 319 Words
- 2 Pages
Satisfactory Essays -
Choose from the list of problem scenarios below. Using the steps involved in problem solving that were discussed in the chapter, describe how you would go about solving this problem.…
- 723 Words
- 3 Pages
Satisfactory Essays -
algorithms - An algorithm is a set of instructions for solving a problem or completing a process…
- 540 Words
- 3 Pages
Good Essays