0% found this document useful (0 votes)
60 views31 pages

Problem Analysi

The document describes the steps involved in problem solving using computers. There are six main steps: 1) problem analysis which involves defining the problem, inputs, outputs, and processing requirements, 2) program design including creating algorithms, flowcharts and pseudocode, 3) coding, 4) compilation and execution, 5) debugging and testing, and 6) program documentation. The document then provides details on problem analysis and program design steps, focusing on defining the problem objective and outputs, specifying input requirements and processing, and evaluating feasibility for problem analysis, and describing algorithms, flowcharts, and their guidelines and advantages for program design.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
60 views31 pages

Problem Analysi

The document describes the steps involved in problem solving using computers. There are six main steps: 1) problem analysis which involves defining the problem, inputs, outputs, and processing requirements, 2) program design including creating algorithms, flowcharts and pseudocode, 3) coding, 4) compilation and execution, 5) debugging and testing, and 6) program documentation. The document then provides details on problem analysis and program design steps, focusing on defining the problem objective and outputs, specifying input requirements and processing, and evaluating feasibility for problem analysis, and describing algorithms, flowcharts, and their guidelines and advantages for program design.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 31

PROBLEM SOLVING

USING COMPUTER
(STEPS)
Computer based problem solving is a systematic process of designing,
implementing and using programming tools during the problem solving
stage. This method enables the computer system to be more intuitive
with human logic than machine logic. Final outcome of this process is
software tools which is dedicated to solve the problem under
consideration. Software is just a collection of computer programs and
programs are a set of instructions which guides computer’s hardware.
These instructions need to be well specified for solving the problem.
After its creation, the software should be error free and well
documented. Software development is the process of creating such
software, which satisfies end user’s requirements and needs.

The following six steps must be followed to solve a problem using


computer.

Problem Analysis

Program Design - Algorithm, Flowchart and Pseudocode


Coding

Compilation and Execution

Debugging and Testing

Program Documentati
PROBLEM ANALYSIS

Problem analysis is the process of defining a problem and decomposing overall system into smaller parts
to identify possible inputs, processes and outputs associated with the problem. This task is further
subdivided into six subtasks namely:

Specifying the Objective :

First, we need to know what problem is actually being solved. Making a clear statement of the problem
depends upon the size and complexity of the problem. Smaller problems not involving multiple
subsystems can easily be stated and then we can move onto the next step of “Program Design”.
However, a problem interacting with various subsystems and series of programs require complex
analysis, in-depth research and careful coordination of people, procedures and programs.

Specifying the Output :

Before identifying inputs required for the system, we need to identify what comes out of the system.
The best way to specify output is to prepare some output forms and required format for displaying
result. The best person to judge an output form is the end user of the system i.e. the one who uses the
software to his benefit. Various forms can be designed by the programmer which must be examined to
see whether they are useful or not.

Specifying Input Requirements :

After having specified the outputs, the input and data required for the system need to be specified as
well. One needs to identify the list of inputs required and the source of data. For example, in a simple
program to keep student’s record, the inputs could be the student’s name, address, roll-numbers, etc.
The sources could be the students themselves or the person supervising them.

Specifying Processing Requirements :


When output and inputs are specified, we need to specify process that converts specified inputs into
desired output. If the proposed program is to replace or supplement an existing one, a careful
evaluation of the present processing procedures needs to be made, noting any improvements that could
made. If the proposed system is not designed to replace an existing system, then it is well advised to
carefully evaluate another system that addresses a similar problem.

Evaluating the Feasibility :

After the successful completion of all the above four steps one needs to see whether the things
accomplished so far in the process of problem solving are practical and feasible. To replace an existing
system one needs to determine how the potential improvements outperforms existing system or other
similar system.

Problem Analysis Documentation

Before concluding the program analysis stage, it is best to record whatever has been done so far in the
first phase of program development. The record should contain the statement of program objectives,
output and input specifications, processing requirements and feasibility.

PROGRAM DESIGN

The second stage in software development or problem solving using computer cycle is program design.
This stage consists of preparing algorithms, flowcharts and pseudocodes. Generally, this stage intends to
make the program more user friendly, feasible and optimized. Programmer just requires a pen and
pencil in this step in which the tasks are first converted into a structured layout without the involvement
of computer. In structured programming, a given task is divided into number of sub-tasks which are
termed as modules. Each process is further divided until no further divisions are required. This process
of dividing a program into modules and then into sub-modules is known as “top down” design approach.
Dividing a program into modules (functions) breaks down a given programming task into small,
independent and manageable tasks.
In prograem design we are mainly interested in designing:

ALGORITHMS(CHARECYERISTICS., GUIDELINES & ADVANTAGES)

ALGOROTHMS INTRODUCTION

An algorithm is an effective step-by-step procedure


for solving a problem in a finite number of steps. In
other words, it is a finite set of well-defined
instructions or step-by-step description of the
procedure written in human readable language for
solving a given problem. An algorithm itself is
division of a problem into small steps which are
ordered in sequence and easily understandable.
Algorithms are very important to the way
computers process information, because a
computer program is basically an algorithm that
tells computer what specific tasks to perform in
what specific order to accomplish a specific task.
The same problem can be solved with different
methods. So, for solving the same problem,
different algorithms can be designed. In these
algorithms, number of steps, time and efforts may
vary more or less.

Characteristics of an Algorithm
An algorithm must possess following
characteristics :

1:Finiteness: An algorithm should have finite


number of steps and it should end after a finite
time.
2: Input: An algorithm may have many inputs or no
inputs at all.
Output: It should result at least one output.
3:Definiteness: Each step must be clear, well-
defined and precise. There should be no any
ambiguity.
4:Effectiveness: Each step must be simple and
should take a finite amount of time.
Guidelines for Developing an Algorithm
Following guidelines must be followed while
developing an algorithm :

An algorithm will be enclosed by START (or BEGIN)


and STOP (or END).
To accept data from user, generally used
statements are INPUT, READ, GET or OBTAIN.
To display result or any message, generally used
statements are PRINT, DISPLAY, or WRITE.
Generally, COMPUTE or CALCULATE is used while
describing mathematical expressions and based on
situation relevant operators can be used.
Example of an Algorithm
Algorithm : Calculation of Simple Interest

Step 1: Start
Step 2: Read principle (P), time (T) and rate (R)
Step 3: Calculate I = P*T*R/100
Step 4: Print I as Interest
Step 5: Stop
Advantages of an Algorithm
Designing an algorithm has following advantages :

Effective Communication: Since algorithm is written


in English like language, it is simple to understand
step-by-step solution of the problems.
Easy Debugging: Well-designed algorithm makes
debugging easy so that we can identify logical error
in the program.
Easy ann Efficient Coding: An algorithm acts as a
blueprint of a program and helps during program
development.
Independent of Programming Language: An
algorithm is independent of programming
languages and can be easily coded using any high
level language.
Disadvantages of an Algorithm
An algorithm has following disadvantages :

Developing algorithm for complex problems would


be time consuming and difficult to understand.
Understanding complex logic through algorithms
can be very difficult.

FLOWCHARTS

(GUIDELINES,ADVANTAGES,DIS
ADVANTAGES )
Flowchart is basically a pictorial or diagrammatic
representation of an algorithm using standard
symbols.
In other words, flowchart is a graphical
representation that explains the sequence of
operations to be performed in order to solve a
problem under consideration.

Standard Flowchart Symbols


To express different operations in the flowchart
various standard symbols are used. All symbols are
connected among themselves in order to show the
flow of information and processing. Different
symbols as prescribed by American National
Standard Institute (ANSI) which are frequently
required while drawing flowchart are tabulated
below:
Flowchart Symbols
Figure: Flowchart Symbols
Guidelines for Preparing Flowchart
Following guidelines must be followed while
preparing the flowcharts:

Standard symbols should be used while drawing


flowchart.
Ensure that flowchart has START (or BEGIN) and
STOP (or END).
Flowchart should be neat, clean and easy to follow.
There should be no any ambiguity.
The usual direction of flowchart is from top to
bottom or from left to right.
The terminal symbol, that is, START/BEGIN or
STOP/END should have only one flow line.
Only one flow line should come out from process
symbol.
Only one flow line should enter a decision symbol,
but two or three flow-lines, one for each possible
answer, can leave the decision symbol.
If the flowchart is lengthy and complex connector
symbol should be used to reduce the number of
flow lines.
Avoid intersection of flow lines.
Use annotation symbol to describe steps more
clearly.
Example of Flowchart
Flowchart example for calculating simple interest is
shown below:

Flowchart for calculating simple interest


Figure: Flowchart for calculating simple interest
Advantages of Flowchart
Drawing flowchart while solving any problem has
following advantages:

Effective Communication : Flowcharts are better


way of communicating the logic of the system.
Effective Analysis : Using flowchart problem can be
analyzed more efficiently.
Easy Debugging and Efficient Testing : The
Flowchart helps in debugging and testing process.
Efficient Coding : The flowcharts are very useful
during program development phase.
Proper Documentation : Flowcharts serves as a
good program documentation, which is needed for
various purpose.
Efficient Program Maintenance : Maintenance of
operating programs becomes easy with the help of
flowchart.
Disdvantages of Flowchart
Flowchart has following disadvantages:

Complex Logic: For complicated logic, flowchart


becomes complex and clumsy.
Difficulty in Modifications: If change is required in
the logic then flowchart needs to be redrawn and
requires a lot of time.

Pesudocodes(GUIDELI
NES, ADVANTAGES&
DISADVANTAGES)
Pseudocode is structured English for describing
algorithms concisely. It is made up of two words,
namely, pseudo meaning imitation and code
meaning instructions. As the name suggests,
pseudocode does not obey the syntax rules of any
particular programming language i.e. it is not a real
programming code. It allows the designer to focus
on main logic without being distracted by
programming languages syntax.

Guidelines for Preparing Pseudocode


Following points should be remembered while
preparing pseudocode :

Pseudocode will be enclosed by START (or BEGIN)


and STOP (or END).
Pseudocode should be concise so ignore
unnecessary details.
To accept data from user, generally used
statements are INPUT, READ, GET or OBTAIN.
To display result or any message, generally used
statements are PRINT, DISPLAY, or WRITE.
Generally used keywords are capitalized while
preparing pseudocode.
Example of Pseudocode
Pseudocode : Calculation of Simple Interest

Step 1: START
Step 2: READ P, T, R
Step 3: I = P*T*R/100
Step 4: PRINT I
Step 5: STOP
Advantages of Pseudocode
Preparing pseudocode while solving any problem
through computer has following advantages :
It allows the designer to focus on main logic without
being distracted by programming languages syntax.
Since it is language independent, it can be
translated to any computer language code.
It allows designer to express logic in plain natural
language.
It is easier to write actual code using pseudocode.
Unlike algorithms, pseudocodes are concise so
pseudocodes are more readable and easier to
modify.
Disdvantages of Pseudocode
Pseudocode has following disadvantages :

There are no accepted standards for writing


pseudocodes and designer use their own style while
writing pseudocodes.
Pseudocode cannot be compiled and executed so its
correctness cannot be verified by using computers.

CODING(PROGRAMMIN
G)
In this stage, process of writing actual
program takes place. A coded program
is most popularly referred to as a
source code. The coding process can be
done in any language (high level and
low level). The actual use of computer
takes place in this stage in which the
programmer writes a sequence of
instructions ready for execution. Coding
is also known as programming.

Good program possess following


characteristics :

Comment clauses in the program help


to make the program readable and
understandable by people other than
the original programmer.
It should be efficient.
It must be reliable enough to work
under all reasonable conditions to
provide a correct output.
It must be able to detect unreasonable
error conditions and report them to the
end user or programmer without
crashing the system.
It should be easy to maintain and
support after installation

COMPILATION AND
(EXECUTION PROCESS)
Generally coding is done in high level
language or low level language (assembly
language). For the computer to understand
these languages, they must be translated
into machine level language. The translation
process is carried out by a
compiler/interpreter (for high level
language) or an assembler (for assembly
language program). The machine language
code thus created can be saved and run
immediately or later on.

In an interpreted program, each program


statement is converted into machine code
before program is executed. The execution
occurs immediately one statement at a time
sequentially. BASIC is one of the frequently
used interpreted language. In contrast to
interpreter, a compiler converts a given
source code into object code. Once an
object code is obtained, the compiled
programs can be faster and more efficient
than interpreted programs.
Compilation Process
A source code must go through several
steps before it becomes an executable
program. In the first step the source code is
checked for any syntax errors. After the
syntax errors are traced out a source file is
passed through a compiler which first
translates high level language into object
code (A machine code not ready to be
executed). A linker then links the object
code with pre-compiled library functions,
thus creating an executable program. This
executable program is then loaded into the
memory for execution. General compilation
process is shown in Figure below:
Compilation Process
Figure : Compilation Process

DEBUGGING AND
TESTING (ERROR AND
TYPES INCLUDED)

To understand
debugging and testing
more intuitively, lets
first consider learning
about different types of
error that occurs while
programming.

Error
Error means failure of compilation and
execution of the computer program or not
getting expected results after execution.
Debugging and testing are systematic
process during program development cycle
to avoid errors in the program. Different
types of error that we encounter while
programming are listed below :

Types of Error:
Syntax Error : Syntax error is a violation of
programming rules while writing it. A syntax
error does not allow the code to run. Syntax
error can be easily detected during the
compilation process using compiler.
Logical Error : Logical error occurs when a
programmer has applied incorrect logic for
solving problem or left out a programming
procedure. When logical error occurs
program executes but fails to produce a
correct result.
Run Time Error : Run time error occurs
during the execution of program. Stack
overflow, divide by zero, floating point error
etc. are examples of runtime error.
Debugging
Debugging is the process of finding errors
and removing them from a computer
program, otherwise they will lead to failure
of the program. Even after taking full care
during program design and coding, some
errors may remain in the program and
these errors appear during compilation or
linking or execution. Debugging is generally
done by program developer.

Testing
Testing is performed to verify that whether
the completed software package functions
or works according to the expectations
defined by the requirements. Testing is
generally performed by testing team which
repetitively executes program with intent to
find error. After testing, list of errors and
related information is sent to program
developer or developmen team.

Debugging vs Testing
Major differences between debugging and
testing are pointed below :

It is the process of fixing errors.


It is the process of finding as many errors as
possible.

Debugging is done during program


development phase.

Testing is done during testing phase which


comes after development phase.

Debugging is done by program developer.


Testing is generally carried out by separate
testing team rather than program
developer.

Program
(Programmer's and
User's) Documentation
The program documentation is the process of
collecting information about the program. The
documentation process starts from the problem
analysis phase to debugging and testing.
Documentation consists two types of
documentation, they are:
Programmer's Documentation
User's Documentation
Programmer's Documentation
Programmer’s documentation contains all the
technical details. Without proper documentation it
is very difficult even for the original programmer to
update and maintain the program. A programmer’s
documentation contains the necessary information
that a programmer requires to update and maintain
the program. These information includes:

Program analysis document, with a concise


statement of program’s objectives, outputs and
processing procedures.
Program design documents with appropriate
flowcharts and diagrams.
Program verification documents for outlining,
checking, testing and correction procedures along
with the list of sample data and results.
Log used to document future program revision and
maintenance activity.
User's Documentation
User documentation is required for the end user
who installs and uses the program. It consists
instructions for installation of the program and user
manual.

You might also like