Outline: 2000 Prentice Hall, Inc. All Rights Reserved
Outline: 2000 Prentice Hall, Inc. All Rights Reserved
Development
Outline
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
Introduction
Algorithms
Pseudocode
Control Structures
The If Selection Structure
The If/Else Selection Structure
The While Repetition Structure
Formulating Algorithms: Case Study 1 (Counter-Controlled
Repetition)
Formulating Algorithms with Top-down, Stepwise Refinement:
Case Study 2 (Sentinel-Controlled Repetition)
Formulating Algorithms with Top-down, Stepwise Refinement:
Case Study 3 (Nested Control Structures)
Assignment Operators
Increment and Decrement Operators
3.1
Introduction
3.2
Algorithms
Computing problems
All can be solved by executing a series of actions in a
specific order
Program control
3.3
Pseudocode
Pseudocode
Artificial, informal language that helps us develop
algorithms
Similar to everyday English
Not actually executed on computers
Helps us think out a program before writing it
3.4
Control Structures
Sequential execution
Statements executed one after the other in the order written
Transfer of control
When the next statement executed is not the next one in
sequence
Overuse of goto statements led to many problems
3.4
Control Structures
Flowchart
Graphical representation of an algorithm
Drawn using certain special-purpose symbols connected by
arrows called flowlines
Rectangle symbol (action symbol):
Indicates any type of action
Oval symbol:
Indicates the beginning or end of a program or a section of code
3.5
Selection structure:
Used to choose among alternative courses of action
Pseudocode:
If students grade is greater than or equal to 60
Print Passed
If condition true
Print statement executed and program goes on to next
statement
If false, print statement is ignored and the program goes
onto the next statement
Indenting makes programs easier to read
3.5
Pseudocode statement in C:
if ( grade >= 60 )
printf( "Passed\n" );
3.5
true
print Passed
zero - false
nonzero - true
Example:
false
3 - 4 is true
3.6
if
Only performs an action if the condition is true
if/else
Specifies an action to be performed both when the condition
is true and when it is false
Psuedocode:
If students grade is greater than or equal to 60
Print Passed
else
Print Failed
10
3.6
C code:
if ( grade >= 60 )
printf( "Passed\n");
else
printf( "Failed\n");
11
3.6
grade >= 60
print Failed
true
print Passed
12
3.6
13
3.6
Compound statement:
Set of statements within a pair of braces
Example:
if ( grade >= 60 )
printf( "Passed.\n" );
else {
printf( "Failed.\n" );
printf( "You must take this course
again.\n" );
}
14
3.6
Block:
Compound statements with declarations
Syntax errors
Caught by compiler
Logic errors:
15
3.7
Repetition structure
Programmer specifies an action to be repeated while some
condition remains true
Psuedocode:
While there are more items on my shopping list
Purchase next item and cross it off my list
16
3.7
Example:
int product = 2;
while ( product <= 1000 )
product = 2 * product;
false
true
product = 2 * product
17
18
counter-controlled repetition */
Outline
#include <stdio.h>
1. Initialize Variables
int main()
2. Execute Loop
4
5
9
10
/* initialization phase */
11
total = 0;
12
counter = 1;
13
14
/* processing phase */
15
16
17
18
19
counter = counter + 1;
20
21
22
/* termination phase */
23
24
25
26
return 0;
27 }
3. Output results
19
Enter
Enter
Enter
Enter
Enter
Enter
Enter
Enter
Enter
Enter
Class
grade: 98
grade: 76
grade: 71
grade: 87
grade: 83
grade: 90
grade: 57
grade: 79
grade: 82
grade: 94
average is 81
Outline
Program Output
20
3.9
21
3.9
22
3.9
23
3.9
24
Outline
sentinel-controlled repetition */
#include <stdio.h>
1. Initialize Variables
int main()
4
5
float average;
10
11
/* initialization phase */
12
total = 0;
13
counter = 0;
14
15
/* processing phase */
16
17
18
19
while ( grade != -1 ) {
20
21
counter = counter + 1;
22
23
24
}
2000 Prentice Hall, Inc. All rights reserved.
25
25
26
/* termination phase */
27
if ( counter != 0 ) {
28
29
30
31
else
32
Outline
3. Calculate Average
3.1 Print Results
33
34
return 0;
35 }
Enter
Enter
Enter
Enter
Enter
Enter
Enter
Enter
Enter
Class
grade, -1 to end:
grade, -1 to end:
grade, -1 to end:
grade, -1 to end:
grade, -1 to end:
grade, -1 to end:
grade, -1 to end:
grade, -1 to end:
grade, -1 to end:
average is 82.50
75
94
97
88
70
64
83
89
-1
26
Program Output
Notice that
The program must process 10 test results
Counter-controlled loop will be used
27
First Refinement
Initialize variables
Input the ten quiz grades and count passes and failures
Print a summary of the exam results and decide if tuition should
be raised
28
29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
return 0;
}
/* successful termination */
Outline
1. Initialize variables
2. Input data and
count passes/failures
3. Print results
30
Enter Result
Enter Result
Enter Result
Enter Result
Enter Result
Enter Result
Enter Result
Enter Result
Enter Result
Enter Result
Passed 6
Failed 4
(1=pass,2=fail):
(1=pass,2=fail):
(1=pass,2=fail):
(1=pass,2=fail):
(1=pass,2=fail):
(1=pass,2=fail):
(1=pass,2=fail):
(1=pass,2=fail):
(1=pass,2=fail):
(1=pass,2=fail):
1
2
2
1
1
1
2
1
1
2
Outline
Program Output
31
can be rewritten as
variable operator= expression;
d
e
f
g
-=
*=
/=
%=
4
5
3
9
(d
(e
(f
(g
=
=
=
=
d
e
f
g
*
/
%
4)
5)
3)
9)
32
Preincrement
Operator is used before the variable (++c or --c)
Variable is changed before the expression it is in is evaluated
Postincrement
33
Prints 6
printf( "%d", c++ );
Prints 5
In either case, c now has the value of 6
c++;
printf( %d, c );
2000 Prentice Hall, Inc. All rights reserved.
34