0% found this document useful (0 votes)
31 views

OOP Chapter 4 Control Structures Part 1

The document discusses control structures in programming including selection structures like if/else statements and repetition structures like while loops. It provides examples of pseudocode and flowcharts to illustrate different control structure algorithms. Keywords in C# programming language are also listed.

Uploaded by

Legesse Samuel
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views

OOP Chapter 4 Control Structures Part 1

The document discusses control structures in programming including selection structures like if/else statements and repetition structures like while loops. It provides examples of pseudocode and flowcharts to illustrate different control structure algorithms. Keywords in C# programming language are also listed.

Uploaded by

Legesse Samuel
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 45

1

Chapter 4 – Control Structures Part 1


Outline
4.1 Introduction
4.2 Algorithms
4.3 Pseudocode
4.4 Control Structures
4.5 if Selection Structure
4.6 if/else Selection Structure
4.7 while Repetition Structure
4.8 Formulating Algorithms: Case Study 1
(Counter-Controlled Repetition)
4.9 Formulating Algorithms with Top-Down, Stepwise Refinement:
Case Study 2 (Sentinel-Controlled Repetition)
4.10 Formulating Algorithms with Top-Down, Stepwise Refinement:
Case Study 3 (Nested Control Structures)
4.11 Assignment Operators
4.12 Increment and Decrement Operators
4.13 Introduction to Windows Application Programming

 2002 Prentice Hall. All rights reserved.


2

4.1 Introduction

• Before writing a program


– Understand the problem
– Think of an approach
– Understand building blocks
– Use proven principals of structured programming

 2002 Prentice Hall. All rights reserved.


3

4.2 Algorithms

• Procedure
– The actions a program will perform
– The order these actions will be performed
– Also called an algorithm
• Program control
– The task of ordering a computers procedure correctly

 2002 Prentice Hall. All rights reserved.


4

4.3 Pseudocode

• Pseudocode
– Artificial and informal language
– Helps programmers to plan an algorithm
– Similar to everyday English
– Not an actual programming language
– Converting simply replaces words with C# code

 2002 Prentice Hall. All rights reserved.


5

4.4 Control Structures

• Program of control
– Program performs one statement then goes to next line
• Sequential execution
– Different statement other than the next one executes
• Selection structure
– The if and if/else statements
– The goto statement
• No longer used unless absolutely needed
• Causes many readability problems
• Repetition structure
– The while and do/while loops (chapter 5)
– The for and foreach loops (chapter 5)

 2002 Prentice Hall. All rights reserved.


6

4.4 Control Structures

• Flow carts
– Used to map program
– Illustrates the order events will go in
• Rectangle used to show action
• Oval used to show beginning
• Circles used as connectors
• Diamonds used as decisions
– Combination of control structures
• Stacking
– Placing one after another
• Nesting
– Inserting of one structure into another

 2002 Prentice Hall. All rights reserved.


7

4.4 Control Structures

add grade to total total = total + grade;

add 1 to counter counter = counter + 1;

Fig. 4.1 Flowcharting C#’s sequence structure.

 2002 Prentice Hall. All rights reserved.


8

4.4 Control Structures


C # Ke yw o rd s
abstract as base bool break
byte case catch char checked
class const continue decimal default
delegate do double else enum
event explicit extern false finally
fixed float for foreach get
goto if implicit in int
interface internal is lock long
namespace new null object operator
out override params private protected
public readonly ref return sbyte
sealed set short sizeof stackalloc
static string struct switch this
throw true try typeof uint
ulong unchecked unsafe ushort using
value virtual void volatile while
Fig . 4.2 C # ke ywo rd s.

 2002 Prentice Hall. All rights reserved.


9

4.5 if Selection Structure

• The if structure
– Causes the program to make a selection
– Chooses based on conditional
• Any expression that evaluates to a bool type
• True: perform an action
• False: skip the action
– Single entry/exit point
– Require no semicolon in syntax

 2002 Prentice Hall. All rights reserved.


10

4.5 if Selection Structure

true
Grade >= 60 print “Passed”

false

Fig. 4.3 Flowcharting a single-selection if structure.

 2002 Prentice Hall. All rights reserved.


11

4.6 if/else selection structure

• The if/else structure


– Alternate courses can be taken when the statement is false
– Rather than one action there are two choices
– Nested structures can test many cases
– Structures with many lines of code need braces ({)
• Can cause errors
– Fatal logic error
– Nonfatal logic error

 2002 Prentice Hall. All rights reserved.


12

4.6 if/else Selection Structure

false true
Grade >= 60

print “Failed” print “Passed”

Fig. 4.4 Flowcharting a double-selection if/else structure.

 2002 Prentice Hall. All rights reserved.


13

Conditional Operator (?:)

• Conditional Operator (?:)


– C#’s only ternary operator
– Similar to an if/else structure
– The syntax is:
• (boolean value ? if true : if false)

 2002 Prentice Hall. All rights reserved.


14

4.7 while Repetition Structure

• Repetition Structure
– An action is to be repeated
• Continues while statement is true
• Ends when statement is false
– Contain either a line or a body of code
• Must alter conditional
– Endless loop

 2002 Prentice Hall. All rights reserved.


15

4.7 while Repetition Structure

true
Product <= 1000 Product = 2 * product

false

Fig. 4.5 Flowcharting the while repetition structure.

 2002 Prentice Hall. All rights reserved.


16
4.8 Formulating Algorithms: Case Study 1
(Counter Controlled Repetition)
• Counter Controlled Repetition
– Used to enter data one at a time
• Constant amount
– A counter is used to determine when the loop should break
– When counter hits certain value, the statement terminates

 2002 Prentice Hall. All rights reserved.


17
4.8 Formulating Algorithms: Case Study 1
(Counter Controlled Repetition)

Set total to zero


Set grade counter to one

While grade counter is less than or equal to ten


Input the next grade
Add the grade into the total
Add one to the grade counter

Set the class average to the total divided by ten


Print the class average

Fig. 4.6 Pseudocode algorithm that uses counter-controlled repetition to solve the class-
average problem.

 2002 Prentice Hall. All rights reserved.


18
1 // Fig. 4.7: Average1.cs Outline
2 // Class average with counter-controlled repetition.
3
4 using System;
5 Average1.cs
6 class Average1
7 {
8 static void Main( string[] args )
9 {
10 int total, // sum of grades
11 gradeCounter, // number Initialize
of grades entered
total to 0
12 gradeValue, // grade value
13 average; // average of all grades
14 Initialize gradeCounter to 1
15 // initialization phase
16 total = 0; // clear total
17 gradeCounter = 1; The
// prepare to loop while loop will loop through 10
18
19 // processing phase
times to get the grades of the 10 students
20 while ( gradeCounter <= 10 ) // loop 10 times
21 {
22 // prompt for input and read grade from user
23 Console.Write( "Enter integer grade: " ); Prompt the user to enter a grade
24
25 // read input and convert to integer
26 gradeValue = Int32.Parse( Console.ReadLine() );
27 Accumulate the total of the 10 grades
28 // add gradeValue to total
29 total = total + gradeValue; Add 1 to the counter so the loop will eventually end
30
31 // add 1 to gradeCounter
32 gradeCounter = gradeCounter + 1;
33 }
 2002 Prentice Hall.
All rights reserved.
19
34 Outline
35 // termination phase
36 average = total / 10; // integer division
37
38 // display average of exam grades Average1.cs
39 Console.WriteLine( "\nClass average is {0}", average );
40
41 } // end Main Divide the total by ten to get
42
43 } // end class Average1 the average of the ten grades

Display the results

Enter integer grade: 100 Program Output


Enter integer grade: 88
Enter integer grade: 93
Enter integer grade: 55
Enter integer grade: 68
Enter integer grade: 77
Enter integer grade: 83
Enter integer grade: 95
Enter integer grade: 73
Enter integer grade: 62

Class average is 79

 2002 Prentice Hall.


All rights reserved.
4.9 Formulating Algorithms with Top-Down, 20

Stepwise Refinement: Case Study 2 (Sentinel


Controlled Repetition)
• Sentinel controlled repetition
– Continues an arbitrary amount of times
– Sentinel value
• Causes loop to break
• Avoid collisions
– When flag value = user entered value
• Creating pseudocode
– Start with one task
– Break it into several tasks
– Continue breaking until each task is simple
• Casting
– Allows one variable to temporarily be used as another

 2002 Prentice Hall. All rights reserved.


4.9 Formulating Algorithms with Top-Down, 21

Stepwise Refinement: Case Study 2 (Sentinel


Controlled Repetition)

Initialize total to zero


Initialize counter to zero

Input the first grade (possibly the sentinel)

While the user has not as yet entered the sentinel


Add this grade into the running total
Add one to the grade counter
Input the next grade (possibly the sentinel)

If the counter is not equal to zero


Set the average to the total divided by the counter
Print the average
Else
Print “No grades were entered”

Fig. 4.8 Pseudocode algorithm that uses sentinel-controlled repetition to solve the class-
average problem.

 2002 Prentice Hall. All rights reserved.


22
1 // Fig. 4.9: Average2.cs Outline
2 // Class average with sentinel-controlled repetition.
3
4 using System;
5 Average2.cs
6 class Average2
7 {
8 static void Main( string[] args )
9 {
10 int total, // sum of grades The variable average is set to a
11 gradeCounter, // number of grades entered
double so that it can be more exact
12 gradeValue; // grade value
13 and have an answer with decimals
14 double average; // average of all grades
15
16 // initialization phase Variables gradeCounter and total are
17 total = 0; // clear total
18 gradeCounter = 0; // prepare to loop set to zero at the beginning
19
20 // processing phase
21 // prompt for input and convert to integer
22 Console.Write( "Enter Integer Grade, -1 to Quit: " );
23 gradeValue = Int32.Parse( Console.ReadLine() );
24 Get a value from the user and
store it in gradeValue

 2002 Prentice Hall.


All rights reserved.
23
25 // loop until a -1 is entered by user Outline
26 while ( gradeValue != -1 )
27 {
28 // add gradeValue to total Have the program loop as
29 total = total + gradeValue; long as gradeValue is not -1 Average2.cs
30
Accumulate the total of the grades
31 // add 1 to gradeCounter
32 gradeCounter = gradeCounter + 1; Add 1 to the counter in order
33 to know the student count
34 // prompt for input and read grade from user
35 // convert grade from string to integer
36 Console.Write( "Enter Integer Grade, -1 to Quit: " );
37 gradeValue = Int32.Parse( Console.ReadLine() );
38
39 } // end while
40
41 // termination phase Prompt the user for another
42 if ( gradeCounter != 0 ) grade, this time it is in the loop
43 { so it can happen repeatedly
44 average = ( double ) total / gradeCounter;
45
46 // display average of exam grades
47 Console.WriteLine( "\nClass average is {0}", average ); Makethesure theby
total
48 } Divide total theamount
49 else of entered
number grades
of times thewas not
program
50 { zero to
looped to prevent
find theany errors
average
51 Console.WriteLine( "\nNo grades were entered" );
52 }
53
54 } // end method Main
Display the average
55 Inform user if no grades
56 } // end class Average2
were entered
 2002 Prentice Hall.
All rights reserved.
24
Enter Integer Grade, -1 to Quit: 97 Outline
Enter Integer Grade, -1 to Quit: 88
Enter Integer Grade, -1 to Quit: 72
Enter Integer Grade, -1 to Quit: -1
Average2.cs
Class average is 85.6666666666667 Program Output

 2002 Prentice Hall.


All rights reserved.
4.10 Formulating Algorithms with Top-Down, 25

Stepwise Refinement: Case Study 3 (Nested


Control Structures)
• Nesting
– The insertion of one control structure inside another
• Multiple loops
• Loops with if statements

 2002 Prentice Hall. All rights reserved.


4.10 Formulating Algorithms with Top-Down, 26

Stepwise Refinement: Case Study 3 (Nested


Control Structures)
Initialize passes to zero
Initialize failures to zero
Initialize student to one

While student counter is less than or equal to ten


Input the next exam result

If the student passed


Add one to passes
Else
Add one to failures

Add one to student counter

Print the number of passes


Print the number of failures

If more than eight students passed


Print “Raise tuition”
Fig. 4.10 Pseudocode for examination-results problem.

 2002 Prentice Hall. All rights reserved.


27
1 // Fig. 4.11: Analysis.cs Outline
2 // Analysis of Examination Results.
3
4 using System;
5 Analysis.cs
6 class Analysis
7 {
8 static void Main( string[] args )
9 { Initialize both passes and failures to 0
10 int passes = 0, // number of passes
11 failures = 0,
Set the student count to 1
// number of failures
12 student = 1, // student counter
13 result; // one exam result
14 A while loop that will loop 10 times
15 // process 10 students; counter-controlled loop
16 while ( student <= 10 )
17 {
18 Console.Write( "Enter result (1=pass, 2=fail): " );
19 result = Int32.Parse( Console.ReadLine() );
20
21 if ( result == 1 )
A nested if statement that determines
22 passes = passes + 1; which counter should be added to
23
24 else
25 failures = failures + 1; If the user enters 1
26 add one to passes
27 student = student + 1;
28 }
29 If the user enters 2 then add one to failures

Keep track of the total number of students


 2002 Prentice Hall.
All rights reserved.
28
30 // termination phase Outline
31 Console.WriteLine();
32 Console.WriteLine( "Passed: " + passes );
33 Console.WriteLine( "Failed: " + failures );
34 Analysis.cs
35 if ( passes > 8 )
36 Console.WriteLine( "Raise Tuition\n" ); Display the results to the user
37
38 } // end of method Main
39
40 } // end of class Analysis
If the total number of passes was greater than
8 then also tell the user to raise the tuition

Enter result (1=pass, 2=fail): 1 Program Output


Enter result (1=pass, 2=fail): 2
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1

Passed: 9
Failed: 1
Raise Tuition
 2002 Prentice Hall.
All rights reserved.
29
Enter result (1=pass, 2=fail): 1 Outline
Enter result (1=pass, 2=fail): 2
Enter result (1=pass, 2=fail): 2
Enter result (1=pass, 2=fail): 2
Enter result (1=pass, 2=fail): 2 Analysis.cs
Enter result (1=pass, 2=fail): 2 Program Output
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1

Passed: 5
Failed: 5

 2002 Prentice Hall.


All rights reserved.
30

4.11 Assignment Operators

• Assignment operators
– Can reduce code
• x += 2 is the same as x = x + 2
– Can be done with all the math operators
• ++, -=, *=, /=, and %=

 2002 Prentice Hall. All rights reserved.


31

4.11 Assignment Operators

Assig n m e n t o p e ra to r Sa m p le e xp re ssio n Exp la na tio n Assig n s


Assume: int c = 3,
d = 5, e = 4, f =
6, g = 12;
+= c += 7 c = c + 7 10 to c
-= d -= 4 d = d - 4 1 to d
*= e *= 5 e = e * 5 20 to e
/= f /= 3 f = f / 3 2 to f
%= g %= 9 g = g % 9 3 to g
Fig . 4.12 Arith m e tic a ssig n m e n t o p e ra to rs.

 2002 Prentice Hall. All rights reserved.


32

4.12 Increment and Decrement Operators

• Increment operator
– Used to add one to the variable
– x++
– Same as x = x + 1
• Decrement operator
– Used to subtract 1 from the variable
– y--
• Pre-increment vs. post-increment
– x++ or x--
• Will perform an action and then add to or subtract one from
the value
– ++x or --x
• Will add to or subtract one from the value and then perform an
action
 2002 Prentice Hall. All rights reserved.
33

4.12 Increment and Decrement Operators

O p e ra to r C a lle d Sa m p le e xp re ssio n Exp la na tio n


++ preincrement ++a Increment a by 1, then use the new value
of a in the expression in which a resides.

++ postincrement a++ Use the current value of a in the expression


in which a resides, then increment a by 1.
-- predecrement --b Decrement b by 1, then use the new value
of b in the expression in which b resides.
-- postdecrement b-- Use the current value of b in the expression
in which b resides, then decrement b by 1.
Fig . 4.13 The inc re m e nt a nd d e c re m e nt o p e ra to rs.

 2002 Prentice Hall. All rights reserved.


34
1 // Fig. 4.14: Increment.cs Outline
2 // Preincrementing and postincrementing
3
4 using System;
5 Increment.cs
6 class Increment
7 {
8 static void Main(string[] args)
9 {
10 int c; Declare variable c
11
12 c = 5; Set c equal
Display c (5) to 5
13 Console.WriteLine( c ); // print 5
14 Display
Console.WriteLine( c++ ); // print 5 then c (5) then
postincrement add 1
15 Console.WriteLine( c ); // print 6
16 Display c (6)
17 Console.WriteLine(); // skip a line
18
19 c = 5;
20 Console.WriteLine( c ); // print c5 is set to 5 Display c (5)
21 Console.WriteLine( ++c ); // preincrement then print 6
22 Console.WriteLine( c ); // print 6 Add 1 then display c (6)
23
24 } // end of method Main Display c (6)
25
26 } // end of class Increment

5 Program Output
5
6

5
6
6  2002 Prentice Hall.
All rights reserved.
35

4.12 Increment and Decrement Operators

O p e ra to rs Asso c ia tivity Typ e


() left to right parentheses
right to left unary postfix
++ --
++ -- + - (type) right to left unary prefix
* / % left to right multiplicative
+ - left to right additive
< <= > >= left to right relational
== != left to right equality
?: right to left conditional
= += -= *= /= %= right to left assignment
Fig . 4.15 Pre c e d e nc e a nd a sso c ia tivity o f the o p e ra to rs d isc usse d so fa r in this
b o o k.

 2002 Prentice Hall. All rights reserved.


36
4.13 Introduction to Windows Application
Programming
• Inheritance
– Base class
• a class from which another class inherits from
– Derived class
• The class from which another class inherits
– Classes inherit basics of a class
• Attributes (data)
• Behaviors (methods)
– Prevents the continual rewriting of code

 2002 Prentice Hall. All rights reserved.


37
4.13 Introduction to Windows Application
Programming

Collapsed
comment

Collapsed
code

Fig. 4.16 IDE showing program code for Fig. 2.15.

 2002 Prentice Hall. All rights reserved.


38
4.13 Introduction to Windows Application
Programming

Expanded code

Fig. 4.17 Windows Form Designer generated code when expanded.

 2002 Prentice Hall. All rights reserved.


39
4.13 Introduction to Windows Application
Programming
Click here for Property initializations
code view for WelcomeLabel
Click here for
design view

Fig. 4.18 Code generated by the IDE for welcomeLabel.

 2002 Prentice Hall. All rights reserved.


40
4.13 Introduction to Windows Application
Programming

Text property

Fig. 4.19 Using the Properties window to set a property value.

 2002 Prentice Hall. All rights reserved.


41
4.13 Introduction to Windows Application
Programming

Fig. 4.20 Windows Form Designer generated code reflecting new property values.

 2002 Prentice Hall. All rights reserved.


42
4.13 Introduction to Windows Application
Programming

Text property

Fig. 4.21 Changing a property in the code view editor.

 2002 Prentice Hall. All rights reserved.


43
4.13 Introduction to Windows Application
Programming

Text property value

Fig. 4.22 New Text property value reflected in design mode.

 2002 Prentice Hall. All rights reserved.


44
4.13 Introduction to Windows Application
Programming

ASimpleProgram_Load method

Fig. 4.23 Method ASimpleProgram_Load.

 2002 Prentice Hall. All rights reserved.


45
4.13 Introduction to Windows Application
Programming

Fig. 4.24 Changing a property value at runtime.

 2002 Prentice Hall. All rights reserved.

You might also like