Structured Programming The Basics
Structured Programming Early programmers had to learn to program ad hoc – try things and see if they worked Early software engineers studied software projects to see why some succeeded and some failed They found patterns of programming that usually give good results when followed These are the rules of structured programming
Control Structures and Data Structures Control structures and data structures are the main components of any program Data structures allow you to access your data Simplest is a literal constant like 5 Variables are simple data structures – have a name, a value, a type, a location (address) in RAM Lists, files, graphics objects are more complex data structures
Control structures They control the order of execution What order statements will be done in, or whether they will be done at all (whether they are skipped or not) Different from data structures
Why do structured programming? It's easier to understand code written using structured programming Easier to test and debug code Easier to modify and maintain code Easier to work with other people to write large programs
4 Control Structures Sequence Selection Iteration Module
Guarantees for All Structures ONE Entrance ONE Exit
SEQUENCE Statement 1 Statement 2 Statement 3 . . .
Guarantees for Sequences Will execute the steps in the order given Will not enter or leave sequence in mid-stream Will not skip steps
SELECTION(branch) IF Condition THEN Statement1 ELSE Statement2 True Statements1 Statement Condition . . . Statements2 False
Selection Guarantees Control always enters through the condition / question One branch or the other is executed, never both on one run MUST execute one branch or the other Processes in branches can be as large or small as you want Do not write Dead Code!
Dead Code
LOOP(repetition) WHILE Condition DO Statement1 False . . . Condition True Body
Guarantees Will go through test / condition at top to get into loop ALL of body will be executed before test is done again Body will be repeated until test is answered differently (NO) Do not write Infinite Loops! (usually a logic error in the controlling condition at the top)
SUBPROGRAM(function) . . . SUBPROGRAM1 SUBPROGRAM1 a meaningful collection of SEQUENCES, SELECTIONS, LOOPS, SUBPROGRAM calls
Module Flow of control