Fundamental Programming

Preview:

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Fundamental Programming 310201 1

Fundamental Programming

Data Processing and Expressions

Fundamental Programming 310201 2

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 3

Review a program performs a sequence of input,

output and assignment statements selection and repetition statements control

which of the program’s input, output and assignment statements are performed selection (if-then-else) statements provide

alternate pathways through the program repetition (while) statements control the number

of times a block of statements is performed

Fundamental Programming 310201 4

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 5

Sample Programwrite “Number of marks: “ read NbrMarks write “Student’s mark: “read StudentMarkset ProportionOfMarks to StudentMark / NbrMarks set PercentageOfMarks to ProportionOfMarks *

100write “ Student’s percentage: “write PercentageOfMarks

in this program, all the data processing occurs in assignment statements

Fundamental Programming 310201 6

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 7

Expressions we use the term expression to 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 8

Data Processing so, where does the data processing happen? answer: some of it happens in

assignment statements

it can also happen in output statements…

Fundamental Programming 310201 9

Alternative Designwrite “Number of marks: “ read NbrMarks write “Student’s mark: “read StudentMarkset ProportionOfMarks to StudentMark / NbrMarks write “ Percentage: “write ProportionOfMarks * 100

Fundamental Programming 310201 10

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 11

Expressions clearly, expressions are important - that’s

where the data processing 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 expression is one we’ve seen before...

Fundamental Programming 310201 12

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 - the input-process-output model again

example: StudentMark / NbrMarks input process output

StudentMark ? NbrMarks (a single value - depends on inputs)

Fundamental Programming 310201 13

Operators we use the term operator to mean:

a symbol, or name, used to represent an operation that 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 14

Operands we use the term operand to mean:

an input to an expression in the two expressions: StudentMark / NbrMarks ProportionOfMarks * 100 the operands are:

StudentMark and NbrMarks ProportionOfMarks and 100

Fundamental Programming 310201 15

Binary Operators in the following examples: StudentMark / NbrMarks ProportionOfMarks * 100 NbrMarks - StudentMark StudentMark + 10 each operator is used with two operands so / , * , - and + are binary operators

–they can all be used with two operands

Fundamental Programming 310201 16

Unary Operators the + and - operators are also unary

operators (they can be used with just one operand)

examples: -273.15 as in set AbsoluteZero to -273.15 +100 as in set BoilingPointOfWater to

+100 expression - 273.15

operandoperator

Fundamental Programming 310201 17

Numeric Expressions expressions that evaluate to a number are

called numeric expressions numeric expression come in all shapes and

sizes: a number by itself – a literal: set NbrTimesTold to 0 the name of a variable: write Percentage expressions that use operators: set NbrTimesTold to NbrTimesTold + 1

Fundamental Programming 310201 18

Power of Expressions the arithmetic operators +, -, * and / give us

a powerful language to process numbers the power comes from the ability to nest little

expressions inside bigger expressions instead of:set ProportionOfMarks to StudentMark / 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 19

Nested Expressions which operator is applied first here? is the division first? StudentMark / NbrMarks * 100divide StudentMark by NbrMarks, then multiply by 100 or is the multiplication first?StudentMark / NbrMarks * 100multiply NbrMarks by 100, then divide StudentMark by

result of multiplication Activity: does it matter?

Fundamental Programming 310201 20

Activity Break

Fundamental Programming 310201 21

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 22

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 23

Activity Break

Fundamental Programming 310201 24

Activity Feedback evaluate:

4 * -2 + 3 unary operator first (- applies to 2) * multiplication before addition (4 * -2) + 3= -8 + 3= -5

Fundamental Programming 310201 25

Activity Feedback evaluate the following:

2 + 12 / 4 * 3 multiplication and division before addition left to right otherwise – so division before

multiplication here2 + (12 / 4) * 3

= 2 + 3 * 3 multiplication before addition= 2 + (3 * 3)= 2 + 9= 11

Fundamental Programming 310201 26

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 27

Order of Use avoid errors by using parentheses:

(4 * -2) + 3 2 + ( ( 12 / 4 ) * 3 )

sometimes you can rewrite an 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 28

Activity Break

Fundamental Programming 310201 29

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 30

Activity the following program is designed to

convert temperatures between Fahrenheit and Centigrade

it has a logic error – fix it…

Fundamental Programming 310201 31

#include <iostream>using namespace std;int main (void){ int ConversionType = 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; cout << " degrees Centigrade"; }

getchar();return 0;

}

Fundamental Programming 310201 32

Activity Break

Fundamental Programming 310201 33

#include <iostream>using namespace std;int main (void){ int ConversionType = 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; cout << " degrees Centigrade"; }

getchar();return 0;

}

problem here: division occurs before subtraction

Feedback

Fundamental Programming 310201 34

#include <iostream.h>void main (void){ int ConversionType = 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; cout << " degrees Centigrade"; }} a solution:

enclose subtractionin parentheses

clarification: parentheses make intention clear

Feedback

Fundamental Programming 310201 35

C++ Syntax Summary input : cin >> <variable>; output : cout << <expression>; assignment : <variable> = <expression>; a selection statement:

if ( <test> ){ <if-block statements> }

else{ <else-block statements> }

a repetition statement: while ( <test> ){ <while-block statements> }

Fundamental Programming 310201 36

Summary data processing happens in expressions expressions appear in assignment and

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!

Recommended