Control Structures Topics to cover here: Introduction to Control Structures in the

advertisement
Control Structures
Topics to cover here:



Introduction to Control Structures in the
algorithmic language
Sequencing
Sequencing in C++ language
Programming Funamental slides
1
Control Structures
 In
your algorithm (or program), you can use
different types of statements.
 There
are 3 categories of control structures:
1- Sequencing
2- Selection
3- Repetition
Programming Funamental slides
2
1- Sequencing
A compound statement (or a block) is a
sequence of statements ordered in a way
to give a solution: e.g.
S1
S2
S3
is a sequence of 3 statements

Programming Funamental slides
3
1- Sequencing (Cont.)
The statements that have a sequential control:
1- INPUT/OUPUT statements
2- Assignment statement

INPUT/OUPUT statements
INPUT statement (in pseudo code):
Use Input statement to input data into variables
from the standard input device (e.g. a keyboard).
Programming Funamental slides
4
INPUT Statement
Syntax: INPUT List of variables
where, List of variables contains one or more
variables
e.g.
INPUT x
INPUT a, b
The semantics (execution) of this statement:
You can enter the values you want for the
variables in the statement from the keyboard and
the computer will assign these values into the
variables (stores them in memory).
Programming Funamental slides
5
OUPUT Statement (in pseudo code)

The OUTPUT statement has many uses.

Use OUTPUT statement to output
- The values of variables stored in memory.
- A message (i.e. a string of characters).
- The value of an expression.
Programming Funamental slides
6
OUPUT Statement (in pseudo code).. cont.
Syntax:
1- OUTPUT List of variables
where, List of variables contains one or more variables
e.g. OUTPUT x
OUTPUT a, b
The semantics (execution) of this statement:
This statement allows the computer to access the
locations of the variables mentioned in the
statement and displays their contents on an output
device (e.g. a screen).
Programming Funamental slides
7
OUPUT Statement (in pseudo code).. cont.
2- OUTPUT message
where message may by any string of
characters enclosed with double quotas.
e.g. OUTPUT “Enter 3 values”
Programming Funamental slides
8
OUPUT Statement (in pseudo code) (Cont.)
The semantics (execution) of this statement:
This statement will display the message on the screen.
3- OUTPUT expression
where expression is any arithmetic expression
e.g. OUTPUT
OUTPUT
3+6
x–y
The semantics (execution) of this statement:
First, the expression is evaluated, then the result will
be displayed on the screen. For the first example, it
will display 9.
Programming Funamental slides
9
OUPUT Statement (in pseudo code).. cont.
NOTE
You can mix between the different types of the
OUTPUT statements.
e.g.
OUTPUT “Length = “ , length
The semantics (execution) of this statement:
This statement will display the message
Length = on the screen and on the same line it
will display the value of the variable length.
Programming Funamental slides
10
Assignment Statement (in pseudo code)
Storing a new value in a memory location is called
assignment.
 We use the operator  as assignment operator.

Syntax:
Variable  Expression
The semantics (execution) of this statement:
1- The Expression on the right of  is evaluated
2- The result of the expression is assigned to the variable
on the left of  .
e.g.
X  10
(This means that X has 10 now )
Y  X + 5 (This means that Y has 11 now, if X is 6)
Programming Funamental slides
11
Assignment Statement (Cont.)
NOTE:
The right hand side (RHS) of the assignment
statement should be of the same data type of the left
hand side (LHS).
e.g.
1- T  true
This will be correct if T is of Boolean type.
2- A  x + y * 2
This will be correct if A has a numeric data type (e.g.
integer, or real) and the value of the expression on
(RHS) has the same numeric data type.
Programming Funamental slides
12
Assignment Statement (Cont.)
How to execute a statement like X  X + 1 ?
Suppose we have:
X5
Then to execute X  X + 1, we proceed as follows:

X
5
6
X5
XX+1
Programming Funamental slides
13
Assignment Statement .. cont.
 Dereferencing:
If we want to copy a value from one memory location (say,
X) into another location (say, Y), we say that we
dereference a variable.
e.g.
X5
Y  10
XY
// now X has the value 10
X
5
10
Y
10
Programming Funamental slides
14
Examples on Simple Algorithms
Example 1
Write an algorithm to Compute and print the
summation of two numbers.
First, we have to analyze the problem to
understand what is the input, output of the
problem, and which formula to use to solve the
problem (if any).
Programming Funamental slides
15
Example1 .. cont.
1- Analysis stage:
 Problem Input:
- num1
- num2
 Problem Output:
- summation of two numbers
 Formula:
sum=num1+num2
Programming Funamental slides
16
Example1 .. cont.
2- Algorithm Design
We write the algorithm by using the pseudo
code
ALGORITHM Summation
INPUT num1, num2
sum num1+ num2
OUTPUT “sum=“ ,sum
END Summation
Programming Funamental slides
17
Example1 .. cont.
3- Testing the algorithm
We give a sample data to see whether the algorithm solves
the problem correctly or not.
To give a sample data, proceed as follows:
1- Prepare a table to contain all variables of the algorithm.
2- Give any data you like as input.
3- Calculate any formula in the algorithm using these data.
4- Show the output
e.g.
num1
13
num2
50
sum
--63
The output:
sum= 63
Programming Funamental slides
18
Flow Chart
Input num1,num2
Sum = num1+ num2
Output sum
Programming Funamental slides
19
Examples on Simple Algorithms
Example 2
Write an algorithm to determine the total cost of
apples given the number of kilos of apples
purchased and the cost per kilo of apples.
First, we have to analyze the problem to
understand what is the input, output of the
problem, and which formula to use to solve the
problem (if any).
Programming Funamental slides
20
Example2 .. cont.
1- Analysis stage:
 Problem Input:
- Quantity of apples purchased (in kilos)
- Cost per kilo of apples (in dinar/fils per kilo)


Problem Output:
- Total cost of apples (in dinar/fils)
Formula:
Total cost = Number of kilos of apples × Cost per kilo
Programming Funamental slides
21
Example2 .. cont.
2- Algorithm Design
We write the algorithm by using the pseudo
code
ALGORITHM apples
INPUT quantity, cost
total_cost  quantity * cost
OUTPUT “Total cost = “ , total_cost
END apples
Programming Funamental slides
22
Example2 .. cont.
3- Testing the algorithm
We give a sample data to see whether the algorithm solves
the problem correctly or not.
To give a sample data, proceed as follows:
1- Prepare a table to contain all variables of the algorithm.
2- Give any data you like as input.
3- Calculate any formula in the algorithm using these data.
4- Show the output
e.g.
quantity
3
cost
0.9
total_cost
--2.7
The output:
Total cost = 2.7
Programming Funamental slides
23
Flow Chart
INPUT quantity, cost
total_cost  quantity * cost
OUTPUT “Total cost
Programming Funamental slides
24
Example 3
The
problem statement:
Write an algorithm that Compute and print the
average of three numbers
1- Analysis stage:
 Problem Input:
- n1,n2,n3


Problem Output:
- average
Formula:
sum= n1 + n2 + n3
average = sum / 3
Programming Funamental slides
25
Example 3 .. cont.
2- Algorithm Design
ALGORITHM Avg
INPUT n1, n2, n3
sum n1 + n2 + n3
average  sum / 3
OUTPUT average
END Avg
Programming Funamental slides
26
Example 3 .. cont.
3- Testing the algorithm
n1
n2
n3
sum
2
6
1
9
average
3
The output:
average= 3
----------------------------------------------------------Programming Funamental slides
27
Flow Chart
Input n1,n2,n3
sum = n1+n2+n3
Average = sum / 3
Output average
Programming Funamental slides
28
Coding (Writing a Program)

After testing your algorithm, you can code
it in any programming language.

In our lab, we are going to use C++
language.
Programming Funamental slides
29
C++ Language Elements

The general form of a C++ program
// File: filename
// Program description
# include compiler directives
void main ( ) //main function of the program
{
declarations section
executable statement section
}
Programming Funamental slides
30
1- Comments in Programs

In C++, the two symbols // are used to denote a
program comment.

If comments need more than one line, then you
can use the symbols /* to begin comment and */
to end it.
Programming Funamental slides
31
2- The include compiler directive
The line begins with #include represents
a compiler directive.
 A compiler directive is processed at
compilation time.
 C++ syntax:
# include <filename>

Programming Funamental slides
32
2- The include compiler directive




e.g.
#include <iostream.h>
iostream.h is the name of a C++ library header
file whose contents are inserted in place of the
#include line during compilation.
iostream.h is used to manipulate input/output
operations
The standard I/O stream objects, cin and cout
are already defined in iostream.h
Programming Funamental slides
33
3- Declaration Section




The declaration section tells the compiler
what data are needed in the program.
Declarations are based on the problem data
requirements identified during the problem
analysis.
All identifiers must be declared before they
are used.
Every identifier associated with a problem
data element must be declared only once in
the declaration section.
Programming Funamental slides
34
3- Declaration Section
Syntax:
<type> List-of-identifiers
where, type is any predefined type in C++, and
List-of-identifiers is a list that contains one or more
identifiers.
1- Declaring identifiers of integer type :
int x ;
int x, y;
2- Declaring identifiers of character type:
char c1, c2 ;
3- Declaring identifiers to hold real numbers:
float sum ;
double total ;
Programming Funamental slides
35
4- Executable Statements Section
Execution statements cause some kind of action to occur
when a program is executed.
 We have seen three executable statements in the
algorithmic language: INPUT, OUTPUT, and assignment
statements.
1- The Input statement in C++
Syntax:
cin >> identifier >> identifier ;
This will cause any data value, typed by the user from the
standard input devise (usually the keyboard), to be read
into the identifiers mentioned in the statement.
e.g. cin >> length ;
cin >> x >> y ;

Programming Funamental slides
36
2- The Output Statement in C++
1- Syntax:
cout << identifier << identifier ;
This statement causes the values of the identifiers to be
displayed to the standard output device (e.g. a screen).
e.g.
cout << length ;
2- Syntax:
cout << “any message” ;
This statement causes the message between quotation to
be displayed to the standard output device.
e.g.
cout << “ Enter three integer values “ ;
3- Syntax:
cout << endl ;
This statement causes a new line to be displayed in the
output. Use this for output clarity.
Note: You can mix between all type of cout.
Programming Funamental slides
37
3- The Assignment Statement in C++
Syntax:
variable = Expression ;
This statement causes the value of Expression to be
assigned into the variable on the LHS of the assignment
statement.
e.g.
x=y;
z=t*2;
w=6;
w=w+1;
NOTE:
Expression has the same operations with the same
precedence rules as with the algorithmic language with
some different symbols.
Programming Funamental slides
38
3- The Assignment Statement in C++
Operator
!, + , *, / , %
+.<, <= ,>, >=
== , !=
&&
||
=
Operator Precedence
Description
not, unary plus, unary minus
multiplication, division, mod
binary plus, binary minus
less than, less or equal, greater
than, greater or equal
equal, not equal
and
or
assignment
Programming Funamental slides
39
Examples on C++ Programs
Now, we will code the previous examples given in the
algorithmic language into C++ language.


In the lab, we will use Visual C++ environment.
Programming Funamental slides
40
Examples on C++ Programs
Example 1: (refer to the algorithm of Example 1 on slide number 17)
/*This program Compute and print the summation of two numbers
*/
#include <iostream.h>
void main() {
int num1, num2, sum;
cout<<"Please Enter two numbers:";
cin>>num1>>num2;
sum = num1 + num2;
cout<<"sum="<<sum<<endl;
}
Programming Funamental slides
41
Examples on C++ Programs
Example 2: (refer to the algorithm of Example 1 on slide number 17)
// File: apples.cpp
/*This program calculates the price of purchasing some kilos
of apples */
#include <iostream.h>
void main ( )
{ int quantity ;
float cost , total_cost ;
cin >> quantity >> cost ;
total_cost = quantity * cost ;
cout << “Total cost = “ << total_cost << endl ;
}
Programming Funamental slides
42
Examples on C++ Programs
Example 3: (refer to the algorithm of Example 1 on slide number 17)
/*This program Compute and print the average of three numbers */
#include <iostream.h>
void main() {
int n1, n2, n3;
float s, average;
cout<<"Please Enter three integers";
cin>>n1>>n2>>n3;
s = n1 + n2 + n3;
average = s / 3;
cout<<"\n Average = \t"<<average<<endl;
}
Programming Funamental slides
43
Download