Download presentation
Presentation is loading. Please wait.
Published byMartha George Modified over 9 years ago
1
60-140 Lecture 2b Dr. Robert D. Kent
2
Structured program development Program control
4
Structured program development ◦ Sequential nature of instruction logic ◦ Non-sequential instruction logic ◦ Control structures Repetition Decision Selection
5
Previously, we discussed program design from the perspectives of ◦ Top-Down Bottom-Up Stepwise-Refinement In practice, all of these techniques are used ◦ However, the Top-Down approach emphasizes the recognition of processing modules, or units of logic, that must always be processed as complete units Sometimes these units may be single statements Usually they are expressed as compound statements { } ◦ The goal of structured programming is to apply formal language control structures that determine the execution of processing units.
6
At the level of the machine (CPU hardware) ◦ The RAM address of the next instruction to be executed is stored in a CPU register (storage unit) called the Program Counter (PC) ◦ Machine language instructions (encoded bit strings) are loaded from RAM, using the address stored in the PC, to an Instruction Register (IR) in the CPU ◦ While the IR is being decoded, the PC is incremented by the length (in bytes) of the current instruction. This last step assumes that the next instruction (in sequence) automatically follows the current instruction in RAM. The DEFAULT mode of process execution is SEQUENTIAL. Statement_1 ; Statement_2 ;..... Statement_N-1 ; Statement_N ;
7
Hardware designers have long understood the need to perform logical steps “out of order” ◦ This is called non-sequential logic ◦ Must be able to change the value stored in the CPU Program Counter (PC) register Requires hardware instructions for this purpose This is called branching logic
8
Forward Branch ◦ if process cond FALSE TRUE TO DO or NOT TO DO ? That is the question!
9
Forward Branch ◦ if else cond Tprocess FALSE TRUE Fprocess EITHER OR
10
Backward Branch (Code repetition) ◦ Pre-Form: while / for cond process FALSE TRUE Do ONCE or REPEATEDLY
11
Backward Branch (Code repetition) ◦ Post-Form: do while cond process FALSE TRUE
12
In the C language, several formal control structures have been designed ◦ Repetition while do-while for ◦ Decision if if-else ◦ Selection if-else if-else switch ◦ Each of these structures guide how the compiler generates proper machine language codes that preserve the semantics of the control logic
13
Multiple selection and For control structures
14
Program control ◦ Multiple selection If-else if-else switch ◦ Repetition do-while for ◦ Break and Continue
15
Multiple selection logic arises when a choice between more than two possible outcomes may happen C provides two control structures to deal with these situations ◦ if-else if-else ◦ switch
16
Problem: ◦ Part of a calculator program requires the user to input a value from 1 to 4 indicating his/her choice of the operation to perform on two values A and B (assume A, B already entered) RESULT: C = A operation B ; ◦ The interpretation of the inputs is defined as 1- Add 2- Subtract 3- Multiply 4- Divide
17
Solution using if-else if-else : ◦ printf ( “Enter operation code >” ) ; scanf ( “%d”, &Code ) ; if ( Code == 1 ) C = A + B ; else if ( Code == 2 ) C = A – B ; else if ( Code == 3 ) C = A * B ; else C = A / B ; A bit difficult to understand.
18
Solution using if-else if-else : ◦ printf ( “Enter operation code >” ) ; scanf ( “%d”, &Code ) ; if ( Code == 1 ) C = A + B ; else if ( Code == 2 ) C = A – B ; else if ( Code == 3 ) C = A * B ; else C = A / B ; Much easier. REMEMBER ! Indentation is only for programmers, compilers do not understand indents.
19
Solution using switch : ◦ printf ( “Enter operation code >” ) ; scanf ( “%d”, &Code ) ; switch ( Code ) { case 1 : C = A + B ; break ; case 2 : C = A – B ; break ; case 3 : C = A * B ; break ; case 4 : C = A / B ; break ; default : printf ( “Error in input\n” ) ; break ; }
20
Solution using switch : ◦ printf ( “Enter operation code >” ) ; scanf ( “%d”, &Code ) ; switch ( Code ) { case 1 : C = A + B ; break ; case 2 : C = A – B ; break ; case 3 : C = A * B ; break ; case 4 : C = A / B ; break ; default : printf ( “Error in input\n” ) ; break ; }
21
Repetition logic may be of two forms ◦ Pre-condition testing : enter, or re-enter, the loop body if the condition is true. ◦ Post-condition testing : enter the loop body in all cases (performing the body a minimum of once), then repeat the loop body only if the condition is true. C supports three forms of repetition control structures ◦ while ◦ do-while ◦ for
22
while ( condition_expression ) statement ; while ( condition_expression ) { statement1 ;...... statementN ; }
23
do statement ; while ( condition_expression ) ; do { statement1 ;...... statementN ; } while ( condition_expression ) ;
24
for ( init_stmt ; cond_expr ; update_stmt ) statement ; for ( init_stmt ; cond_expr ; update_stmt ) { statement1 ;...... statementN ; }
25
Example: Find the sum of all integers from 1 to 10. int Sum = 0, k ; for ( k = 1 ; k <= 10 ; k++ ) Sum = Sum + k ;
26
Example: Find the sum of all integers from 1 to 10. int Sum, k ; for ( k = 1, Sum = 0 ; k <= 10 ; k++ ) Sum = Sum + k ;
27
C defines two instruction statements that cause immediate, non-sequential alteration of normal sequential instruction processing Break Logic ◦ Execution of a break ; statement at any location in a loop- structure causes immediate exit from the loop-structure Continue Logic ◦ Execution of a continue ; statement at any location in a loop-structure causes execution to continue at the beginning of the loop structure (at the next loop iteration) while skipping the remaining statements.
28
Break Logic ◦ Execution of a break ; statement at any location in a loop- structure causes immediate exit from the loop-structure for ( k = 0 ; k < 10 ; k++ ) { if ( k == 5 ) break ; printf ( “%d, ”, k ) ; } Produces output : 0, 1, 2, 3, 4
29
Continue Logic ◦ Execution of a continue ; statement at any location in a loop-structure causes execution to continue at the beginning of the loop structure (at the next loop iteration) while skipping the remaining statements. for ( k = 0 ; k < 5 ; k++ ) { if ( k == 3 ) continue ; printf ( “%d, ”, k ) ; } Produces output : 0, 1, 2, 4
31
Data ◦ Types, Declarations, Literal values ◦ Input/Output specification codes Operators Structured program development ◦ Selection / Decision control logic If If – else Switch Control structures ◦ Repetition (Loop) control logic Counters Sentinels ◦ While Do-While ◦ For
32
Reading ◦ Chapters 1 – 4 (All sections) ◦ Midterm Examination 1 will focus on concepts and techniques from Chapters 1-3, completely Chapter 4.1 – 4.4, 4.7, 4.8 Some material presented in Lecture 2 slides may not be tested at this time, but will be tested later Students are responsible for all material presented in the Lecture slides, as well as all assigned reading and Laboratory exercises and Examinations.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.