C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition...
-
date post
20-Dec-2015 -
Category
Documents
-
view
230 -
download
2
Transcript of C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition...
![Page 1: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/1.jpg)
1
C Lecture Notes
Program Control (Cont...)
![Page 2: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/2.jpg)
2
C Lecture Notes
4.8 The 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 );
![Page 3: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/3.jpg)
3
C Lecture Notes
4.8 The do/while Repetition Structure
• Example (letting counter = 1):do {
printf( "%d ", counter );
} while (++counter <= 10);
– Prints the integers from 1 to 10
![Page 4: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/4.jpg)
4
C Lecture Notes
4.8 The do/while Repetition Structure
• Flowchart of the do/while repetition structure
true
false
action(s)
condition
![Page 5: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/5.jpg)
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 <stdio.h>
4
5 int main()
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
![Page 6: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/6.jpg)
6
C Lecture Notes
4.9 The 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
![Page 7: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/7.jpg)
7
C Lecture Notes
4.9 The 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
![Page 8: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/8.jpg)
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 <stdio.h>
4
5 int main()
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 10Used continue to skip printing the value 5
![Page 9: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/9.jpg)
9
C Lecture Notes
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 loopsExpression Result
true && false falsetrue || false true
!false true
![Page 10: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/10.jpg)
10
C Lecture Notes
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
![Page 11: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/11.jpg)
11
C Lecture Notes
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
![Page 12: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/12.jpg)
12
C Lecture Notes
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;
![Page 13: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/13.jpg)
13
C Lecture Notes
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
![Page 14: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/14.jpg)
14
C Lecture Notes
4.12Structured-Programming Summary
.
.
.
Rule 2 Rule 2 Rule 2
Rule 1 - Begin with the simplest flowchart
Rule 2 - Any rectangle can be replaced by two rectangles in sequence
![Page 15: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/15.jpg)
15
C Lecture Notes
4.12Structured-Programming Summary
Rule 3
Rule 3
Rule 3
Rule 3 - Replace any rectangle with a control structure
![Page 16: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/16.jpg)
16
C Lecture Notes
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
![Page 17: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/17.jpg)
17
C Lecture Notes
Functions
![Page 18: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/18.jpg)
18
C Lecture Notes
5.1 Introduction
• 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
![Page 19: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/19.jpg)
19
C Lecture Notes
5.2 Program 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
![Page 20: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/20.jpg)
20
C Lecture Notes
5.3 Math Library Functions
• Math library functions – perform common mathematical calculations– #include <math.h>
• 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
![Page 21: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/21.jpg)
21
C Lecture Notes
5.4 Functions
• 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
![Page 22: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/22.jpg)
22
C Lecture Notes
5.5 Function Definitions
• Function definition formatreturn-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
![Page 23: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/23.jpg)
23
C Lecture Notes
5.5 Function 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;
![Page 24: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/24.jpg)
1. Function prototype (3 parameters)
2. Input values
2.1 Call function
3.Function definition
Program Output
1 /* Fig. 5.4: fig05_04.c2 Finding the maximum of three integers */3 #include <stdio.h>45 int maximum( int, int, int ); /* function prototype */67 int main()8 {9 int a, b, c;1011 printf( "Enter three integers: " );12 scanf( "%d%d%d", &a, &b, &c );13 printf( "Maximum is: %d\n", maximum( a, b, c ) );1415 return 0;16 }1718 /* Function maximum definition */19 int maximum( int x, int y, int z )20 {21 int max = x;2223 if ( y > max )24 max = y;2526 if ( z > max )27 max = z;2829 return max;30 }
Enter three integers: 22 85 17Maximum is: 85
![Page 25: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/25.jpg)
25
C Lecture Notes
5.6 Function 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 prototypeint maximum( int, int, int );
• Takes in 3 ints
• Returns an int
• Promotion rules and conversions– Converting to lower types can lead to errors
![Page 26: C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.](https://reader036.fdocuments.in/reader036/viewer/2022062313/56649d435503460f94a1f57e/html5/thumbnails/26.jpg)
26
C Lecture Notes
5.7 Header Files
• Header files– Contain function prototypes for library functions– <stdlib.h> , <math.h> , etc
– Load with #include <filename>#include <math.h>
• Custom header files– Create file with functions
– Save as filename.h– Load in other files with #include "filename.h"– Reuse functions