1 / 36

# Fundamental Programming - PowerPoint PPT Presentation

Fundamental Programming. Data Processing and Expressions. Status. this week we are starting to: developing familiarity with the C++ language developing skill in software development (in lab) providing an introduction to some fundamental programming concepts

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

Fundamental Programming

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

## Fundamental Programming

Data Processing and Expressions

Fundamental Programming 310201

### Status

• this week we are starting to:

• developing familiarity with the C++ language

• developing skill in software development (in lab)

• providing an introduction to some fundamental programming concepts

• in the last class we started to look at some C++ syntax – the grammar rules

• today we look at some fundamental concepts common to all programming languages

Fundamental Programming 310201

### Review

• a program performs a sequence of input, output and assignment statements

• selection and repetitionstatements control which of the program’s input, outputand assignment statements are performed

• selection(if-then-else) statements provide alternate pathways through the program

• repetition(while) statements control the number of times a blockof statements is performed

Fundamental Programming 310201

### Data Processing

• we said that computers are data processing devices – they convert input data into output data

• where does all the data processing occur in a program?

• recall our sample program...

Fundamental Programming 310201

### Sample Program

write “Number of marks: “

write “Student’s mark: “

set ProportionOfMarks to StudentMark / NbrMarks

set PercentageOfMarks to ProportionOfMarks * 100

write “ Student’s percentage: “

write PercentageOfMarks

• in this program, all the data processing occurs in assignmentstatements

Fundamental Programming 310201

### Anatomy of an Assignment

• let’s analyse the assignment statement…

• here, the two assignment statements are:

set ProportionOfMarks to StudentMark / NbrMarks

set PercentageOfMarks to ProportionOfMarks * 100

• that is:

set < variable > to < value of interest >

• here, the values of interest are:

StudentMark / NbrMarks

ProportionOfMarks * 100

Fundamental Programming 310201

### Expressions

• we use the term expressionto mean:

• the description of a value of interest

• we describe the value that we wish to assign to a data object in an expression

• so:

StudentMark / NbrMarks

ProportionOfMarks * 100

• are two expressions

Fundamental Programming 310201

### Data Processing

• so, where does the data processinghappen?

assignmentstatements

• it can also happen in outputstatements…

Fundamental Programming 310201

### Alternative Design

write “Number of marks: “

write “Student’s mark: “

set ProportionOfMarks toStudentMark / NbrMarks

write “ Percentage: “

write ProportionOfMarks * 100

Fundamental Programming 310201

### Anatomy of an Output

• the anatomy of our assignment statement is:

set < variable > to< expression >

• the anatomy of our output statement is:

write < expression >

• so, where does all the data processing happen?

Expressions!

Fundamental Programming 310201

### Expressions

• clearly, expressions are important - that’s where the dataprocessing happens

• let’s take a closer look at expressions

• previously, we said that data was numbers and text -for now, we just deal with expressions to process numbers

• the anatomy of an expressionis one we’ve seen before...

Fundamental Programming 310201

### Expressions as a Black Box

• we can think of an expression as a black box

• expressions have one or more input values and produce one output value - theinput-process-output model again

• example: StudentMark / NbrMarks

input process output

StudentMark ?

NbrMarks(a single value -

depends on inputs)

Fundamental Programming 310201

### Operators

• we use the term operatorto mean:

• a symbol, or name, used to represent an operationthat can be performed on data

• in the two expressions:

StudentMark / NbrMarks

ProportionOfMarks * 100

• the operators are:

• / for division

• * for multiplication

• + and -are used for addition and subtraction

• +, -, *, / all work in C++ as you would expect

Fundamental Programming 310201

### Operands

• we use the term operandto mean:

• an input to an expression

• in the two expressions:

StudentMark / NbrMarks

ProportionOfMarks * 100

• the operands are:

• StudentMark and NbrMarks

• ProportionOfMarks and100

Fundamental Programming 310201

### Binary Operators

• in the following examples:

StudentMark / NbrMarks

ProportionOfMarks * 100

NbrMarks - StudentMark

StudentMark + 10

• each operator is used with twooperands

• so / , * , - and + are binaryoperators –they can all be used with twooperands

Fundamental Programming 310201

### Unary Operators

• the + and - operators are also unaryoperators (they can be used with just one operand)

• examples:

-273.15as inset AbsoluteZero to-273.15

+100as inset BoilingPointOfWater to+100

expression

- 273.15

operand

operator

Fundamental Programming 310201

### Numeric Expressions

• expressions that evaluateto a number are called numericexpressions

• numeric expression come in all shapes and sizes:

• a number by itself – a literal:

set NbrTimesTold to0

• the name of a variable:

write Percentage

• expressions that use operators:

set NbrTimesTold toNbrTimesTold + 1

Fundamental Programming 310201

### Power of Expressions

• the arithmeticoperators+, -, * and / give us a powerful language to process numbers

• the power comes from the ability to nestlittle expressions inside bigger expressions

set ProportionOfMarks toStudentMark / NbrMarks

write ProportionOfMarks * 100

• we can write:

write StudentMark / NbrMarks * 100

• question: which operator is applied first here? and, does it matter?

Fundamental Programming 310201

### Nested Expressions

• which operator is applied first here?

• is the division first?

StudentMark / NbrMarks* 100

divide StudentMark by NbrMarks, then multiply by 100

• or is the multiplication first?

StudentMark / NbrMarks *100

multiply NbrMarks by 100, then divide StudentMark by result of multiplication

• Activity: does it matter?

Fundamental Programming 310201

### Activity Break

Fundamental Programming 310201

### Activity Feedback

• using StudentMark = 50, NbrMarks = 100…

• division first:

(StudentMark / NbrMarks) * 100

=(50 / 100) * 100

= 50

• multiplication first:

StudentMark / (NbrMarks *100)

=50 / (100 * 100)

= 0.005

• will a C++ program do it in the correct order?

Fundamental Programming 310201

### Order of Use

• there are rules to decide the order in which operators in an expression are applied

• unary operators before binary operators

• multiplication (*) and division (/) before addition (+) and subtraction (-)

• otherwise, left to right

• evaluate the following:

4 * -2 + 3

2 + 12 / 4 * 3

• will the following be evaluated correctly?

StudentMark / NbrMarks * 100

Fundamental Programming 310201

### Activity Break

Fundamental Programming 310201

### Activity Feedback

• evaluate:

4 * -2 + 3

• unary operator first (- applies to 2)

(4 * -2) + 3

=-8 + 3

= -5

Fundamental Programming 310201

### Activity Feedback

• evaluate the following:

2 + 12 / 4 * 3

• multiplication and division before addition

• left to right otherwise – so division before multiplication here

2 + (12 / 4) * 3

=2 + 3 * 3

=2 + (3 * 3)

=2 + 9

= 11

Fundamental Programming 310201

### Activity Feedback

• will the following be evaluated correctly?

StudentMark / NbrMarks * 100

• yes it will – since the division occurs before the multiplication, this is the same as:

(StudentMark / NbrMarks)* 100

Fundamental Programming 310201

### Order of Use

• avoid errors by using parentheses:

(4 * -2) + 3

2 + ( ( 12 / 4 ) * 3 )

• sometimes you can rewritean expression to make it easier to read – instead of:

StudentMark / NbrMarks * 100

• you can write:

100 * StudentMark / NbrMarks

• is this easier to understand? if so, why?

Fundamental Programming 310201

### Activity Break

Fundamental Programming 310201

### Activity Feedback

• the expression:

100 * StudentMark / NbrMarks

• may seem easier to read than:

StudentMark / NbrMarks * 100

• possibly because, in the first expression above, the order in which operators are applied doesn’t matter

– left for student to check

• always keep you code as simple as possible

Fundamental Programming 310201

### Activity

• the following program is designed to convert temperatures between Fahrenheit and Centigrade

• it has a logic error – fix it…

Fundamental Programming 310201

#include <iostream>

using namespace std;

int main (void)

{

intConversionType = 0;

float Temperature = 0;

cout << "Select conversion - (1) C to F, (2) F to C ==> ";

cin >> ConversionType;

cout << "Input temperature ==> ";

cin >> Temperature;

if (ConversionType == 1)

{

cout << 32 + Temperature * 1.8;

cout << " degrees Fahrenheit";

}

else

{

cout << Temperature - 32 / 1.8;

}

getchar();

return 0;

}

Fundamental Programming 310201

### Activity Break

Fundamental Programming 310201

### Feedback

#include <iostream>

using namespace std;

int main (void)

{

intConversionType = 0;

float Temperature = 0;

cout << "Select conversion - (1) C to F, (2) F to C ==> ";

cin >> ConversionType;

cout << "Input temperature ==> ";

cin >> Temperature;

if (ConversionType == 1)

{

cout << 32 + Temperature * 1.8;

cout << " degrees Fahrenheit";

}

else

{

cout << Temperature - 32 / 1.8;

}

getchar();

return 0;

}

problem here:

division occurs

before subtraction

Fundamental Programming 310201

### Feedback

#include <iostream.h>

void main (void)

{

intConversionType = 0;

float Temperature = 0;

cout << "Select conversion - (1) C to F, (2) F to C ==> ";

cin >> ConversionType;

cout << "Input temperature ==> ";

cin >> Temperature;

if (ConversionType == 1)

{

cout << 32 + (Temperature * 1.8);

cout << " degrees Fahrenheit";

}

else

{

cout << (Temperature – 32) / 1.8;

}

}

clarification:

parentheses make

intention clear

a solution:

enclose subtraction

in parentheses

Fundamental Programming 310201

### C++Syntax Summary

• input: cin >> <variable>;

• output: cout << <expression>;

• assignment: <variable> = <expression>;

• aselection statement:

if ( <test> )

{<if-block statements> }

else

{ <else-block statements> }

• a repetition statement:

while( <test> )

{<while-block statements>}

Fundamental Programming 310201

### Summary

• data processing happens in expressions

• expressions appear in assignmentand output statements

• different types of expressions – literals, variables names, ones that use operators…

• arithmetic operators are: +, -, *, /

• rules control order of application

• parentheses are used to impose ordering

• computing has a lot of jargon!

Fundamental Programming 310201