Sie sind auf Seite 1von 44

c X Introduction to

Programming

LEARNING OUTCOMES
At the end of this topic, you should be able to:
1. Define the meaning of programming and computer program with
accuracy; and
2. List six process steps that are involved in developing a program.

X INTRODUCTION
Since its introduction, computers have helped a lot in making everyday human
tasks easier. With the help of a computer, we can pay bills, do banking, even
shop without moving from our seat. You would have used the Automatic Teller
Machine (ATM). Imagine what would happen if computers are not used?

Situations involving computer usage is becoming more important day by day.


Equally important is computer programming. Programming is a list of instructions
that is followed by a computer. Without it, a computer will not be able to function.
Programming languages allow us to write these programs and therefore
communicate with the computer.

This chapter will discuss programming concepts and the processes that are
involved in developing a program.
ACTIVITY 1.1

Before you start reading, what can you say about a program?

1.1 INTRODUCTION AND DEFINITIONS

If we observe, human behaviour and thoughts are always based on a logical


sequence. These behaviour and thoughts happen automatically without us
realising them. LetÊs look at a behaviour that we normally do. To on a tap, the
following sequence is needed:

1. lift hand to hold tap head


2. rotate tap head anti clock-wise (from right to left).

Being aware of doing a task according to a sequence is very important in human


life. The sequence is achieved through a process called programming. In our daily
routine, we often have to do the same task repeatedly. This may make use feel
bored or lose interest. This results in the task not being completed and the end
quality dropping. Programs prevent humans from having to do the tasks
repeatedly.

In programming language it is defined as planning, scheduling or doing a


task/event. Programming in the computer field is to configure a computer so that
it does a particular task.

Computer programming is a process to plan a set of sequential instructions


to be run by a computer.

Whereas

Computer program is a sequential instruction which determines the steps to


be taken by a computer.
TOPIC 1 INTRODUCTION TO PROGRAMMING W 3

1.2 PROGRAM DEVELOPMENT PROCESS

To simplify program development, we can divide the programming process into


two phases:
• the problem solving phase and
• the implementation phase.

Each of these phases is divided into several parts. Refer to Figure 1.1 which
shows the relationship between these two phases.

Figure 1.1: Programming process

Now, let us look at the two phases in detail.

1.2.1 Problem Solving Phase


There are three steps that must be taken to solve any problem, which are:
• To perform a problem analysis,
• Get a general algorithm design and
• Walkthrough the algorithm.
TOPIC 1 INTRODUCTION TO PROGRAMMING W 4

We will discuss in detail how these three steps are carried out.

(a) Analysis
Analysis is the process of understanding and defining a problem. At this
stage, a programmer should try to state the problem clearly and understand
what needs to be done to solve the problem. We may need to know more
detailed information from the persons who have identified the problem.

During analysis, ensure you understand and define the problem correctly.

(b) General Design (Algorithm)


Algorithm is a set of logical sequential steps used to solve a problem.

The process of creating an algorithm is called the problem solving design


process. Normally, writing an algorithm is the most challenging part in the
problem solving process.

Most computer algorithms have at least three sub-problems as stated below.


1. Data collection
2. Process calculations
3. Output results

Once the sub-problem is identified, we can solve each sub-problem one at a time.

(c) Walkthrough
Walkthrough is one of the steps in algorithm design that is almost always
forgotten.

To walkthrough an algorithm, we must perform each step of the algorithm


just as it would be done by the computer to see if the algorithm really does
solve the problem. This process is called tracing the algorithm. To perform
this step, we must create an input sample for the algorithm and check it
step-by-step. This is the time to find errors and to correct them.

1.2.2 Implementation Phase


The implementation phase also consists of three steps which are:
• Detailed problem solving in the form of program code,
• Carrying out tests on the program code and
• Maintaining the program code.
TOPIC 1 INTRODUCTION TO PROGRAMMING W 5

LetÊs read on to know more about the steps mentioned above.

(a) Detailed Design (Program Code)


Algorithm implementation process involves writing a program code. We
need to interpret each algorithm step into one or more statements in
programming language.

(b) Testing
Testing a program code is a process of running a program and checking for
errors. This is to ensure the program does what it is intended to do.
Normally, testing is carried out by running the program code repeatedly
using a set of different data to ensure it functions properly for every
situation. Large input size that cannot be tested by hand has to be tested
now. If an error is found, the program needs to be modified until it
produces the right output or answer.

(c) Maintenance
Maintaining and updating a program code involves tasks in modifying the
program code to eliminate errors that could not be found before and update
it according to current changes in the organisationÊs rules and policies.

Usually, maintenance work is carried out every five years and the
programmer that developed the program would have left the organisation.
Therefore, it is important for a programmer to write programs that are easy
to read, understand and maintain. Thus, we must adhere to programming
styles that are accepted by the programming society.

You have now been briefed on all the processes involved in the problem
solving phase and the implementation phase. If you are still not clear,
please read through the text again.

To ensure you have understood what you have learnt, answer the following
questions.
TOPIC 1 INTRODUCTION TO PROGRAMMING W 6

SELF-CHECK 1.1
1. What is meant by a program?
2. At which phase is the algorithm created?
3. At which phase is the written algorithm translated into a
computer program?
4. The programming process is divided into two. State the
processes that are involved in each.

• Computer programming is a process to plan a set of sequential instructions to


be run by a computer.
• Computer program is a sequential instruction which determines the steps to
be taken by a computer.
• To simplify program development, we can divide the programming process
into two phases:the problem solving phase and the implementation phase.
• There are three steps that must be taken to solve any problem, which are: to
perform a problem analysis, get a general algorithm design and walkthrough
the algorithm.
• The implementation phase also consists of three steps which are: detailed
problem solving in the form of program code, carrying out tests on the
program code and maintaining the program code.

Algorithm Computer programming


Computer program Walkthrough
c X Algorithm

LE ARNING OU TCOME S
At the end of this topic, you should be able to:
1. Solve problems by using two algorithm representative techniques;
2. Test the algorithm execution process with step-by-step detailing; and
3. Build a complex algorithm by using selective or repetitive control
structure.

X INTRODUCTION
In Topic 1 you were introduced to two main phases in developing a program.
One was the problem-solving phase. In this phase, you were given some
explanation on algorithms. Therefore in this topic, you are required to focus
entirely on algorithms from the aspect of representation until implementation.
From a historical point of view, Alkhwarizmi (Algorithm) was a mathematician.

In programming, algorithm is a very important process.

Algorithm is a step-by-step problem-solving method in a limited time.

This means that the steps will have an end and will stop. At every step, the
following action taken should uniquely be determined by instructions and
data obtained at that time.
2.1 ALGORITHMS REPRESENTATION

Algorithms can be conceptual or abstract. Therefore, we need a way to


represent it so that it can be presented to humans and computers. There are
two algorithm representations that will be discussed here namely are flow
chart representation and the pseudo-code representation.

2.1.1 Flow Chart Representation


Let us have a look at the first algorithm representation which is the flow chart.
Activities in the algorithm representation are represented by geometry nodes.
Each node represents different activities. These nodes will be joined using
arrows that show the flow or a sequential activity. Below are some symbols
that are used in a flow chart representation.

Figure 2.1: Symbols in flowchart representation

In order to represent algorithms by using flow charts, we can use the following
as a guide:
1. Identify the symbol used according to its function.
2. Get the right formula.
3. Make sure that appropriate data is used.
4. Test the flow chart by tracing each symbol and comparing it with the
expected output.
TOPIC 2 ALGORITHM W 9

Based on the guide given above, let us see an example as in Figure 2.2 of a flow
chart on starting a car engine.

Figure 2.2: Flow chart on process of starting a car engine

ACTIVITY 2.1

Sketch a flow chart for the process of going for a tutorial session.

2.1.2 Pseudo-Code Representation


Pseudo-code is another technique of representing algorithms.

Pseudo-code or false codes are instructions that mimic the program code
(actual program instructions).
TOPIC 2 ALGORITHM W 10

Where the flow charts uses diagrams, pseudo-codes are written using phrases or
words. To represent algorithms using pseudo-codes, we need to follow the rules
of writing pseudo-codes as follows:
1. Every step in an algorithm should not have more than two actions.
2. Steps in an algorithm are executed in sequence.
3. The word end or stop is used to show that the process has been ended.
4. The selection structure is also stated in shapes which will also be explained
later. (Refer to Part 2.4)
5. Loops are stated in one of the shapes which will be explained later. (Refer to
Part 2.5)
6. The action that is allowed includes declaring variable names to identify the
set of variables that have a corresponding data type. Types of data might be
integer, real, character or others.
7. To give an initial value to a variable (if applicable).
8. To use arithmetic symbols to state the addition, subtraction, multiplication,
division operations and brackets to show operation priority.
9. A ® B represents exchanging the value of A with B.
10. The relational operators below are used to state the relationship between
two values:
(a) < Less than
(b) <= Less than or equals to
(c) > More than
(d) >= More than or equals to
(e) ! = Not equal
(f) == Equal

11. The use of sentences is allowed if it states the meaning accurately.


12. Read/Input/Get shows the data given to the algorithm as input.
13. Print/Report/Write/Output/Display shows the result obtained by
algorithm.
TOPIC 2 ALGORITHM W 11

Example 2.1
Change mm unit to kg.

The pseudo-code is:


1.0 Start.
2.0 Read mm_weight
3.0 kg_weight = mm_weight /1000
4.0 Print kg_weight
5.0 End

If you want to test your understanding of this topic, try to answer the
questions below.

SELF-CHECK 2.1

Write a pseudo-code to calculate the total savings after getting a


dividend of 12%.

2.2 ALGORITHM DEVELOPMENT METHOD

In order to build an algorithm, we need intelligence and skills. Skill can be


improved through practice. There are several general strategies in the process of
problem solving that can help us build algorithms. The divide and conquer
method is one of the useful approaches. By using this method, the original
problem can be broken into sub-problems. Each sub-problem can then be solved
(conquered).

Below is a guide that we can follow when building algorithms:


1. Identify the input and output of a problem.
2. Identify and list the sub-problems. Each problem must be solved in order to
get the results needed.
3. For every sub-problem, identify and list the steps that must be taken to
solve it.

Next, we will see how each step is executed.


TOPIC 2 ALGORITHM W 12

2.2.1 Identify Input and Output of Problems

ACTIVITY 2.1

You have been introduced to two techniques of algorithm representation.


Can you tell which one is more effective? Why?

To solve a problem, we must first understand the problem. To do that, we need to


identify the input and output of the problem. Why do we need to know the input
and output? This is because the process to get a solution to most of the problems
is usually made up of three levels, namely to get input, to do processing on the
input and to display the output or the results obtained. This process is shown in
Figure 2.3.

Figure 2.3: Problem-solving process

Input is all the information that is relevant, needed to execute a process. Usually
the information of the input is inserted in the problem statement given.

Output is the result that is needed. The format on how the output is to be displayed
has also to be identified during the construction of the algorithm. An example of
the output format for display is usually in the form of a table. Below is the input
and output that has been identified for some examples of problems.

Example 2.2

Determine whether a given year is a leap year or not.


Input: A year
Output: Message „Leap Year‰ or „Not Leap Year‰
TOPIC 2 ALGORITHM W 13

Example 2.3

Calculate the average


Input: Marks of every student
Output: Average marks

Example 2.4

Given the buying and selling price of an item, determine whether profit
was made, or broke even or loss incurred
Input: i. Buying price (in ringgit)
ii. Selling price (in ringgit)
Output: Message "Profit" or "Break Even" or "Loss"

When the input and output are known, we need to build a list of formula that
will relate to each other. Based on Example 2.4, the general formula obtained is:

Difference = Selling price ă Buying price


If Difference > 0, Output = „Profit‰
If Difference = 0, Output = „Break Even‰
If Difference < 0, Output = „Loss‰

Notice that we have been introduced to a variable which is ÂDifferenceÊ. It is to


identify the relationship between the input and output. In some cases, a few
assumptions have to be made to get relationships like this. The problem
modelling process used by identifying variables and the relationships between
them is called abstraction.

To ensure that you have understood what has been learnt, try to answer the
following question. Good Luck!

SELF-CHECK 2.2

Write a formula for the Example 2.3 above.

Before continuing to the next topic, it would be good to rest for a while, because
the next topic needs your full attention.
TOPIC 2 ALGORITHM W 14

2.2.2 Identifying Sub-problems


Often the problems that we get are not problems that can be solved easily. To solve
complex problems we have to break them into smaller sub-problems. Each sub-
problem has to be solved to get the results needed. Notice how this process is done
by looking at the next example.

Example 2.5
Given the name of a student, calculate the number of the letter ÂaÊ in the
name.

Solution
The name of a student can be made up of more than one word. To count
the number of ÂaÊs in it, we need to get each letter and compare them. We
need to have a variable to act as a counter to track the number of ÂaÊs that
exist. The letter ÂaÊ can exist in uppercase or lowercase letter. For example,
in the name "Tatenda Amani" there are 4 'a' s.

Initial Algorithm (Main Steps)


1. Start.
2. Input studentÊs name: studName.
3. Count the number of Âa's in studName.
4. Report result.
5. End.

Step 2 and 4 can be done easily. But step 3 needs refinement. Step 3 looks like a
sub-problem that seems easy but if it is to be solved using a computer; we need
to have detailed steps on how it is to be executed by a computer. Notice how the
refinement is done by using the guide given next.

2.2.3 Solving Sub-problems


For every sub-problem, we need to identify and list the steps taken to solve it.
This method is called refining step-by-step.

(a) Refining Step-by-step Method


We identified five main steps in sub-topic 2.2.2. Step 3 needs detailed
explanation. Refer to Figure 2.4 for explanation on this method.
TOPIC 2 ALGORITHM W 15

Figure 2.4: Step-by-step Refinement Concept

Next is the complete explanation on algorithm that is re-written for Example 2.5.

1. Start.
2. Input studentÊs name: studName.
3. Count the number of Âa's in studName.
3.1 Set n = 1 and totalA = 0
3.2 Until more characters to be read, execute the
following step. If not, continue to step 4.
3.2.1 Read n-character
3.2.2 If n-character is the same as 'A' or 'a', add 1 to totalA.
3.2.3 Increase n by 1.
4 Report "Number of ÂaÊs is totalA".
5. End.

In this easy example, the number of levels refined is only up to 2 levels. One of
the main steps which is step 3 is refined to be step 3.1 and 3.2. Then 3.2 is refined
further into steps 3.2.1, 3.2.2 and 3.2.3. For more complex problems, the level of
TOPIC 2 ALGORITHM W 16

refinement may be more until each step becomes detailed and can be executed.
Below are a few guides to summarise the solution:

1. At every level of refinement, the sub-problem must be understood


properly. Input/Output analysis must be done for every sub-problem as
is done for the entire problem.
2. Sub-problems that have similar processes must be looked at together.
This prevents overlapping in solving problem parts that are the same
and arrangements can be made for modules or sub-problems to provide
an overall solution.
3. All sub-problems can be represented in the same way. Therefore, when
all the solutions to sub-problems are combined to create the original
problem, the result from the combination is easier to understand.

For a more complex example, please refer to Pengaturcaraan C, Revised Edition


2000 by Marini Abu Bakar, Norleyza Jailani and Suffian Idris.

2.3 SELECTION STRUCTURE

Selection structure is a structure design that gives a few choices during execution.
The choices made are dependent on the conditions that are given. There are 3 types
of general selection structures, which are:

1. Single Selection
2. Dual-selection
3. Multi-selection

2.3.1 Single Selection


Single selection involves testing one condition only. The choice that is given
depends on whether the condition is met or not met. Below is the syntax for the
single selection algorithm.
TOPIC 2 ALGORITHM W 17

step a
If <Condition true>
Start_If
step 1
step 2
:
step k
End_If
Step k+1

If the condition is met, step 1 till step k will be executed. Then, step k + 1 is
executed. Alternatively, if the condition is not met, step k + 1 will be executed
without executing step 1 to step k.

Step 1 to step k is also known as the start_if and end_if block. Here we will see
that step k+1 will always be executed whether the condition is met or not met.
Step a which is put before the start_if and end_if block will always be executed
because the testing of the condition is after step a.

Note: Notice the indentation for steps in the block start_if ă end_if that are
indented a little bit. This is to show that the steps are dependent on the results
that are obtained from the testing of the condition that is done.

Syntax that is given above can be pictured as a flow chart below:

Figure 2.5: Single Selection Structure Flow Chart


TOPIC 2 ALGORITHM W 18

LetÊs have a look at the Example 2.6.

Example 2.6
Determine if the customers deserve to get a discount of US10.00
from the total payment charged. Customers will be categorised
as deserving if the total_payment is US60.00.

The algorithm is:

1.0 Start.
2.0 Input total_payment value
3.0 If (total_payment > 60)
4.0 Start_If
4.1 Minus 10 from the total_payment
5.0 End_If
6.0 Report actual total_payment
7.0 End

Note: Words that are written in italics like total_payment are variable names that
are recommended. Variables are words that can receive any type of value. You
are also free to use any other name as a variable. But it is good if the variable
name can reflect the task. As given above, total_payment is referring to the total
payment that is charged to the customer.

LetÊs now trace the algorithm. LetÊs say the total_payment is 80.00. Testing
done in step 3.0 is true because 80 > 60. Therefore, the control of the program will
enter the start_if-end_if block. This means, the total_payment will minus 10.
Then, the control of the program will exit from the block and execute step 6.0.
Therefore, the value of total_payment reported is 70.00.

ACTIVITY 2.3

How if the
reference.
TOPIC 2 ALGORITHM W 19

The flow chart is:

Figure 2.6: Flow chart for Example 2.5, single selection structure

Now letÊs look at the second example.

Example 2.7
Determine the requirement of a student to sit for the examination
based on the number of lab sessions attended. The percentage of
attendance at the lab must be 80%. If it is less than that value, the
student is categorised as not qualified.

The algorithm is given as:


1.0 Start.
2.0 Set value no_of_labs = 10
3.0 Input value total_attended
4.0 Percentage_attended I (total_attended / no_of_labs ) * 100
5.0 If ( Percentage_attended >= 80)
6.0 Start_If
6.1 Requirement I "Qualified"
7.0 End_If
8.0 Report Requirement
9.0 End
TOPIC 2 ALGORITHM W 20

Try to consider the algorithm above. Assume total_attended input is 8. Therefore


in step 4.0, percentage_attended will be 80 because of (8/10)*100. Testing step 5.0
is also executed, and the result is true that is percentage_attended >= 80. The
program control will enter the start_if-end_if block. After coming out of the
block, the required value is reported as "Qualified". Trace for total_attended at
the value of 7.

ACTIVITY 2.4

Draw a flow chart of the pseudo-code in Example 2.7.

SELF-CHECK 2.3

Re-write similar statements as those in 4.1 the example in 2.6.

2.3.2 Dual-selection
The dual-selection structure involves testing for two conditions. Choices that are
given are the same as single-selection that is whether the condition is met or not
met. The difference is, if the condition is not met, there are some steps to be
executed. To understand it further, letÊs look at the general algorithm below:
TOPIC 2 ALGORITHM W 21

If <true condition>
Start
step 1
step 2
:
step k
End_If
If_Not
Start
step k+1
step k+2
:
step n
End_If_Not
step n+1

If < true condition > steps in the start_if - end_if block will be executed. Then,
step n+1 will be executed ignoring the steps in the start_if_not - end_if_not block.

But if the condition is not true or not met, the start_if_not - end_if_not would be
executed without executing the steps in the start_if - end_if. Step n+1 will still
be executed whether the condition is met or not. This case is the same as in the
single selection.

A general form of a flow chart for the dual-selection is shown in Figure 2.7 below.

Figure 2.7: Dual-selection structure flow chart


TOPIC 2 ALGORITHM W 22

LetÊs have a look at the example for a dual-selection structure below:

Example 2.8
Determine the payment that will be charged to a customer for
parking their car in a car park. The payment rate charges are, if
total time parked is 2 hours or
if the total time parked is more than 2 hours, then 6.00 is
charged.

Algorithm is given as:


1.0 Start.
2.0 Input in_time
3.0 Input out_time
4.0 Total_time I out_time ă in_time
5.0 If (Total_time< 2)
6.0 Start
6.1 Set total_payment = 2
7.0 End_If
8.0 If_Not
9.0 Start
9.1 Set total_payment = 6
10.0 End_If_Not
11.0 Report results of total_payment
12.0 End

Assume:
in_time = 9.00
out_time = 13.00
total_time = 13.00-9.00 = 4

Testing at step 5.0 will be false because 4 is larger than 2. This will cause the control
of the program to execute the start_if_not - end_if_not block. At the last step,
total_payment will be reported as 6. See Figure 2.8 for the example above.
TOPIC 2 ALGORITHM W 23

Figure 2.8: Flow chart for Example 2.8: dual-selection structure

ACTIVITY 2.5

Now, can you try to solve the problem by using in_time 8.00 and out_time
17.00? Use Example 2.8 as a reference.

Another example of the dual-selection instruction is shown here.


TOPIC 2 ALGORITHM W 24

Example 2.9
Determine the payment that is charged to the customer
who parked their cars in the parking lot. The payment
rates charges are; 2.00 the first hour, and 1.00 for
each subsequent hour.

Algorithm is given as:


1.0 Start.
2.0 Input in_time
3.0 Input out_time
4.0 Total_time = out_time ă in_time
5.0 If ( total_time <= 1)
6.0 Start_If
6.1 Set total_payment = 2
7.0 End_If
8.0 If_Not
9.0 Start
9.1 Set total_time = total_time -1
9.2 Set payment = total_time * 1
9.3 Set total_payment = payment + 2
10.0 End_If_Not
11.0 Report results of total_payment
12.0 End

In the algorithm above, if total_time > 1, and letÊs say the total_time is 2, then,
start_if-end_if block (step 6.0-7.0) will not be executed. But the start_if_not-
end_if_not block (step 9.0-10.0) will be executed.

In step 9.1, total_time will be 1 because 2 minus 1 is 1. Total_time is minused 1


because the payment for the first hour is different from the subsequent hours.

In step 9.2, payment will also be 1 because total_time is multiplied by 1 and is 1,


because the second hour and so on, the payment is 1 for every hour.

In step 9.3, total_time now becomes 3; because 1 plus 2 is 3. Here the value 2 is
for the payment rate for the first hour. You need to remember that the payment
for the first hour is different from the subsequent hours. Total payment reported
in step 11.0 is 3.
TOPIC 2 ALGORITHM W 25

ACTIVITY 2.6

Now try with the previous data which is the in_time 9:30 and out_time 4.30.
Use the algorithm given in Example 2.9 as a reference.

SELF-CHECK 2.4

Pseudo-code in Example 2.9 above can be re-written using the single-


selection structure. Write the new pseudo-code. (Please use another
paper to write your answers for this question.)

2.3.3 Multi-selection
This is the last selection structure. In multi-selection we are allowed to choose
only one statement block from a number of blocks that exist. The number of
statement blocks depends on the number of conditions. If there are n conditions,
then there are n+1 statement blocks, because we have a last statement block that
is not tied to any of the conditions. In the general form below, the statement
blocks are from step q till r.

If <true condition1>
Start
step 1
step 2

step k
End_If1
If_Not
If<true condition2>
Start
step k+1
step k+2

step m
End_If2


If_Not
If<true condition h>
TOPIC 2 ALGORITHM W 26

Start
step n+1
step n+2

step p
End_If h
If_Not
step q
step q+1

step r
End_If_Not

Figure 2.9 shows the flow chart for the general structure of multi-selection.

Figure 2.9: Multi-selection structure flow chart


TOPIC 2 ALGORITHM W 27

LetÊs consider the examples given.

Example 2.10
Input an integer number and determine whether that number
is negative, positive or zero. Print the results.

The algorithm for the example given above is:

1.0 Start.
2.0 Read integer N
3.0 If (N < 0)
4.0 Start.
4.1 Print „N is negative‰
5.0 End_If1
6.0 If_Not
7.0 If (N > 0)
8.0 Start.
8.1 Print „N is positive‰
9.0 End_If2
10.0 If_Not
11.0 Start.
11.1 Print „N is zero‰
12.0 End_If_Not
13.0 End

LetÊs trace the example above. LetÊs say the value of N is 7. Testing at step 3.0 will
be false because 7 is larger than 0. Step 4.0 till step 5.0 is ignored. Testing at step
7.0, when executed, the result is true. Therefore, it will print „N is positive‰.

ACTIVITY 2.7

Try to trace for the value of 10 based on the algorithm above. What is the
printed result?
TOPIC 2 ALGORITHM W 28

Example 2.11
Input bus passenger age to determine the price of the tickets. If
the age of the passenger is 55 and above or between 6 to 12
years, then the ticket price is 50% of the normal ticket price. If
the passengerÊs age is between 12 to 18 years, then the ticket
price is only 75% of the normal ticket price. It is free for
passengers less than 6 years.

From the question given, we can conclude that there are 5 groups of passengers:

Table 2.1: Summary of Example 2.11

Passenger Groups Ticket Price


Aged less than 6 years old (Age < 6) Free
Aged between 6 and 12 years old 50% of the normal ticket price
( 6 <= age <12 )
Aged between 12 and 18 years old 75% of the normal ticket price
( 12 <= age <18 )
Aged between 18 and 55 years old Normal ticket price
( 18 <= age <55 )
Aged more than 55 years old 50% of normal ticket price
( age >= 55 )

Figure 2.10 is a flow chart that shows a multi-selection structure. Trace Figure
2.10 and compare it with the conditions stated in Example 2.11. The flow chart is
as follows:
TOPIC 2 ALGORITHM W 29

Figure 2.10: Flow chart Example 2.11, multi-selection structure

2.4 REPETITION STRUCTURE

Repetition Structure is a structure where one block of statements is executed


repeatedly. This repetition concept has already been used in the algorithm
examples earlier by using English words such as until, repeat and others. In a
more formal algorithm, the concept of repetition is stated in a structure called a
loop. There are 3 main types of loops which are:
TOPIC 2 ALGORITHM W 30

Rajah 2.11: Types of loops

2.4.1 Counter Controlled Loop


The counter controlled loop is a loop that is managed by a loop controller
variable or otherwise known as a counter. The counter holds a value that
represents a count. This counter can be divided into three components:
1. Initial value for counter.
2. Condition to repeat the loop.
3. Updating the counter value.

For a loop controlling counter, the three components are put in special places,
such as:

for (counter=initial_value; test counter; update counter)

start_for
step 1
step 2

:
} Loop Body

step n
End_for

At the beginning of the execution, the counter will be assigned initial_value.


Then the condition for repetition is tested. For an incrementing loop, the value of
the counter will always increase until the condition is false. Therefore normally,
the condition for repetition is the counter value which is always lesser or the
same as the last value that wants to be achieved.
TOPIC 2 ALGORITHM W 31

If the counter value is still less than the last value, the step in the start_for- end_for
block, which is step 1 till n will be executed. This block is also known as the loop
body.

After the last step in the loop is executed, the value of the counter is updated
according to the increment that is stated. Notice however that the increment is
not necessarily by adding the counter by 1. The increment can be 2 or 3 times and
so on. After the counter has been updated, the test is done again and the
execution of the loop body repeats until the condition that is set on the counter is
no longer fulfilled.

The loop ends and the control will get out of the loop. The step after the end_for
will be executed. Figure 2.12 shows the general flow chart for the counter
controlled loop.

Figure 2.12: Flow chart for counter controlled loop

There are 2 types of counter controlled loops:


1. Loop with increasing counter
2. Loop with decreasing counter

LetÊs see each of the counter.

(a) Loop with Increasing Counter Control


The loop with increasing counter control is the commonly found loop.
Usually the initial_value is a smaller value than the last value. The update is
made on the value by increasing the value of initial_value until the value is
the same as the end value and the test becomes false. Look at Example 2.12.
TOPIC 2 ALGORITHM W 32

Example 2.12

Algorithm is given as:


1.0 Start.
2.0 Set total = 0.
3.0 for (i = 1; i < 10; increase i by 2)
4.0 start_for
4.1 total I total + i
5.0 end_for
6.0 Report total value.
7.0 End

In example 2.12, the start_for - end_for block will be executed 5 times. Therefore,
we need to trace the algorithm above and see the table given below.

Table 2.2: Tracing Incrementing Loop

i i < 10 Total
0
1 True 1 I (0+1)
3 I (1+2) True 4 I (1+3)
5 I (3+2) True 9 I (4+5)
7 I (5+2) True 16 I (9+7)
9 I (7+2) True 25 I (16+9)
11 I (9+2) False 25

The loop will stop when the counter I is more than 10, which is when iÊs value is
11. At that time the value of total is 25.

(b) Loop with Decreasing Counter Control


Loop with decreasing counter control, is generally the same as the loop with
increasing counter control. The difference is:

1. The counter starts at a larger value and will decrease to a


smaller value according to the decrement rate stated.
2. The condition for repetition is > or >= with the last value.
3. The initial_value must be a large number.
TOPIC 2 ALGORITHM W 33

You need to remember that the initial_value must be a large value. After
the last step is executed, the value of the counter will be decreased
according to the rate specified. Just as in the increasing counter control
loop, the rate is not necessarily 1. Look at the example 2.13:

Example 2.13

The algorithm is:


1.0 Start.
2.0 Set total = 0
3.0 For (i = 9; i >= 1; i decrement 2) start_for
3.1 total I total + i
4.0 End_for
5.0 Report total
6.0 End

Notice that in step 3.0, the initial_value is a large number that will be decreased
by 2 to decrease its initial_value. Next is the tracing of the loop:

Table 2.3: Tracing Decreasing

i> = 1 Total
0
9 True 9 I (0+9)
7 I (9-2) True 16 I (9+7)
5 I (7-2) True 21 I (16+5)
3 I (5-2) True 24 I (21+3)
1 I (3-2) True 25 I (24+1)
-1 I (1-2) False 25

The loop will stop when the condition is not fulfilled, that is when the value of i
is -1. At that instant, the total is 25. The end result of total in the example with the
increasing counter and the total in the example with the decreasing counter is the
same.
TOPIC 2 ALGORITHM W 34

ACTIVITY 2.8
What is the effect if i minus 2 is replaced by i plus 2 in the Example
2.13 algorithm in step 3.0? Why does that happen?

2.4.2 Condition Controlled Loop


Loops like these are controlled by true conditions. There are 2 types of general
loops controlled by conditions, which are:
1. Loops with conditions tested first.
2. Loops with conditions tested later.

(a) Loop with Condition Tested First


Where condition is tested first, and if it is true, the step in
start_until_end_until (step 1 until step n) will be executed. After the last
step in the block is executed, usually updates are done and the condition is
tested again.

True J repetition statements in the loop body


Until condition
False J out of loop and execute step after end_until

The general form of a condition loop tested first is follows:

Figure 2.13: General Form and Flow Chart of loop structure with condition tested first
TOPIC 2 ALGORITHM W 35

Example 2.14

Consider the example:


1.0 Start.
2.0 Set total and counter to 0
3.0 Until counter < 5
4.0 Start.
4.1 counter I counter + 1
4.2 total I total + counter
5.0 End
6.0 Report total value
7.0 End

In the Example 2.14 above, the block start_until-end_until will be executed 5


times until the condition counter < 5 is false and the value of counter is 5. The last
value of total is 15. Consider the tracing of the loop below:

Table 2.4: Tracing of Loop with Condition Control

Counter < 5 Loop Counter Total


0 0
True (0<5) 1 1 I (0+1) 1 I (0+1)
True (1<5) 2 2 I (1+1) 3 I (1+2)
True (2<5) 3 3 I (2+1) 6 I (3+3)
True (3<5) 4 4 I (3+1) 10 I (6+4)
True (4<5) 5 5 I (4+1) 15 I (10+5)
False (5<5) 5 15

(b) Condition Tested Later


For this loop, the steps in the loop will be executed first and the condition
will be tested later, that is when the statement until is reached. This means
the steps in start ă end loop will be executed at least once. The Figure below
shows the flowchart for the condition controlled loop with the condition
tested later.
TOPIC 2 ALGORITHM W 36

Figure 2.14: General form and flow chart of loop structure


with condition tested later

Example 2.15
Consider the example for loops of this type:
1.0 Start.
2.0 Set total and counter to 0.
3.0 Start.
3.1 counter I counter + 1.
3.2 total I total + i.
4.0 End.
5.0 Until (counter less than 5).
6.0 Report total value
7.0 End.

End result of total is the same as the loop before this which is 15. Notice in
the tracing below, the number of tests for the condition in the condition
controlled loop for this form is one less than the condition in the condition
controlled loop in the form before this.
TOPIC 2 ALGORITHM W 37

Table 2.5: Tracing of Loop with Condition Control Tested Later

Counter < 5 Loop Counter Total


0 0
1 1 I (0+1) 1 I (0+1)
True (1<5) 2 2 I (1+1) 3 I (1+2)
True (2<5) 3 3 I (2+1) 6 I (3+3)
True (3<5) 4 4 I (3+1) 10 I (6+4)
True (4<5) 5 5 I (4+1) 15 I (10+5)
False (5<5) 5 15

2.4.3 Sentry Controlled Loop


Loops of this type are actually subset loops controlled by condition. Sentry value
is a signal to stop the loop. Loops like these are also called un-certain loops because
the number of loop executions are not known before the execution starts. Sentry
value chosen must not be an input data that is valid. Consider the sentry controlled
loop in Example 2.15.

Example 2.15
Read 1 set of studentsÊ marks where if the marks
are negative then the input ends. Calculate the
average marks.

Algorithm 2.15 (A):


1.0 Start
2.0 Set i to 1 and Total to 0
3.0 Read first mark, mi
4.0 Until mi > = 0
5.0 Start
5.1 Total I total + mi
5.2 i I i +1
5.3 Read i-th mark, mi
6.0 End
7.0 Average I Total /(i - 1)
8.0 Print Average
9.0 End
TOPIC 2 ALGORITHM W 38

In example 2.15, a negative mark input will end the loop because the test condition
(step 4.0) becomes false. In the example above, the number 999 can be a sentry value
because the maximum mark is 100. To make the number 999 as a sentry value, the
step 4.0 in the algorithm has to be changed to Until m!=999 that is when the mark
mi is 999, the statement becomes false and automatically comes out of the loop.

ACTIVITY 2.9

For the algorithm Example 2.15 above, what if the negative value is a valid
data?

Sentry value can also be of type character. We can change the example above and
use the character ÂtÊ as a sentry value. Consider the changes made in algorithm B
below.

Algorithm 2.15 (B):


1.0 Start
2.0 Set i to 1 and Total to 0
3.0 Set continue as ÂyÊ
4.0 Until continue == ÂyÊ
5.0 Start
5.1 Read i-th mark, mi
5.2 Total I Total + mi
5.3 i I i+ 1
5.4 input ÂyÊ to continue the operation or ÂnÊ to
stop the operation
6.0 End
7.0 Average I Total/(i - 1)
8.0 Print Average
9.0 End

Till now you have learnt three types of control structures. Rest and relax before
going on to the next topic.
TOPIC 2 ALGORITHM W 39

2.4.4 Structuring
This method is used to solve problems by designing structure charts. Benefits of
using the structure chart can be listed as:
(i) Able to identify the number of modules or sub-problems that are
created by breaking up the problem
(ii) Able to give input that is needed by a module or sub-problem that
can be shown in the chart
(iii) Able to determine the output that is obtained from one module
that can be used in other modules

As an example, consider the problem statement given below.

(a) Problem
Solve the problem of calculating gross pay and net pay for workers that is
made up of basic pay and overtime pay. The normal working hours are 40
hours. The rate for working overtime is 2 times the normal rate. If the
workerÊs pay exceeds 500 per week, a tax of 50 is deducted.

(b) Analysis
To calculate the pay, the information needed are the hours worked and the
hourly rate. The net pay of a worker can be obtained by deducting tax from
the pay if the pay excee

(c) Data Requirements


Permanent Information (Constant):
Taxable_Pay = 500.00
Tax = 50.00
Maximum_Hours = 40.0
Overtime_Rate = 2.0

Input:
Hours_Worked (float type)
Hourly_Rate (float type)

Output:
Gross_Pay (float type)
Net_Pay (float type)
TOPIC 2 ALGORITHM W 40

Relevant Formula:
Normal_Pay = Work_Hours x Hourly_Rate
Overtime_Pay = Overtime_Hours x Overtime_Rate x Hourly_Rate
Gross_Pay = Normal_Pay + Overtime_Pay
Net_Pay = Gross_Pay - Tax

(d) Design
Initial Algorithm:
1.0 Start
2.0 Read Hours_Worked and Hourly_Rate .
3.0 Calculate Gross_Pay.
4.0 Calculate Net_Pay .
5.0 Print Gross_Pay and Net_Pay.
6.0 End

The following Figure shows a structure chart of the problem.

Figure 2.15: Structure Chart to find net pay problem

Step 3.0 and step 4.0 can be refined. Normally, our operation uses
refinement to get the calculated gross pay and net pay.

(e) Step 3 Refinement:


3.1 IF ( Hours_worked <= Maximum_hours)
3.1.1 Gross_Pay = Hours_worked x Hourly_Rate
3.2 End_IF
3.3 IF_Not
3.3.1 Gross_Pay = (Maximum_hours x Hourly_Rate) +
3.3.2 ((Hours_worked ă Maximum_hours) x O v e r t i m e _Rate x
Hourly_Rate)
3.4 End_IF_Not
TOPIC 2 ALGORITHM W 41

(f) Step 4 Refinement:


4.1 IF (Gross_Pay > Taxable_Pay)
4.1.1 Net_Pay = Gross_Pay - Tax
4.2 IF_Not
4.2.1 Net_Pay = Gross_Pay
4.3 End_IF_Not

SELF-CHECK 2.5

1. Based on the problem given below, construct a flow chart.


(a) By inputing an integer number, generate a times-table (1 to
12) for that number. As an example, if the number input is 4,
then display the 4 times table.
(b) Input the values of length and width for a residential area in
feet measurement. Also enter the values of lenght and width
for the building of a house in feet measurement. Assume the
difference of a grassy area between them. Calculate the time
needed to cut grass at the rate of 2 square feet per second.

(Please use a separate sheet of paper to answer this question.)

2. Based on the problem given below, construct a pseudo-code.


(a) Given the radius, determine the area and circumference of a circle.
(b) You have been asked to input your name and then print it 5 times.
TOPIC 2 ALGORITHM W 42

(c) Construct a flow chart to determine your weight category. The


category determination is based on Body Mass Index (BMI).
BMI is the ratio of height in meters to body weight in
kilograms. The formula is given as:

Weight category is as follows:


CATEGORY BMI
Underweight less than 18.5
Normal 18.5 ă 24.9
Overweight class 1 25.0 ă 29.9
Obesity class 2a 30.0 ă 34.9
Obesity class 2b 35.0 ă 39.9
Obesity class 3 40.0 and above

(d) Create a pseudo-code for this problem. Accept 2 integer values as


input, letÊs say 3 and 7. Print all the integer numbers between them,
including those two numbers. If the first number is smaller than
the second number, then print the numbers in ascending order. If
otherwise, print the numbers in decending order.

As an example:
Input: 3 7
Output: 3 4 5 6 7

Input: 7 3
Output: 7 6 5 4 3

(Please use a separate sheet of paper to answer this question.)

• Algorithm is a step-by-step problem-solving method in a limited time.


• Activities in the algorithm representation are represented by geometry
nodes. Each node represents different activities. These nodes will be joined
using arrows that show the flow or a sequential activity.
• Pseudo-code or false codes are instructions that mimic the program code
(actual program instructions).
TOPIC 2 ALGORITHM W 43

• Input is all the information that is relevant, needed to execute a process.


• Output is the result that is needed.
• Selection structure is a structure design that gives a few choices during
execution.
• Single selection involves testing one condition only. The choice that is given
depends on whether the condition is met or not met.
• The dual-selection structure involves testing for two conditions. Choices that
are given are the same as single-selection that is whether the condition is met
or not met.
• In multi-selection we are allowed to choose only one statement block from a
number of blocks that exist. The number of statement blocks depends on the
number of conditions.
• Repetition Structure is a structure where one block of statements is executed
repeatedly.
TOPIC 2 ALGORITHM W 44

îAlgorithm
îDual-Selection îFlow Chart îLoop
îMulti-selection

Das könnte Ihnen auch gefallen