1 / 32

Structured Program Development & Program Control

Structured Program Development & Program Control. 60-140 Lecture 2b Dr. Robert D. Kent. Lecture 2b: Outline. Structured program development Program control. 2C : Structured Program Development. Lecture 2C: Outline. Structured program development Sequential nature of instruction logic

debit
Télécharger la présentation

Structured Program Development & Program Control

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Structured Program Development& Program Control 60-140 Lecture 2b Dr. Robert D. Kent

  2. Lecture 2b: Outline • Structured program development • Program control

  3. 2C : Structured Program Development

  4. Lecture 2C: Outline • Structured program development • Sequential nature of instruction logic • Non-sequential instruction logic • Control structures • Repetition • Decision • Selection

  5. Structured program development • Previously, we discussed program design from the perspectives of • Top-Down Bottom-UpStepwise-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. Sequential nature of instruction logic • 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. Non-sequential instruction logic • 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. Non-sequential instruction logic • Forward Branch • if cond FALSE TO DO or NOT TO DO ? That is the question! TRUE process

  9. Non-sequential instruction logic • Forward Branch • if else cond FALSE TRUE Fprocess Tprocess EITHER OR

  10. Non-sequential instruction logic • Backward Branch (Code repetition) • Pre-Form: while / for FALSE cond Do ONCE or REPEATEDLY TRUE process

  11. Non-sequential instruction logic • Backward Branch (Code repetition) • Post-Form: do while process TRUE cond FALSE

  12. Control structures • 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. 2D : Program control Multiple selection and For control structures

  14. Lecture 2D: Outline • Program control • Multiple selection • If-else if-else • switch • Repetition • do-while • for • Break and Continue

  15. Multiple selection • 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. Multiple selection • 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. Multiple selection : if-else if • 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. Multiple selection : if-else if • 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. Multiple selection : switch • 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. Multiple selection : switch • 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 • 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. Repetition : while • while ( condition_expression ) statement ; • while ( condition_expression ) { statement1 ; ...... statementN ; }

  23. Repetition : do-while • do statement ; while ( condition_expression ) ; • do { statement1 ; ...... statementN ; } while ( condition_expression ) ;

  24. Repetition : for • for ( init_stmt ; cond_expr ; update_stmt ) statement ; • for ( init_stmt ; cond_expr ; update_stmt ) { statement1 ; ...... statementN ; }

  25. Repetition : for • 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. Repetition : for • 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. Break and Continue • 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 and Continue • 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. Break and Continue • 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

  30. 2 : Summary

  31. Lecture 2: Summary • 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. Lecture 2: Summary • 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.

More Related