2.2.1 Programming Techniques Flashcards
Name the three programming constructs.
Sequence, branching and iteration.
Which two categories of loop is iteration split up into?
- Count-controlled,
- Condition-controlled.
Describe how the branching programming construct works.
A certain block of code is run if a specific condition is met, using IF statements.
What is recursion?
A programming construct in which a subroutine calls itself during its execution until the stopping condition is met.
What is the base case in recursion?
A condition that must be met in order for the recursion to end.
State two advantages of recursion.
- Can be represented in fewer lines of code,
- Easier to express some functions recursively than using iteration.
State a disadvantage of recursion.
- Inefficient use of memory,
- Danger of stack overflow,
- Difficult to trace.
Give some pieces of information that are stored on the call stack.
- Parameters,
- Return addresses,
- Local variables.
Define scope.
The section of the program in which a variable is accessible.
Give some advantages of using local variables over global variables.
- Less memory is used,
- Self-contained so unaffected by code outside of the subroutine,
- Take precedence over global variables with the same name.
What is top-down design?
A technique used to modularise programs in which the problem is continually broken down into sub-problems, until each can be represented as an individual, self-contained module which performs a certain task.
State some advantages of a modular design.
- Makes a problem easier to understand and approach,
- Simpler to divide tasks between a team,
- Easier to manage project,
- Self-contained modules simplify testing and maintenance,
- Greater reusability.
Give another name for top-down design.
Stepwise refinement.
What is the difference between procedures and functions?
Functions must always return a single value while a procedure does not always have to return a value.
What does it mean to pass a parameter to a subroutine by reference?
The address in memory of the parameter is passed to the subroutine so its value outside of the subroutine will be updated.