title=Problem Solving: Structure Charts
A Structure Chart in software engineering is a chart which shows the breakdown of a system to its lowest manageable parts. They are used in structured programming to arrange program modules into a tree. Each module is represented by a box, which contains the module's name. The tree structure visualizes the relationships between modules, showing data transfer between modules using arrows. Structured Charts are an example of a top-down design where a problem (the program) is broken into its components.
Let's take a look at a simple example of how this might be executed when representing the following code:
dim num1, num2 as integer sub calculateAverage() dim avg as integer inputNums() avg = average(num1, num2) outputAvg(avg) end sub function average(a,b) return (a + b) / 2 end function sub inputNums() num1 = console.readline() num2 = console.readline() end sub sub outputAvg(x) console.writeline("average = " & x) end sub
A selection in a Structure Chart is determined by the diamond symbol. This means a condition will be checked and depending on the result, different modules will be executed.
sub main() dim num1 as integer num1 = console.readline() if num1 = 7 then luckyNumber() else otherNumber() endif end sub
Using the semi circular arrow we can represent iteration in Structure Charts. The arrow encompasses a link to a module, implying that module is executed multiple times. Let's take a look at a coded example:
sub main() dim num1 as integer num1 = console.readline() while num1 > 0 do num1 = countdown(num1) end while end sub Function countdown(a) return a - 1 End Function