programming fundamentals by dr. nadia y. yousif1 control structures (selections) topics to cover...

33
Programming Fundamentals by Dr. Nadia Y. Yousif 1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language: One-Way Selection Two-Way Selection Multi-Way Selection Nested Structures Selection statements in C++ language

Upload: stuart-potter

Post on 18-Jan-2018

218 views

Category:

Documents


0 download

DESCRIPTION

Programming Fundamentals by Dr. Nadia Y. Yousif3 One-Way Selection IF.. END IF statement (in pseudo code): Syntax: IF (condition) THEN statements END IF The semantics (execution) of this statement: - If the value of the “condition” is true, the statements between IF.. END IF are executed and the execution continues to the statement after END IF. - If the value of the “condition” is false, the statements between IF.. END IF are ignored and the execution continues from the statement that follows END IF.

TRANSCRIPT

Page 1: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

1

Control Structures(Selections)

Topics to cover here:

Selection statements in the algorithmic language:

One-Way Selection Two-Way Selection Multi-Way Selection Nested Structures

Selection statements in C++ language

Page 2: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

2

Selections .. cont.

The selection statement allows to choose a set of statements for execution.

The selection depends on the validity of a condition when the program is executed.

The condition is a logical expression that has values as true or false.

Page 3: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

3

One-Way Selection IF .. END IF statement (in pseudo code): Syntax:

IF (condition) THENstatements

END IF

The semantics (execution) of this statement:- If the value of the “condition” is true, the statements

between IF .. END IF are executed and the execution continues to the statement after END IF.

- If the value of the “condition” is false, the statements between IF .. END IF are ignored and the execution continues from the statement that follows END IF.

Page 4: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

4

One-Way Selection

The following figure shows the execution of this selection statement.

Condition

true

false

continue

statements

Page 5: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

5

One-Way Selection .. Examples Example 1:Write an algorithm that takes an integer and prints its double value if it is less than 50.

First, we have to analyze the problem to understand what is its requirements and how to solve it.

1- Analysis stage: Problem Input: - An integer, say n Problem Output: - The double value of n Criteria if n < 50, print its double value

Page 6: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

6

Example 1 .. cont.

2- Algorithm DesignALGORITHM Double INPUT n IF ( n < 50 ) THEN OUTPUT “The double value is “ , n * 2END IF OUTPUT “ Finished”END

Page 7: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

7

Example 1 .. cont.

3- Testing the algorithm n (n < 50)

12 --- trueThe output: The double value is 24 Finished

Page 8: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

8

Selection Statements in C++If Statement in C++

Semantics:These statements have the same meaning as in the algorithmic language.

1- One way selection:Syntax: if (logical expression) statements;

Page 9: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

9

Example 1: C++ Program// File: double.cpp/*The program corresponds to Example 1 on slide 5. It takes an

integer and prints its double value if it is less than 50 */#include <iostream.h>void main ( ){ int n ; cin >> n ; if (n < 50) cout << “The double value is “ << n * 2 << endl ; cout << “ Finished “ << endl;}

Page 10: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

10

Example 2

Write an algorithm that takes two integers and prints the smallest number. Use only one output statement.

1- Analysis stage: Problem Input: - Two integers, say num1 and num2 Problem Output: - The smaller numberCriteria Print the smaller number using only one output statement

Page 11: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

11

Example 2 .. cont.

2- Algorithm DesignALGORITHM Smallest INPUT num1, num2 temp num1 IF ( num2 < num1 ) THEN temp num2 END IF OUTPUT “The smallest number is “ , tempEND Smallest

Page 12: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

12

Example 2 .. cont.

3- Testing the algorithm

num1 num2 temp (num2<num1)9 3 ---

9 true

3The output:The smallest number is 3

Page 13: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

13

Two-Way Selection

IF .. THEN .. ELSE statement (in pseudo code):This statement chooses- statements to run- from two sets of choices. Syntax:

IF (condition) THENstatements1

ELSEstatements2

END IF

Page 14: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

14

Two-Way Selection .. cont.

The semantics (execution) of this statement:- If the value of the “condition” is true, the statements after THEN are executed and the execution continues to the statement after END IF.

- If the value of the “condition” is false, the statements after ELSE are executed and the execution continues from the statement that follows END IF.

- The following figure shows this execution:

Page 15: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

15

Two-Way Selection .. cont.

condition

statements2 statements1

continue

truefalse

Page 16: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

16

Two-Way Selection .. Examples Example 3:

Write an algorithm that takes two integers and prints the smallest number with appropriate message.

1- Analysis stage: Problem Input: - Two integers, say num1 and num2

Problem Output: - The smaller number

Page 17: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

17

Example 3 .. cont.

2- Algorithm DesignALGORITHM Smaller INPUT num1, num2 IF ( num1 < num2 ) THEN OUTPUT “The smaller number is “ , num1 ELSE OUTPUT “The smaller number is “ , num2 END IFEND Smaller

Page 18: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

18

Example 3 .. cont.

3- Testing the algorithm

num1 num2 (num2<num1) 9 3 --- true

The output:The smaller number is 3

Page 19: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

19

Selection Statements in C++

2- Two way selection:Syntax: if (logical expression) statements1; else statements2;

Page 20: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

20

Example 2: C++ Program// File: Smaller.cpp/*The program corresponds to Example 3 on slide 14. It takes two

integers and prints the smaller value using one output statement*/

#include <iostream.h>void main ( ){ int num1, num2 ; cin >> num1 >> num2 ; if ( num1 < num2 ) cout << “The smaller value is “ << num1 << endl ; else cout << “The smaller value is “ << num12 << endl ;}

Page 21: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

21

Multi Way Selection

You can choose statement(s) to run from many sets of choices.

There are two cases for this:

(a) Multi way selection by nested IF structure

(b) Multi way selection by SWITCH structure

Page 22: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

22

Multi Way Selection by Nested IF Structure

The structure that contains another structure of the same type is called a nested structure.

In the Nested IF structure, the statements

that exists between IF and ELSE or between IF and END IF can contain IF statement.

Page 23: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

23

Multi Way Selection by Nested If Structure .. Cont. Syntax of one possible structure: IF (condition1) THEN Statements1 ELSE IF (condition2) THEN Statements2 ELSE IF (Condition3) THEN Statements3 ELSE IF (Condition4) THEN Statements4 END IF END IF END IF

Note: The nest can be to many levels. The following figure shows the execution of this structure.

Page 24: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

24

Multi Way Selection by Nested If Structure .. Cont.

Condition1

Condition2 Statements2

Statements3

Rest of algorithm

Statements1

Condition3

Statements4

True

True

True

False

False

False

Page 25: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

25

Multi Way Selection by Nested If Structure .. Examples

Example 4:Write an algorithm that inputs a student mark and outputs the corresponding grade, where grades are as follows:

mark grade90-100 A80-89 B70-79 C60-69 D< 60 E

Page 26: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

26

Example 4 .. Cont.

1- Analysis stage: Problem Input: - student’s mark, mark

Problem Output: - grade

Criteria - according to the previous grade table

Page 27: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

27

Example 4 .. Cont.2- Algorithm DesignALGORITHM Grades INPUT mark IF ( mark < 0 OR mark > 100 ) THEN OUTPUT “ Mark out of range” ELSE IF ( mark 90 AND mark 100 ) THEN OUTPUT “A” ELSE IF ( mark 80 ) THEN OUTPUT “B” ELSE IF ( mark 70 ) THEN OUTPUT “C” ELSE IF ( mark 60 ) THEN OUTPUT “D” ELSE OUTPUT “E” END IF END IF END IF END IF END IFEND Grades

Page 28: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

28

Example 3: C++ Program// File: Grades.cpp/*The program corresponds to Example 4 on slide 21. It reads a student’s mark

and prints the corresponding grade */#include <iostream.h>void main ( ){ int mark ; cin >> mark; if ( mark < 0 || mark > 100 ) cout << “ Mark out of range” << endl; else if ( mark >= 90 ) cout << “A” << endl ; else if ( mark >= 80 ) cout << “A” << endl ; else if ( mark >= 70 ) cout << “C” << endl ; else if ( mark >= 60 ) cout << “D” << endl ; else cout << “E” << endl ; }

Page 29: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

29

Comparison of Nested IF Structure and a Sequence of IF Structures Some times the nested IF structure is a good solution for a

given problem than a sequence of IF structures. Consider the following example:(a) Nested case: IF ( x > 0 ) THEN pos_count pos_count + 1 ELSE IF ( x < 0 ) THEN neg_count neg_count + 1 ELSE zero_count zero_count + 1 END IF END IF

Page 30: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

30

Comparison of Nested IF Structure and a Sequence of IF Structures

(b) Sequence case: IF ( x > 0 ) THEN pos_count pos_count + 1 END IF IF ( x < 0 ) THEN neg_count neg_count + 1 END IF IF ( x = 0 ) THEN zero_count zero_count + 1 END IF

Page 31: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

31

Comparison of Nested IF Structure and a Sequence of IF Structures

In the previous example, only one statement should be executed for any value of x.

In the sequence case, the sequence does not show clearly that exactly one of the three statements is executed for any value of x.

In the nested case, only one statement is executed exactly. Therefore, it is better than the sequence case.

Page 32: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

32

Problem : Read three numbers to print the smallest one.Program#include <iostream.h>void main() {

int a, b, c;cout<<"\nPlease Enter three numbers:";cin>>a>>b>>c;cout<<"\nMin= ";if ((a < b) && (a < c))

cout<<a;if ((b < a) && (b < c))

cout<<b;if ((c < a) && (c < b))

cout<<c;cout<<endl;

}

Page 33: Programming Fundamentals by Dr. Nadia Y. Yousif1 Control Structures (Selections) Topics to cover here: Selection statements in the algorithmic language:

Programming Fundamentals by Dr. Nadia Y. Yousif

33

Program2 (nested if)#include <iostream.h>void main() {

int a, b, c;cout<<"\nPlease Enter three numbers:";cin>>a>>b>>c;cout<<"\nMin= ";if (a < b)

if (a < c)cout<<a;

elsecout<<c;

elseif (b < c)

cout<<b;else

cout<<c;cout<<endl;

}