Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

A-level Computing 2009/AQA/Problem Solving, Programming, Data Representation and Practical Exercise/Problem Solving/Structure charts

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

Top-down design and Step-wise refinement Decision tables thumb|center|350px|Structure charts can map the structure and data flow of complicated tasks 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. Symbol Name Meaning ModuleName Process Each Box represents a programming module, this might be something that calculates the average of some figures, or prints out some pay slips File:CPT-Structured Chart Data Couple.svg Data Couple Data being passed from module to module that needs to be processed. File:CPT-Structured Chart Flag.svg Flag [Extension - you don't need to know this for the exam] Check data sent to process to stop or start processes. For example when the End of a File that is being read is reached, or a flag to say whether data sent was in the correct format 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 thumb|400px|center|A structure chart for the above code Exercise: Structure Charts Create structure charts for the following code: sub main() dim num1 as integer dim num2 as integer dim avg as integer sayHello() num1 = 34 num2 = 89 avg = average(num1, num2) end sub function average(a,b) return (a + b) / 2 end function sub sayHello() console.writeline("hello") end sub 350px Selection thumb|center|200px|Structure Chart representation of the selection code 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 Iteration thumb|center|85px|Structure Chart of the code to the left 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 Exercise: Structure Charts, Iteration and Selection Create structure charts for the following code: sub howManyThrees() dim num1, count, total as integer num1 = startMsg() count = 0 total = 0 while num1 > 0 do checkNumber(count, total, num1) num1 = num1 - 1 end while endMsg(count) end sub sub checkNumber(byRef c, byRef t, byVal n) If n MOD 3 = 0 Then c = divBy3(c) Else t = add(n, t) EndIf end sub function divBy3(x) return x + 1 end function function add(n, t) return n + t end function function startMsg() console.writeline("program started, enter your number") return console.readline() end function sub endMsg(n) console.writeline("number of threes : " & n) end sub 500px