You must verify the developed algorithm, i.e.. Algorithm Representation – Human Language Use your own language to represent the steps of the developed algorithm.. The Hashemite Univ
Trang 2 Program development cycle.
Algorithms development and
representation.
Examples.
Trang 3 Recall that such cycle and all the techniques
presented in this lecture are the same for any
programming language you want to use not only
Trang 4Problem Definition
To understand the problem is half the solution.
Describe it by precise, up to the
point statements that will make
both analyzing and solving the
problem easier and clearer.
Trang 5Problem Analysis
Determine the inputs, outputs, and the required operations.
Explore all possible solutions.
Pick the easiest, in terms of
implementation cost (space, time) one.
Trang 6Algorithm Development
Algorithm is a procedure that determines the:
Actions to be executed
Order in which these actions are to be executed (which
is called program control and in industry it is called
work flow).
So, it is a plan for solving the given problem
You must validate the developed algorithm, i.e make sure that it solves the correct problem
You must verify the developed algorithm, i.e
make sure that it produces correct results
You must check the feasibility (in terms of the
needed resources, ease of implementation, ease
of understanding and debugging, its expected execution time, etc.) of the developed algorithm
Trang 7Algorithm Representation – Human Language
Use your own language to
represent the steps of the
developed algorithm.
Example: adding two integers:
1 Prompt the user to enter two numbers
2 Add them and store the result
3 Display the sum to the user on the screen
Trang 8The Hashemite University 8
Algorithm Representation – Pseudocode
Artificial, informal language used to develop algorithms
Kind of structured English for describing
algorithms
Middle approach between human language
and C++ code
It is convenient and user friendly
Not actually executed on computers
Allows us to “think out” a program before
writing the code for it
Usually easy to convert into a corresponding C++ program
Consists only of executable statements, i.e
no definitions or declarations
Trang 9Pseudocode Notations I
Input from keyboard: Get
Input from file or memory location: Read
Output to printer: Print
Output to file: Write
Output to screen: Display, Prompt (usually
Trang 10Pseudocode Notations II
Arithmetic computation:
Either use exact operators (+, *, /, -) or
equivalent words of them ( add, multiply, divide, subtract ).
Computations: either use Compute or represent the actual operation mathematically E.g
Compute average or avg = sum/count.
Trang 11Pseudocode Examples
Adding two numbers:
1 Prompt user for number1
2 Get number1
3 Prompt user for number2
4 Get number2
5 Add number1 and number2
6 Set sum to the result
7 Display sum
Other examples (on board):
Deciding the grade (A-F) of a student
Trang 12The Hashemite University 12
Pseudocode is preferred over flowcharts since:
More readable.
Can be converted into C++ code easier.
Flow charts are very similar to the UML (Unified
Modeling Language) activity diagram with some differences in the used symbols
UML is an industry standard for modeling software systems
We will study flowcharts not activity diagrams in this course
Trang 13Flowcharts Symbols
Trang 14Flowchart Examples
Numbers
addition
example.
Trang 15Decision flow chart
Trang 16Looping flow chart
Trang 17Example III
Write a program that reads three
numbers from a file If the
multiplication of these numbers is
greater than or equal their sum then print “Winner” on the screen”,
otherwise print “Loser” on the screen.
Solution:
On board.
Trang 18Class Average Algorithm
grade-point average for a class
the sum of all grades divided by the
number of students
Output: Average grade
Input: Student grades
Processing: Find the sum of the grades;
count the number of students; calculate average
Trang 19Flowchart
Trang 20Program: Determine the average grade of a class
Initialize Counter and Sum to 0
Do While there are more grades
Get the next Grade
Add the Grade to the Sum
Add 1 to the Counter
Loop
Compute Average = Sum/Counter
Display Average
Trang 21 Writing the source code of your solution
that is to convert the developed algorithm into code statements of the used language, i.e C++.
Some useful tips:
Make sure of using correct syntax.
Use meaningful identifiers to make your code more readable.
Add suitable documentation and comments.
Make your code modular or structured as
possible.
Trang 22Execution and Testing
Compilation and debugging.
Types of errors:
Syntax errors (Compile time errors):
Errors caught by compiler
Logical errors (Runtime errors):
Errors which have their effect at execution time
Non-fatal logic errors
program runs, but has incorrect output
Fatal logic errors
program exits prematurely
Tracing to verify your program with
different sets of inputs.
Trang 23 Not always applicable in education, i.e highly required in real world jobs.
Update your code based on:
application more efficient and flexible.
Trang 24Additional Notes
This lecture covers the following
material from the textbook:
Chapter 2: Sections 2.1 - 2.3