CHAPTER 1
INTRODUCTION TO STRUCTURED PROGRAMMING
PROGRAMMING
TERMINOLOGY
An activity consists of writing a program that will process the
input data to produce the required output/document.
INPUT
DATA
Input Output
Processing
(Set of Instructions) (Report)
PROGRAM
written using a programming language, eg. C, Java, C++,
BASIC etc.
Before writing code, it is very important to plan the solution to
the problem – solution algorithm
SOLUTION ALGORITHM
A sequence of logic steps/instructions to the computer/people to perform a
specific task
It is like a recipe : Step by step guide, that need to be followed in the right
sequence
Properties:
Steps must be defined precisely (in detail) and clearly
Process must have an end – finite steps
The correct solution to an identified problem
ALGORITHM
Example : At a Public Phone
¢
MAKE A CALL
ALGORITHM
Steps are in correct order, performed from top to bottom.
Steps can be made up of combination of all control structures (sequence, selection,
iteration)
Indentation is very important to show different control structures
ALGORITHM
1. Give an example of an algorithm of a daily activity e.g. watching a TV
programme.
2. TASK : Write a solution algorithm to add 2 numbers and show the result.
1. Get first number
2. Get second number
3. Add first number and second number,
put the answer in sum
4. Display sum
ALGORITHM
TASK : Write a solution algorithm to
find and display the average
temperature. The maximum and
minimum temperature readings are
accepted as integers.
1. Get min_temp
2. Get max_temp
3. Calculate average
avg_temp = (min_temp + max_temp) / 2
GENERAL STEPS IN PROGRAM
DEVELOPMENT
Define problem
Understand requirements
Determine input, output and processes
Outline solution
Break problem into smaller tasks or steps, draft solution
Develop outline to algorithm
Expand to precise steps – tasks and order
Test algorithm for correctness
Desk checking – walk through the logic of algorithm
Code the algorithm
Run on the computer
Using compiler and test data to check for errors
Document and maintain program
PROGRAM LIFE CYCLE
aka Software/Program development cycle
9 Steps:
1. Problem specification
2. Problem analysis
3. Structured program design
4. Program coding
5. Program debugging
6. Program testing
7. Program installation
8. Program maintenance
9. Program documentation
(1) PROBLEM SPECIFICATION
Definition of problem by user to system analyst/programmer
This might include new user requirements
Need to be read carefully to understand completely the user requirements
Project Management
More Perceptions….
(2) PROBLEM ANALYSIS
Includes :
Initialization
Giving specific/initial value to variables eg. Total = 0
Input definition
Data to be fed into the computer – from keyboard/file
Output definition
layout of the output – screen/printer
Processing requirements
Solution algorithm/sequence of steps required to transform input to the required output
Processing controls
Validation checks on input for accurate processing
Program test plan
A range of test data to ensure the correctness of the program. This includes the calculation of
expected result to verify the actual result produced.
(3) STRUCTURED PROG. DESIGN
Use of proper design techniques to illustrate the
program specification in a systematic way
representing the tasks required in the program
specification showing all input, processing and
output requirements
Examples :
Top-down stepwise refinement method
Pseudocode
JSP
(4) PROGRAM CODING
Translation of design into programming language code e.g. C,
C++, Pascal, QBasic
aka implementation
(5) PROGRAM DEBUGGING
The task of finding and removing errors/bugs from the
program.
3 types of errors:
Syntax – error relating to the programming language used
Logical – error in programming logic
Run-time/execution – error during running/ execution of program
(6) PROGRAM TESTING
Is done using test data specified in the problem analysis.
Compiler is required to detect for Syntax and execution error,
while specific test data to detect for logical error.
repeatedly done until program is running and producing the
output as required
Less time required for testing if the program is well designed.
(7) PROGRAM INSTALLATION
Program is transferred to the user’s machine and made to
work.
3 strategies:
The new program may run concurrently with the old one or
it may completely replaced the old one or
It may phased in gradually
(8) PROGRAM MAINTENANCE
Once the program is installed and operated, it will be
monitored for some time to ensure that program is error-free.
Corrections will have to be made to the affected program/part
of the program.
(9) PROGRAM
DOCUMENTATION
All processes in all stages during the system development must
be documented/written down.
This documentation is vital for future reference/for future
maintenance of the program.
CHARACTERISTICS OF A GOOD
PROGRAM
Correctness – fulfilling user requirements
Reliability – it produces correct output and validates
input data to avoid program crash
Portability – easily installed from one machine to
another with minimal modification
Maintainability – easily followed and modified, not
only to the programmer who wrote it
Readability – clearly documented
Use of resources – fast in processing, uses minimum
storage space and able to run on existing hardware.
STRUCTURED
A programming methodology for constructing
PROGRAMMING
hierarchically ordered modular programs using
standardised control structures
Structured programming helps to write effective, error-
free programs – new/modified.
There are many ways to solve a problem, but some are
more desirable than others.
Original concepts was first published in 1964 by Bohm
and Jacopini.
Designing of programs using a Structure Theorem
which eliminating the GOTO statement and established
a structured framework for representing solution.
STRUCTURED
Structure theorem is based on 3 control structures –
PROGRAMMING
sequence, selection and iteration.
Structured programming incorporates the concepts of
stepwise refinement method and modular design.
Modular design groups tasks which perform the same
function together e.g. printing of report headings,
calculation etc.
Structured Techniques
Some of the techniques for program design:
Structured English
Flowcharts
Top-down stepwise refinement method
Jackson Structured Programming method
Pseudocode etc.
Problem specification
A program is required to
take in 2 numbers as
integers, then calculate
and display the sum.
Structured
A methodEnglish
of specifying unambiguous
narrative used to define procedural logic.
It lacks the precision of meaning and simplicity
when programming.
Example :
1. Accept first integer and second integer
2. Add first integer and second integer and
then put the result in sum
3. Display sum
Flow Chart
START
Get num1 &
Diagrams which show num2
the sequence of steps to
perform a specific Sum := num1 +
num2
programming task
Display
sum
END
Top-Down Stepwise Refinement Method
a process of developing a program by performing
a sequence of refinement steps. First general
solution is outlined and then is broken down into
more detailed steps
Uses basic control structures :
• sequence structure
• selective structure
• iterative structure
Top-Down Stepwise Refinement Method
Example :
Initialization Processing Requirements
none 1. Read num1, num2
Input Definition 2. Calculate
num1, num2 sum = num1 +num2
Output Definition 3. Display sum
Sum = 999 Processing Control
1. Numbers must be integer
Top-Down Stepwise Refinement Method
num1 num2 sum
Test Data and
29 50 79
Expected Result
30 120 150
50.8 20 error
Calculate
Sum
Read num1 Read num2 Sum = num1 Print Sum
+ num2
STRUCTURED CHART
Jackson Structured Program (JSP) Method
Uses the same principle of control
structures but concentrates on both data
structures and program structures
Combine the input/output data structures to
form a program structure, identify the
condition and Actions involved, produce the
pseudocode and implement the
pseudocode
Jackson Structured Program (JSP) Method
Input Data Output
Sum
num1 num2
INPUT DATA STRUCTURE OUTPUT DATA STRUCTURE
Jackson Structured Program (JSP) Method
Calculate Sum
num1 num2 Sum
PROGRAM STRUCTURE
Jackson Structured Program (JSP) Method
List of Conditions
none
List of Actions
A. Input Action
1. Read num1
2. Read num2
B. Output Action
3. Print sum
C. Computation
4. Sum = num1 + num2
Jackson Structured Program (JSP) Method
ALLOCATION OF ACTIONS
Calculate Sum
num1 num2 Sum
1 2 4,3
Pseudocode
aka Schematic Logic
Represent the statements of algorithm in English which makes it easy
to read and write and to convert it to the targeted programming
language.
Translation stage between the program structure diagram and the
program code
BEGIN PROCESS_SUM sequence
Example : READ num1, num2;
sum = num1 + num2;
WRITE sum;
END PROCESS_SUM sequence
Pseudocode properties
Understandable to user
Hierarchically structured and using indentation
to show this structure
Similar structure to the targeted programming
code
Comments are clearly marked
Pseudocode rules
Indentation
Control structures are clear
sequence steps are placed on separate lines, each is ended with
a semicolon. Continuation lines are indented if more than one
line is required.
Use of keywords to show
the structures e.g IF, THEN, ELSE, WHILE etc
The logic e.g. AND, OR, NOT
Keywords may be selected to be independent of the language
descriptions
Pseudocode rules
Block of instructions are grouped together having
meaningful name to describe the function
(modularization)
Keywords and names of blocks are in capital letters,
others are not
Comments are delimited with a beginning asterisks and
ends with semicolon
Use of parenthesis to show precedence of operations to
avoid ambiguities
Make the end of a structure clear using ENDIF, ENDDO
etc
Problem specification
Example 1
A program is required to read three
numbers, add them together and print their
total
Problem analysis
Using IPO Chart (Input-Process-Output Chart)
Problem analysis
(step-wise refinement method)
a. Initialization
none
b. Input Definition
number1 , number2, number3
c. Output Definition
The sum is = 99999.9
d. Processing Requirements
1. Read number1, number2, number3
2. Calculate total
total = number1 + number2 + number3
3. Print total
Problem analysis
(step-wise refinement method)
e. Processing Controls
none
f. Test Data and Expected Results
Variables
Variables/objects in the problem and the
processing steps/program are referenced by
names.
Names must be unique and short (max 25 letters)
but meaningful
Names are used to identify a particular storage
area in the memory.
Good Examples : number, sum, average, min,
max.
Bad Examples: a, b, c, m1, x2
Problem specification
Example 2
A program is required to read in the
maximum and minimum temperatures
on a particular day and calculate and
print the average temperature
Problem analysis
Problem analysis
(step-wise refinement method)
a. InpInitialization
none
b. ut Definition
max_temp, min_temp
c. Output Definition
Average Temperature = 9999.9
d. Processing Requirements
1. Read max_temp, min_temp
2. Calculate average
avg_temp = (max_temp + min_temp) / 2
3. Print avg_temp
Problem analysis
(step-wise refinement method)
e. Processing Controls
1. Temperatures cannot be negative values
2. Average temperature is rounded to 1 d.p.
f. Test Data and Expected Results
Problem specification
Example 3
Design a program to print the student
number and grade given the student number
and four test marks. The grade is based on
the following rules :
Problem analysis
Using IPO Chart (Input-Process-Output Chart)
Problem analysis
(step-wise refinement method)
a. Initialization
no_test = 4
b. Input Definition
studentNo, test1, test2, test3, test4
c. Output Definition
Student No : XXXXXX
Grade : XXXXXXXXX
d. Processing Requirements
1. Read studentNo, test1, test2, test3, test4
2. Calculate average
avg_mark = (test1 + test2 + test3 + test4) / no_test
d. Processing Requirements (Cont..)
3. Decide Grade
If avg_mark >= 80
grade = “Distinction”
else
if avg_mark >= 65
grade = “Merit”
else
if avg_mark >= 50
grade = “Pass”
else
grade = “fail”
4. Print studentNo, grade
Problem analysis
(step-wise refinement method)
e. Processing Controls
1. Test mark should be in the range of 0 to 100
2. Average mark must be integer.
Problem analysis
(step-wise refinement method)
e. Test Data and Expected Results
Problem specification
Example 4
Find the average of 10 integers
which lie between 0 and 100
exclusive
Problem analysis
Using IPO Chart (Input-Process-Output Chart)
Problem analysis
(step-wise refinement method)
a. Initialization
total = 0 , num_count = 0
b. Input Definition
number
c. Output Definition
Average value = 9999.9
Problem analysis
(step-wise refinement method)
d. Processing Requirements
1. While num_count < 10
I. Read number
II. If number > 0 AND number <100
total = total + number
III. Add 1 to num_count
2. Calculate average
avg_num = total / num_count
3. Print avg_num
Problem analysis
(step-wise refinement method)
e. Processing Controls
1. Number must be > 0 and < 100
2. Average is rounded off to 2 d.p.
f. Test Data and Expected Results