Structured Programming Concepts
Mithat Konar
July 21, 2018
Topics
What is it?
Why is it important?
Core concepts
What is it?
Why is it important?
Theoretical reasons
Practical reasons
Theoretical reasons
Practical reasons
Popular programming languages are based on it.
Influences languages built around other paradigms.
Thinking “structurally” helps solve problems so they are easy to program.
Professionals often use structured programming concepts to specify ways of solving problems.
Core concepts
Control flow
Block structure
Subroutines
Control flow
control flow: the order in which the things happen, the way a program “flows”.
Three kinds of control structures
sequence: statements are executed one after the other.
selection: choose among alternative courses of action, “making decisions.”
repetition: repeat a set of instructions, “looping”.
Scenario
I need to leave my house for a couple days.
My friend has agreed to look after my cat Ash.
They need detailed instructions.
First try
Ash gets a cup of food every day.
Her water needs to be filled if it's running low.
She also needs to play fetch with her favorite toy.
Sequence
“Ash gets a cup of food every day.”
open the bag of catfood on the counter
scoop out one cup of food
put the scoop of food into her food dish
reseal the bag of catfood
Selection
“Her water needs to be filled if it's running low.”
if the water level in the water dish is low
fill a glass of water from the filtered water pitcher on the counter
pour the glass of water into the water dish
Repetition
“She also needs to play fetch with her favorite toy.”
toss Ash's favorite toy
while Ash brings it back
pat her on the head
toss Ash's favorite toy
Code Examples
Sequence
a = 5
b = 4
c = a * b
print("The value of c is", c)
Selection
if a > 60:
print("Your score is", a)
print("You passed the course!")
Repetition
n = 1
while n < 10:
print(n)
k = n + 1
n = k
<html>
<script> var uls = document.getElementsByTagName('ul');
for(var i=0,j=uls.length;i<j;++i){uls[i].setAttribute('class','incremental')}
</script>
</html>