7.3 Using flowcharts to describe a task
Application programs are designed to perform specific tasks. These tasks range from the relatively simple to the extremely complex. In this section you will look at what is involved in planning a program to perform some simple tasks.
In order to write a program, the task the program will perform has to be first written as a list of actions. The actions have to be given in an order that will ensure the task is carried out successfully.
Activity 11 (Exploratory)
Write down, in order, the list of actions you would have to carry out to boil some water in an electric kettle.
The list of actions I would use to do this is:
take lid off kettle
turn on tap
fill kettle with water
monitor water level and turn off tap when correct
put lid on kettle
plug kettle in
switch on kettle.
Your list may be different from mine. For example you may pour the water into the spout without taking the lid off, or the method of supplying power to the kettle might not use a switch. This doesn't matter. What is important is that you can see how even a very simple task can be described as a series of actions, and that these actions must be given in a particular order for the task to be carried out successfully. In my answer, for example, it would be impossible to carry out the action to put the lid on the kettle if I hadn't taken it off earlier in the sequence of actions.
Consider a very simple set of electronic scales. These scales have an on/off switch, but no other input buttons, and a display to show the weight of the object in the scalepan in grams.
Activity 12 (Exploratory)
Write down, in order, the list of actions that the computer inside the scales has to carry out in order to show an object's weight on the display.
The computer has to:
accept data from the sensor that measures the displacement of the scalepan;
transform the data from the sensor into data for the display;
send the display-formatted data to the display.
The list of actions in the comment to Activity 12 can be shown diagrammatically in a type of diagram called a flowchart. Figure 15 shows how I have written this simple sequence of actions as a flowchart.
The shapes of the symbols used in flowcharts are significant. Flowcharts are a common language used to communicate processes and it is important to be consistent in their use. This flowchart uses three different symbols to show:
the start/end points of the process;
data input or output;
a process to be carried out.
Figure 16 defines these symbols. It also defines an additional symbol that shows a decision being made, and another for showing connectors.
In flowcharts, lines are used to connect symbols together, and arrows on these lines indicate the order in which tasks are carried out. You can see this in Figure 15.
My next example incorporates a decision box. It involves a slightly more complex set of electronic scales: they have one additional button on the front that allows the user to select whether the weight is displayed in grams or in pounds and ounces. A flowchart incorporating this choice of display format is shown in Figure 17. It uses the decision box to make a choice about which piece of the program will be run. There are two exit routes from the decision box; each route is called a branch. If the user has requested that the weight should be displayed in grams, the Yes branch is followed so that the sensor data can be transformed to gram format. If the user has requested that the weight should be displayed in pounds and ounces, the No branch is followed to transform the sensor data to pounds and ounces instead. Note that once the translation to the selected output format is complete the branches of the flowchart come together again and the ‘send to display’ part of the task is run regardless of which branch was taken earlier in the program.