300 likes | 394 Views
Learn structured programming with Stephen Chen: Focus on sequencing, actions, branching, looping, and iconic elements. Understand declarations, assignments, mathematical expressions, branching, and looping concepts.
E N D
ACSE 20068th Conference The Iconic Programmer Stephen Chen
Overview • Actual slides from first three weeks • Want students to focus on programming concepts rather than (JAVA) syntax • Want students to learn to think in structures (i.e. problem solve) ACSE -- The Iconic Programmer
Structured Programming • Focus on processes – focus on actions • 3 structures of structured programming • Sequence • Perform an action • Branch • Select an action (or no action) • Loop • Repeat an action ACSE -- The Iconic Programmer
Iconic Programmer • Each structure has an icon • Program by assembling icons ACSE -- The Iconic Programmer
Sequence • Standard operation of a computer • Actions are performed in sequence • First action • Second action • … • Last action • Program runs same way each time ACSE -- The Iconic Programmer
Actions • Action • Manipulate data • Iconic Programmer • Declare • Assign • Output ACSE -- The Iconic Programmer
Declarations • A computer needs to allocate storage space for all data that it manipulates • Declaration gives a meaningful name to the data element/storage space • Iconic Programmer • Only integer data elements • Give name in text box ACSE -- The Iconic Programmer
Assignments • Once the computer has a storage space, it can store/change data in that space • Iconic Programmer • Random value • Result of mathematical expression • User input ACSE -- The Iconic Programmer
Mathematical Expressions • value = value +1 (math) • The value is equal to the value plus one • Impossible mathematically • value = value + 1 (computers) • The storage space for value will become the previous contents plus one • Actions: perform math, perform storage ACSE -- The Iconic Programmer
Output • When computer is done with program (or during debugging), we may want to see the result – what is in a storage space • Iconic Programmer • Value in storage space • Text information (nominally stored) ACSE -- The Iconic Programmer
Sample Program • Output the double and triple of an input • Declare a storage space • Assign an input value to the storage space • Declare a second storage space • Assign double the input to this space • Output the value in the second space • Assign triple the input to this space • Output the value in the second space ACSE -- The Iconic Programmer
Branching • Branching allows a program to make decisions • Diamonds represent conditions • Two outgoing paths from condition • Paths (with sequences) can be skipped ACSE -- The Iconic Programmer
Example of Branching • Program specification • Make withdrawal if funds are sufficient • Program actions • Check account balance and withdraw amount • Make withdrawal • Need to make withdrawal optional ACSE -- The Iconic Programmer
Decisions • Branching selects from two paths • Two paths two states • true (yes) • false (no) • Diamond contains a condition • A condition is a true-false question ACSE -- The Iconic Programmer
Relational Operators • How to turn integers into true/false? • Greater than • Less than • Equal to • Not equal to • Greater than or equal to • Less than or equal to ACSE -- The Iconic Programmer
Compound Conditions • Allow us to put two (or more) sub-conditions into a condition • AND • OR ACSE -- The Iconic Programmer
AND • The expression is TRUE if and only if both input variables are TRUE ACSE -- The Iconic Programmer
OR • The expression is TRUE if either input variable is TRUE ACSE -- The Iconic Programmer
Inclusive and Exclusive OR • Computers use inclusive OR • Stop the bus if passengerA OR passengerB wants to get off • Exclusive OR is different • You can get $1000 cash back or 0% financing ACSE -- The Iconic Programmer
Two Branches • Did you roll a doublet? • die1 == die2 double move • Normal move ACSE -- The Iconic Programmer
Multiple Branches • What is your grade classification? • >= 80 honours • >= 60 pass • Not pass ACSE -- The Iconic Programmer
Looping • In Sequence and Branching, each action is performed at most once • Looping allows certain actions to be repeated • Keeps programs from getting large and unmanageable ACSE -- The Iconic Programmer
Example of Looping • Program specification • Take user inputs until they guess correctly • Program • Declare and initialize number • Declare guess • Input and compare guess • Input and compare guess • … ACSE -- The Iconic Programmer
Looping Icon • Loops have same components as branches • Condition selects one of two paths • Optional path “loops back” to condition ACSE -- The Iconic Programmer
Java syntax – branches • Basic shell if (/*boolean expression*/) { // conditional statements } ACSE -- The Iconic Programmer
Java syntax – exclusive branches if (/*boolean expression*/) { // conditional statements } else { // default statements } ACSE -- The Iconic Programmer
Java syntax – multiple branches if (/*boolean expression*/) { // conditional statements } else if (/*boolean expression*/) { // more conditional statements } ACSE -- The Iconic Programmer
Java syntax – loops • Basic shell while (/*boolean expression*/) { // repeatable statements } ACSE -- The Iconic Programmer
Common Error • Decision to loop does not require a branch • Decisions are not structures • Branches - selected actions • Loops - repeated actions ACSE -- The Iconic Programmer
Sample Program – Telephone Banking • Write a program that implements an ATM interface • 1 – get balance • 2 – deposit • 3 – withdraw • 9 – end session • What are the key structures? ACSE -- The Iconic Programmer