Presentation is loading. Please wait.

Presentation is loading. Please wait.

C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.

Similar presentations


Presentation on theme: "C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to."— Presentation transcript:

1 C Lecture Notes 1 Program Control (Cont...)

2 C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to the while structure –Condition for repetition tested after the body of the loop is performed All actions are performed at least once –Format: do { statement; } while ( condition );

3 C Lecture Notes 3 4.8The do / while Repetition Structure Example (letting counter = 1): do { printf( "%d ", counter ); } while (++counter <= 10); –Prints the integers from 1 to 10

4 C Lecture Notes 4 4.8The do / while Repetition Structure Flowchart of the do / while repetition structure true false action(s) condition

5 1. Initialize variable 2. Loop 3. Print Program Output 1/* Fig. 4.9: fig04_09.c 2 Using the do/while repetition structure */ 3#include 4 5int main() 6{6{ 7 int counter = 1; 8 9 do { 10 printf( "%d ", counter ); 11 } while ( ++counter <= 10 ); 12 13 return 0; 14} 1 2 3 4 5 6 7 8 9 10

6 C Lecture Notes 6 4.9The break and continue Statements break –Causes immediate exit from a while, for, do / while or switch structure –Program execution continues with the first statement after the structure –Common uses of the break statement Escape early from a loop Skip the remainder of a switch structure

7 C Lecture Notes 7 4.9The break and continue Statements continue –Skips the remaining statements in the body of a while, for or do / while structure Proceeds with the next iteration of the loop –while and do / while Loop-continuation test is evaluated immediately after the continue statement is executed –for Increment expression is executed, then the loop-continuation test is evaluated

8 1. Initialize variable 2. Loop 3. Print Program Output 1/* Fig. 4.12: fig04_12.c 2 Using the continue statement in a for structure */ 3#include 4 5int main() 6{6{ 7 int x; 8 9 for ( x = 1; x <= 10; x++ ) { 10 11 if ( x == 5 ) 12 continue; /* skip remaining code in loop only 13 if x == 5 */ 14 15 printf( "%d ", x ); 16 } 17 18 printf( "\nUsed continue to skip printing the value 5\n" ); 19 return 0; 20} 1 2 3 4 6 7 8 9 10 Used continue to skip printing the value 5

9 C Lecture Notes 9 4.10Logical Operators && ( logical AND ) –Returns true if both conditions are true || ( logical OR ) –Returns true if either of its conditions are true ! ( logical NOT, logical negation ) –Reverses the truth/falsity of its condition –Unary operator, has one operand Useful as conditions in loops ExpressionResult true && falsefalse true || falsetrue !falsetrue

10 C Lecture Notes 10 4.11Confusing Equality ( == ) and Assignment ( = ) Operators Dangerous error –Does not ordinarily cause syntax errors –Any expression that produces a value can be used in control structures –Nonzero values are true, zero values are false –Example using == : if ( payCode == 4 ) printf( "You get a bonus!\n" ); Checks paycode, if it is 4 then a bonus is awarded

11 C Lecture Notes 11 4.11Confusing Equality ( == ) and Assignment ( = ) Operators –Example, replacing == with = : if ( payCode = 4 ) printf( "You get a bonus!\n" ); This sets paycode to 4 4 is nonzero, so expression is true, and bonus awarded no matter what the paycode was –Logic error, not a syntax error

12 C Lecture Notes 12 4.11Confusing Equality ( == ) and Assignment ( = ) Operators lvalues –Expressions that can appear on the left side of an equation –Their values can be changed, such as variable names x = 4; rvalues –Expressions that can only appear on the right side of an equation –Constants, such as numbers Cannot write 4 = x; Must write x = 4; –lvalues can be used as rvalues, but not vice versa y = x;

13 C Lecture Notes 13 4.12Structured-Programming Summary Structured programming –Easier than unstructured programs to understand, test, debug and, modify programs Rules for structured programming –Rules developed by programming community –Only single-entry/single-exit control structures are used –Rules: 1.Begin with the “simplest flowchart” 2.Any rectangle (action) can be replaced by two rectangles (actions) in sequence 3.Any rectangle (action) can be replaced by any control structure (sequence, if, if / else, switch, while, do / while or for ) 4.Rules 2 and 3 can be applied in any order and multiple times

14 C Lecture Notes 14 4.12Structured-Programming Summary....... Rule 2 Rule 1 - Begin with the simplest flowchart Rule 2 - Any rectangle can be replaced by two rectangles in sequence

15 C Lecture Notes 15 4.12Structured-Programming Summary Rule 3 Rule 3 - Replace any rectangle with a control structure

16 C Lecture Notes 16 4.12Structured-Programming Summary All programs can be broken down into 3 controls –Sequence – handled automatically by compiler –Selection – if, if / else or switch –Repetition – while, do / while or for Can only be combined in two ways –Nesting (rule 3) –Stacking (rule 2) –Any selection can be rewritten as an if statement, and any repetition can be rewritten as a while statement

17 C Lecture Notes 17 Functions

18 C Lecture Notes 18 5.1Introduction Divide and conquer –Construct a program from smaller pieces or components These smaller pieces are called modules –Each piece more manageable than the original program

19 C Lecture Notes 19 5.2Program Modules in C Functions –Modules in C –Programs combine user-defined functions with library functions C standard library has a wide variety of functions Function calls –Invoking functions Provide function name and arguments (data) Function performs operations or manipulations Function returns results –Function call analogy: Boss asks worker to complete task –Worker gets information, does task, returns result –Information hiding: boss does not know details

20 C Lecture Notes 20 5.3Math Library Functions Math library functions –perform common mathematical calculations –#include Format for calling functions –FunctionName( argument ); If multiple arguments, use comma-separated list –printf( "%.2f", sqrt( 900.0 ) ); Calls function sqrt, which returns the square root of its argument All math functions return data type double –Arguments may be constants, variables, or expressions

21 C Lecture Notes 21 5.4Functions Functions –Modularize a program –All variables declared inside functions are local variables Known only in function defined –Parameters Communicate information between functions Local variables Benefits of functions –Divide and conquer Manageable program development –Software reusability Use existing functions as building blocks for new programs Abstraction - hide internal details (library functions) –Avoid code repetition

22 C Lecture Notes 22 5.5Function Definitions Function definition format return-value-type function-name( parameter-list ) { declarations and statements } –Function-name: any valid identifier –Return-value-type: data type of the result (default int ) void – indicates that the function returns nothing –Parameter-list: comma separated list, declares parameters A type must be listed explicitly for each parameter unless, the parameter is of type int

23 C Lecture Notes 23 5.5Function Definitions Function definition format (continued) return-value-type function-name( parameter-list ) { declarations and statements } –Declarations and statements: function body (block) Variables can be declared inside blocks (can be nested) Functions can not be defined inside other functions –Returning control If nothing returned –return; –or, until reaches right brace If something returned –return expression ;

24 1. Function prototype (3 parameters) 2. Input values 2.1 Call function 3. Function definition Program Output 1/* Fig. 5.4: fig05_04.c 2 Finding the maximum of three integers */ 3#include 4 5int maximum( int, int, int ); /* function prototype */ 6 7int main() 8{8{ 9 int a, b, c; 10 11 printf( "Enter three integers: " ); 12 scanf( "%d%d%d", &a, &b, &c ); 13 printf( "Maximum is: %d\n", maximum( a, b, c ) ); 14 15 return 0; 16} 17 18/* Function maximum definition */ 19int maximum( int x, int y, int z ) 20{ 21 int max = x; 22 23 if ( y > max ) 24 max = y; 25 26 if ( z > max ) 27 max = z; 28 29 return max; 30} Enter three integers: 22 85 17 Maximum is: 85

25 C Lecture Notes 25 5.6Function Prototypes Function prototype –Function name –Parameters – what the function takes in –Return type – data type function returns (default int ) –Used to validate functions –Prototype only needed if function definition comes after use in program –The function with the prototype int maximum( int, int, int ); Takes in 3 int s Returns an int Promotion rules and conversions –Converting to lower types can lead to errors

26 C Lecture Notes 26 5.7Header Files Header files –Contain function prototypes for library functions –,, etc –Load with #include #include Custom header files –Create file with functions –Save as filename.h –Load in other files with #include "filename.h" –Reuse functions


Download ppt "C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to."

Similar presentations


Ads by Google