programming funamental slides1 control structures topics to cover here: introduction to control...

43
Programming Funamental slides 1 Control Structures Topics to cover here: Introduction to Control Structures in the algorithmic language Sequencing Sequencing in C++ language

Upload: madelyn-harriss

Post on 14-Dec-2015

219 views

Category:

Documents


0 download

TRANSCRIPT

Programming Funamental slides 1

Control Structures

Topics to cover here:

Introduction to Control Structures in the algorithmic language

Sequencing Sequencing in C++ language

Programming Funamental slides 2

Control Structures

In your algorithm (or program), you can use different types of statements.

There are 3 categories of control structures:1- Sequencing2- Selection 3- Repetition

Programming Funamental slides 3

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 4

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 5

INPUT Statement

Syntax: INPUT List of variableswhere, 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 6

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 7

OUPUT Statement (in pseudo code).. cont.

Syntax: 1- OUTPUT List of variableswhere, 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 8

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 9

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 3 + 6 OUTPUT 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 10

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 11

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 12

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 trueThis will be correct if T is of Boolean type.

2- A x + y * 2This 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 13

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 X 5

X X + 1

5 6

Programming Funamental slides 14

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 5Y 10X Y // now X has the value 10

X Y

105 10

Programming Funamental slides 15

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 16

Example1 .. cont.

1- Analysis stage: Problem Input:

- num1

- num2 Problem Output:

- summation of two numbers Formula:

sum=num1+num2

Programming Funamental slides 17

Example1 .. cont.

2- Algorithm Design

We write the algorithm by using the pseudo code

ALGORITHM SummationINPUT num1, num2sum num1+ num2OUTPUT “sum=“ ,sum

END Summation

Programming Funamental slides 18

Example1 .. cont.

3- Testing the algorithmWe 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 outpute.g.

num1 num2 sum 13 50 ---

63The output:sum= 63

Programming Funamental slides 19

Flow Chart

Input num1,num2

Sum = num1+ num2

Output sum

Programming Funamental slides 20

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 21

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 22

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 23

Example2 .. cont.

3- Testing the algorithmWe 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 outpute.g.

quantity cost total_cost 3 0.9 ---

2.7The output:Total cost = 2.7

Programming Funamental slides 24

Flow Chart

INPUT quantity, cost

total_cost quantity * cost

OUTPUT “Total cost

Programming Funamental slides 25

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 26

Example 3 .. cont.

2- Algorithm Design

ALGORITHM AvgINPUT n1, n2, n3sum n1 + n2 + n3average sum / 3OUTPUT average

END Avg

Programming Funamental slides 27

Example 3 .. cont.

3- Testing the algorithm

n1 n2 n3 sum average

2 6 1

9

3

The output:

average= 3

-----------------------------------------------------------

Programming Funamental slides 28

Flow Chart

Input n1,n2,n3

sum = n1+n2+n3Average = sum / 3

Output average

Programming Funamental slides 29

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 30

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 31

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 32

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 33

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 34

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 35

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 36

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 37

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 38

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 39

3- The Assignment Statement in C++

Operator PrecedenceOperator 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 40

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 41

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 42

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 43

Examples on C++ ProgramsExample 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;

}