Elementary Programming Principles
Elementary Programming Principles
Chapter outline
3.1 Introduction
3.2 Computer programming
3.3 Description of terms used in programming
3.4 Levels of programming languages
3.5 Advantages and disadvantages of low level and high-level languages
3.6 Program development
3.7 Program documentation
3.8 Development of algorithms
3.9 Program control structures
3.10 Designing more complex algorithms
Introduction
Human beings have evolved from the Stone Age to a highly sophisticated and advanced society by inventing things
like the wheel, fire, transistors and today's ultra modem devices like computers. The idea of computers started way
back in the nineteenth century.
The first-generation computers called Electronic Numeric integrator and Calculator (ENIAC 1) were operated by
plugging wires into a control panel that resembles the old telephone switchboards
Computer programming
A computer works by executing a set of instructions known as a program. The term programming refers to the
process of developing computer instructions (programs) used to solve a particular task. It involves use of special
characters, signs and symbols found in a particular programming language to create computer instructions. A
programming language is a special set of symbols that can be translated into machine-readable form by the computer
when arranged in a particular sequence or order. Each language has a special sequence or order of writing characters
executable program by carrying out another process known as linking which joins the object code to all the
other files that are needed for the execution of the program. After the linking process, an executable file (application
file) is generated. This file is stored on a storage media such as a disk with a name that has a unique extension
(.EXE). Examples of executable files are WINWORD.EXE and PM70.EXE used to start Microsoft Word and Adobe
PageMaker 7.0 respectively.
The difference between the interpreters and compilers are summarized below:
Interpreters Compilers
1. Translates the source program one statement at a 1. Translates the entire source code at once before
time. execution.
2. Translates the program each. Time it is run hence 2. Compiled program (object code) can be saved on a
slower than compiling. storage media and run as required, hence
executes faster than interpreted programs.
3. Interpreted object code takes less memory 3. Compiled programs require more memory as the object
compared to compiled program. file are larger.
Levels of programming languages
Many programming languages have been developed over the years. These languages are classified into two major
levels namely:
1. Low-level languages
2. High-level languages
These levels are further subdivided into five generations. The first and second generations consist of low-level
languages while the third to the fifth generation consist of high-level languages.
Low-Level languages
Low-level languages are classified as low because the computer can easily understand them directly or they require
little effort to translate into computer understandable form. These languages are hardware oriented and therefore
they are not portable i.e. a program written for one computer cannot be installed and used on another. Two types of
low-level languages are the machine languages and assembly languages.
It is evident from the above code that it is hard for a person to guess what the program is all about unless they have
special knowledge in machine level programming. Furthermore, different CPU's have different machine codes e.g.
those for the Intel Pentium processors may differ from Motorola or Cyrix processors. Therefore, before decoding
the meaning, a programmer has to know for which CPU the program was written. Obviously, such programs are
hard to understand from the programmer's point of view, but very easy to execute from the computer's perspective.
High-level languages
High-level languages are very close to the human language (English like) and they can be read and understood even
by people who are not experts in programming. There are many types of high-level languages and each of them was
developed to address a particular problem-solving domain while others came about due to advancement in
technology. These languages are machine independent. This means that a programmer concentrates on problem
solving during a programming session rather than how a machine operates.
High-level languages can be classified into five groups:
1. Third generation languages. (3 GLs)
2. Fourth generation languages. (4 GLs)
3. Fifth generation languages. (5 GLs)
4. Object oriented languages. (OOPs)
5. Web scripting languages.
Third generation languages (3 GLs)
Third generation languages (3 GLs) are also called structured or procedural languages. A procedural language
makes it possible to break a program into components called modules each performing a particular task. This is
referred to as structured programming. The structured programming approach emphasizes the following:
1. Large programs can be broken down into smaller sub programs each performing a single task.
2. Use of a few simple control structures in problem solving. These control structures include sequence, selection
and iteration as covered later in this book.
Structured programming offers many benefits because it is flexible, easier to read and modify. Examples of third
generation programming languages include:
Pascal: Pascal was initially developed as an academic language, to help in the teaching and learning of
structured programming.
FORTRAN: (FORmula TRANslator): This language was developed for mathematicians, scientists
and engineers. It enables writing of programs with mathematical expressions.
COBOL: (Common Business Oriented Language): This language is designed for developing programs
that solve business problems e.g. developing data processing applications such as computer-based inventory control
systems.
BASIC: (Beginners All-purpose Symbolic Instructional Code): This language was mainly developed to
enable students to easily learn programming. Basic is a simple general-purpose language used for developing
business and educational applications. Because of its simplicity, it is a powerful tool for students who wish to learn
programming. It was the first high-level language that was available for microcomputer users.
C: This is a programming language mainly used for developing system software such as the operating system. It
is one of the most popular and powerful high-level languages in the business world because of its ability to provide
the programmer with powerful features of low-level languages and at the same time easily understandable as a high-
level language.
Ada: This language was named after the first lady programmer, Ada Lovelace. Ada is
suitable for developing military, industrial and real time systems.
Visual COBOL.
A sample form designed using Visual basic programming language
The programmer in this case simply picks a tool from the toolbox and uses it to create objects such as command
buttons, textboxes etc. on the form by dragging the mouse pointer on the form during design.
include Simula, which was developed in the 1960's. However, C++, Java and
Smalltalk are contemporary languages in this range. Although Java is sometimes associated with
development of web sites it can be used to create whole application programs that do not need a web browser to run.
OOP has contributed greatly to the development of graphical user interface operating systems and application
programs.
Web Scripting languages
Web scripting languages are used to develop or add functionalities on web pages. Web pages are
The language simply consists of tags that are interpreted by the web browser software to display text when
the HTML file is opened on the screen by a web browser software. A tag is a special word enclosed between the less
than and greater than (<>) symbols and the browser can interpret it as a command. For example, to start a HTML
page, one must use the <HTML> tag at the very top of the document. Other languages like Extended HTML (XML)
have been derived directly from HTML with the only difference being that XML allows the user to define their own
tags instead of using the standard HTML tags.
Unlike other programming languages, HTML does not have the declaration part and
control structures (to be covered later in the book). Due of this reason, it is not
considered as a true programming language.
Due to its simplicity, HTML has many limitations and cannot be used alone when it comes to developing functional
websites. Some special blocks of code known as scripts may be inserted in HTML pages using scripting languages
<HEAD>
</HEAD>
<BODY>
<HI> < CENTER> <B> We are the world </B> </CENTER> </HI>
</SCRIPT>
</BODY></HTML>
After typing the entire program, save your file on the desktop as Example.html and then close the notepad. Notice
that the icon to your file on the desktop look like that of the default web browser in your computer.
To view the web page, double click the icon of the file Example .htm1 on the desktop. Figure 3.3. shows an open
webpage.
Line 5: It marks the beginning of the body section. Anything between <BODY> and </BODY> will be executed and
displayed when the webpage starts running.
Line 6: This line will display the text "We are the world" on the screen. The text will be large i.e. size HI and it will
be centered on the screen. The text will also be bolded.
Line 7: It marks the start point of the script. Notice the line LANGUAGE = 'JavaScript' which tells the browser that
the script will be written in JavaScript language.
Line 8: The statement Document. Write tells the browser using JavaScript to write whatever is in the brackets.
Notice that in JavaScript, the end of a statement is marked by a semicolon (;).
Line 9: The word alert displays a message box on the screen with an OK button. Clicking the button makes the
message box to disappear. The text in the brackets appears in the dialog box. Line 10: Closes the script.
Line 11: Marks the end of the body and the HTML code.
Practical activity 3.1
1. Open a text editor program on your computer like Notepad or WordPad. I
2. Type the following program exactly the way it is in the editor:
<HTML>
<HEAD><TITLE> This is my first webpage</TITLE></HEAD> <BODY bgcolor = "red" >
<H l><CENTER><B>Hello World</B></CENTER></HI>
</BODY> </HTML>
3. Save your work as webpage.html on the desktop. Make sure that the Save As Type box reads "All Files" before
clicking the save button in order to avoid saving a text file with two extensions i.e. webpage.html. txt
4. Close your text editor. Notice that your file on the desktop has the icon of the default web browser installed on
your computer. Double click it to view the web page! Figure 3.4 shows a sample of the display expected when
the file is loaded to the browser. If you have a color monitor, it should look as below only that it will have black
bold text on a red background!
5. Check your program and change your background to blue, save then click the refresh button. What happens?
Advantages
1. The CPU understands machine language directly without translation.
2. The processor executes them faster because complex instructions are already broken down into smaller simpler
ones.
3. Low level languages are stable and hardly crash or break down once written.
Disadvantages
1. Low level languages are difficult and cumbersome to use and learn.
2. They require highly trained experts both to develop and maintain programs.
3. Removing errors (debugging) in low level language programs is difficult.
4. Low level programs are machine dependent i.e. they are not transferable from one hardware or software platform
to another. Hence, we say they are not portable.
Disadvantages
1. Their nature encourages use of many instructions in a word or statement hence the complexity of these
instructions causes slower program processing.
2. They have to be interpreted or compiled to machine readable form before the computer can execute them.
Problem recognition
Problem recognition refers to the understanding and interpretation of a particular problem. In order to understand a
problem, you need to look for the key words such as compute, evaluate, compare etc. You
can then rewrite the problem in a more simplified way using the keywords.
A programmer identifies problems in the environment and seeks to solve them by writing a computer program that
would provide the solution. Many of the privileges of automation that we enjoy today are as a result of people who
wrote computer programs to do the tasks. For example, the intelligent control of traffic lights, the autopilot in
aircraft and the use of robots in industry are good examples where problems were recognized and the computer was
used as a tool to solve them. Think of the person who after seeing the tedious nature of typing using a manual
typewriter decided to develop a word processor program!
In any given circumstance, the following three situations can cause the programmer to identify a problem that is
worth solving:
1. Problems (undesirable situations) that prevent an individual or organizations from achieving their
purpose.
2. Opportunity to improve the current program. It can be argued that any unexploited opportunity is
a problem.
3. A new directive given by the management requiring a change in the status quo.
Sample problem
Consider a mathematical problem such as calculating the area of a circle. In this case, the problem is finding the area
of a circle. As a programmer, it will be your interest to develop a program that can be used to calculate the area of
any circle. The equation for calculating the area of a circle is given by A = лr 2.
Problem definition
In problem definition, also referred to as problem analysis, the programmer tries to determine or define the likely
input, processing activities and the expected output using the keywords outlined at the problem recognition stage.
At the end of this stage, the boundaries of the expected program will have been established i.e. a clear view of what
the program needs to accomplish must be in place. In case, several methods are identified that can be used to solve
the same problem, then the best alternative should be chosen.
In our problem of calculating the area of a circle, an investigation reveals that the parameters needed to determine
the area of any circle are:
1.Input: (a) Pie (л) which is a constant.
(b) The radius of the circle.
2. Process: The formula of calculating area of a circle which is л x radius
x radius.
3. Output: The area of the circle (A).
The problem definition stage ends with the writing of a requirements report or document for the new program. It is
this document that enables a programmer to come up with a program design that meets the needs at hand.
Program design
Program design is the actual development of the program's processing or problem-solving logic called the
algorithm. An algorithm refers to a limited number of logical steps that a program follows in order to
solve a problem. It is the programmer who will usually come up with the algorithm after carefully analyzing the
requirements specification. Many programs are not usually made up of one large block of code i.e. they are not
monolithic. Instead, several units called modules work together to form the whole
In modular programming, each module performs a specific task. This approach makes a program flexible, easier to
read and carry out error correction.
The design phase enables the programmer to come up with models of the expected program. The models show the
flow of events and data throughout the entire program from the time data is input to the time the program gives out
expected information. The development of algorithms is covered later in the chapter.
Program coding
Program coding is the actual process of converting a design model into its equivalent program. This is done by
creating the program using a particular programming language. The end result of this stage is a source program that
can be translated into machine readable form for the computer to execute and solve the target problem. Programs
can be written in many different languages but the general trend in the world today is to use programs that are easy
to learn and understand such as, Pascal, C++, Visual Basic and Java.
Below is a comparison of the same program written in Pascal and C++ used to calculate the area of a circle.
Program in Pascal Program in c++
Program Area Circle (input, output); #include<iostream>
Const Pi = 3.142; main ( )
Var {
Radius, Area: real; double radius, area;
Begin const double pi = 3. 142;
Writeln ('Enter the radius'); cout «“Enter the radius"« "\n";
Readln (radius); cin»radius;
Area: = Pi *Radius *Radius; area = pi *radius * radius;
Writeln ('The area is', Area) cout «“The area is"« area «"\n";
End. return 0;
}
Writeln ('The area cout< <"The area Display the value stored in
is' Area)' is" area « "\n"; the variable Area.
,,
End. return 0; Marks the end of the
} program
NB: “\n" is a C++ syntax of directing the character to a new line. It is equivalent to PASCAL’s "In" used in writeln
and readln.
Program documentation
Program documentation is the writing of support materials explaining how the program can be used by users,
installed by operators or modified by other programmers. All stages of program development should be
documented in order to help during future modification of the program.
Documentation can either be internal or external. Internal documentation, is the written non-excutable lines
(comments) in the source program that help other programmers to understand the code statements. External
documentation refers to reference materials such as user manuals printed as booklets. User manuals are common
examples of external documentation There are three target groups for any type of documentation:
1. User oriented documentation: These type enables the user to learn how to use the program as quickly as
possible arid with little help from the program developer.
2. Operator oriented documentation: It is meant for computer operators such as the technical staff. It helps them to
install and maintain the program.
3. Programmer oriented documentation: It is a detailed documentation written for skilled programmers. This
documentation provides necessary technical information to help in future modification of the program. In this
type of documentation, all stages of the program development should be documented because.
(a) There may come a need to revise or modify the program.
(b) Other programmers may think of ways of improving your program.
Development of algorithms
As defined earlier an algorithm can be defined as a limited number of logical steps that a program follows in order to
solve a problem. In most cases, algorithms can be depicted using a number of tools such as decision
tables, decision trees, flowcharts and pseudocodes. In this book, we shall mainly
discuss program flowcharts and pseudocodes because they are the most widely used by programmers.
A) Pseudocode
As mentioned earlier, a pseudocode is a set of statements written in a readable language (usually English-like
phrases) but expressing the processing logic of a program. Some of the words used in a pseudocode may be drawn
directly from a programming language and then mixed with English to form structured statements that are easily
understood by non-programmers and also make a lot of sense to programmers. However, pseudocodes are not
executable by a computer.
Example 3.2
Example 3.3
Write a pseudocode for a program that can be used to classify
people according to age. If a person is more than 20 years;
output "Adult" else output "Young person"
Solution
START
INPUT AGE
IF AGE> 20 THEN
PRINT "Adult"
ELSE
PRINT "Young person"
STOP
B) Program flowcharts
Unlike a pseudocode which expresses ideas in form of short statements, a flowchart does the same using both
statements and special symbols that have specific meaning. Therefore, a flowchart is a diagrammatic representation
of a program's algorithm. The symbols are combined with short text clues which are a form of shorthand understood
by programmers. The special symbols used to draw program flowcharts vary but the most common ones are as
outlined below:
1. Stop/start
Input/output
2. Parallelogram: used to denote an input or output operation. For example, READ A, B, PRINT SUM.
Process
3. Rectangle: Indicates that a processing or data transformation is taking place. For example, SUM=A+B.
Decision
4. Rhombus: Used to specify a condition. A condition must evaluate to a Boolean value (True or false) for the
program to execute the next instructions.
5. Connector: Used as a connecting point or interface for arrows coming from different directions.
IF ... THEN
IF ... THEN selection is used if only one option is available. In this case, all other options are ignored. For example,
in a school environment, the administration may decide to reward only those students who attain a mean mark of
80% and above. Therefore, if a student attains 80% and above, he or she is rewarded while the rest are ignored. The
following pseudocode and flowchart illustrate this condition:
Nested IF
Nested IF selection is used where two or more options have to be considered to make a selection. For example, in an
Olympics track event, medals are awarded only to the first three athletes as follows:
(a) Position 1: Gold medal
(b) Position 2: Silver medal
(c) Position 3: Bronze medal
The pseudocode segment and flowchart extract below shows the structure of the Nested IF selection.
Pseudocode segment
IF position = 1 THEN
medal = "Gold"
ELSE
IF position = 2 THEN
medal = "silver"
ELSE
IF position = 3 THEN
medal = "bronze'
ELSE
medal = "nil"
END IF
ENDIF
ENDIF
Flowchart extract
CASE Selection
CASE selection is an alternative to the Nested IF especially where there are several options to choose from. This
selection is preferred to the Nested IF in order to reduce the many lines of code. However, it is important to note
that the boolean expression for the case selection can only be expressed using integers and alphabetic characters
only. Generally, the boolean expression should be CASE integer OF or CASE Char OF as illustrated in the example
below. In this case, average must be an integer.
Pseudocode
CASE average OF
80..]00: Grade = 'A'
70.. 79: Grade = 'B'
60.. 69: Grade = 'C'
50.. 59: Grade = 'D'
40 .. 49: Grade = 'E'
ELSE
Grade = 'F'
ENDCASE
Flowchart extract
Iteration (looping/Repetition)
Iteration, also referred to a looping or repetition is designed to execute the same block of code again and again until
a certain condition is fulfilled. Iteration is important in situations where the same operation has to be carried out on a
set of data many times. For example, assume that you are writing a program that will use the same formula to
calculate the average marks of three subjects for each student in a class and that the student records are stored in a
computer file.
To calculate the average score for each student in a class, the program should repeatedly read record by record from
the file, and then use the formula after each read operation to calculate the average.
Generally, the three main looping controls are:
WHILE balance> 0 Do
Withdraw cash
Update account
END WHILE
In general, the WHILE loop can be represented using a pseudocode and a flowchart extract as shown below.
Pseudocode segment
WHILE < condition> DO
Statements
ENDWHILE
REPEAT
Withdraw cash
Update account
UNTIL balance = 0;
In this case the condition “balance = 0” is tested after executing
REPEAT
Statements
UNTIL < condition>
FOR loop
The FOR loop is used in circumstances where execution of the chosen statements has to be repeated a predetermined
number of times. For example, consider a program that can be used to calculate the sum of ten numbers provided by
the user. The 'FOR' loop can be used to prompt the user to enter the 10 numbers at most ten times. Once the numbers
have been entered, the program calculates and displays the accumulated sum. The loop is predetermined because it
has to be repeated 10 times as shown by the algorithms below.
Pseudocode
FOR count = 1 to 10 DO
PRINT "Enter a number (N)"
INPUT N
Sum=Sum+N
END FOR
Display SUM
Explanation
The FOR loop in the problem above functions as follows:
1. The loop variable (count) is first initialized to the lower limit, in this case a value of 1.
2. The lower limit is then tested against the upper limit whose value is set at 10.
3. If the lower limit is less than or equal to 10, the program prompts the user to enter a number N, otherwise the
computer exits the loop.
4. After the last statement in the loop has been executed, the loop variable count is incremented by a 1 and stored in
the lower limit i.e. lower limit = count + 1.
5. The lower limit is then stored in count and step (2) is repeated
The FOR loop can also be used to count downwards from the upper limit to the lower limit. For example, in the
above problem, the upper limit 10 can be tested against the lower limit 1 as follows.
FOR count = 10 DOWN TO 1 DO
Therefore, the general format of the FOR loop can be represented using two sets of algorithms.
1. Pseudocode for 'FOR' loop that counts from the lower limit
2. Pseudocode for a 'FOR' loop that counts from the upper limit down to the lower limit
Example 3.7
With aid of a pseudocode and a flowchart, design an algorithm that:
(a) Prompt the user to enter two numbers X and Y.
(b) Divide X by Y. However, if the value of Y is 0, the program should display an error message "Error: Division by
zero".
Solution
Using a pseudocode
START
PRINT "Enter 2 numbers X and Y"
INPUT X, Y
IF Y = 0 THEN
PRINT "Error: Division by zero"
ELSE
Quotient = X/Y
PRINT X, Y, Quotient
ENDIF
STOP
Example 3.8
Tusaidiane Savings Society (TSS) pays 5% interest on shares exceeding 100 000 shillings and 3% on shares that do
not meet this target. However, no interest is paid on deposits in the member's TSS bank account. Design an
algorithm for a program that would:
(a) Prompt the user for shares and deposit of a particular member.
(b) Calculate the interest and total savings.
(c) Display the interest and total savings on the screen for a particular member of the society.
Solution
Using a pseudocode
START
PRINT "Enter member name, share and deposit"
INPUT Name, Shares, Deposit
If shares> 100 000 THEN
Interest = 0.05 x shares
ELSE
Interest = 0.03 x shares
ENDIF
Total savings = Deposit + shares + Interest PRINT Name, Total Saving, Interest
STOP
Example 3.9
In an athletics competition, an athlete is rewarded as follows:
1st position: Gold
2nd position: Silver
3rd position: Bronze
Draw a flowchart for a program that would be used to determine the type of medal to be rewarded to each athlete
Example 3.10
The class teacher of Form 3W in a secondary school requested a programmer to design for her a simple program that
would help her do the following:
(a) Enter the names of students and marks obtained in 8 subjects - Mathematics, English, Kiswahili, Biology,
Chemistry, Business studies, Computer studies and History.
(b) After entering each subject mark, the program should calculate the total and average marks for each student.
(c) Depending on the average mark obtained, the program should assign grade as follows:
(i) Between 80 and 100 - A
(ii) Between 70 and 79 - B
(iii) Between 60 and 69 - C
(iv) Between 50 and 59 - D
(v) Below 50 -E
(d) The program should then display each student's name, total marks and the average grade. Using both a flowchart
and a pseudocode, write an algorithm that shows the design of the program.
Solution
Using pseudocode
START
REPEAT
PRINT "Enter name and subject marks"
INPUT Name, Mathematics, English, Kiswahili, Biology, Chemistry, Business, Computer, History
SUM = Mathematics + English + Kiswahili + Biology + Chemistry +Business + Computer + History
AVG = SUM/8
IF (AVG <80) AND (AVG<100) THEN
Grade = 'A'
ELSE
IF (AVG >70) AND (AVG > 79) THEN
Grade = 'B'
ELSE
IF (AVG >60) AND (AVG >69) THEN
Grade = 'c'
ELSE
IF (AVG >50) AND (AVG >59) THEN
Grade = 'D'
ELSE
Grade = 'E'
ENDIF
ENDIF
ENDIF
ENDIF
PRINT Name, Sum, AVG, Grade UNTIL Count = Number of students
STOP.
Example 3.11
The gross salary of employees in KARU BOOKS ENTERPRISE is based on basic salary and additional benefits as
follows:
(a) Employees who have worked for the company for more than 10 years receive an additional pay of 10% to their
basic salary.
(b) Monthly salary bonus based on monthly sales of books as follows:
Monthly sales Bonus Rate (%)
Above 500 000 15
Between 250 000 and 500 000 10
Below 250 000 5
Draw a flowchart for a program that would be used to calculate the gross salary then output each employee’s basic
salary, gross salary and all benefits.