Tải bản đầy đủ (.ppt) (24 trang)

C++ lecture 2

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (248.27 KB, 24 trang )

C++ Programming Language
Lecture 2

Problem Analysis and
Solution Representation
The Hashemite University
Computer Engineering
Department
(Adapted from the textbook slides)


Outline





Program development cycle.
Algorithms development and
representation.
Examples.

The Hashemite University

2


Program Development
Cycle



Program development cycle steps:




Problem definition.
Problem analysis (understanding).
Algorithm development:


Ways for algorithm representation:










Human language
Pseudocode.
Flowcharts (also called UML activity diagram).

Coding.
Execution and testing.
Maintenance.

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
The Hashemite University
3
for C++.


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

The Hashemite University

4


Problem Analysis






Determine the inputs, outputs, and
the required operations.
Explore all possible solutions.
Pick the easiest, in terms of
implementation cost (space, time)
one.

The Hashemite University

5


Algorithm 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.
The Hashemite University

6


Algorithm 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.
The Hashemite University


7


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.
Hashemite University
8
no definitions orThedeclarations.


Pseudocode Notations I


Input:





Output:






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
followed by Get).


Values assignment:




Initial values: Initialize, Set.
Results of computation: =, .
Keeping variables for later use: Save, Store.
The Hashemite University

9


Pseudocode Notations II


Arithmetic computation:






Control structures:




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.
Use the actual words as it is: If, If – then – Else,
While, do – While, For – to --, ...

Relational operators:




Write them as words: greater then, less than or
equal, etc.
Or you can use their symbols: >, <=, etc.
The Hashemite University

10


Pseudocode Examples


Adding two numbers:
1.
2.
3.
4.
5.
6.

7.



Prompt user for number1
Get number1
Prompt user for number2
Get number2
Add number1 and number2
Set sum to the result
Display sum

Other examples (on board):


Deciding the grade (A-F) of a student.
The Hashemite University

11


Algorithm Representation
– Flowcharts






Represent the algorithms or computer programs

execution steps graphically.
The American National Standards Institute (ANSI)
published a standard for flowcharts that includes a
definition of their symbols (see next slide).
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
The Hashemite University
12
this course.


Flowcharts Symbols


The Hashemite University

13


Flowchart Examples


Numbers
addition
example.

The Hashemite University

14


Decision flow chart

Chapter 2 - VB.NET by
Schneider

15


Looping flow chart

16



Example 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.
The Hashemite University

17


Class Average Algorithm
Problem: Calculate and report the gradepoint average for a class
 Discussion: The average grade equals
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



18


Flowchart

19


Pseudocode
Program: 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
20


Coding




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.
The Hashemite University

21


Execution 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.
The Hashemite University

22


Maintenance





Not always applicable in education,
i.e. highly required in real world jobs.
Update your code based on:





Discovered and reported bugs.
Customer feedback to make your
application more efficient and flexible.
Upgrade the code.
The Hashemite University

23


Additional Notes


This lecture covers the following
material from the textbook:


Fourth edition:



Chapter 2: Sections 2.1 - 2.3

The Hashemite University

24



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×