You are on page 1of 61

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

You might also like