36
Fundamental Programming 310201 1 Fundamental Programming Data Processing and Expressions

Fundamental Programming

  • Upload
    knox

  • View
    61

  • Download
    0

Embed Size (px)

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

Page 1: Fundamental Programming

Fundamental Programming 310201 1

Fundamental Programming

Data Processing and Expressions

Page 2: Fundamental Programming

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

Page 3: Fundamental Programming

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

Page 4: Fundamental Programming

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...

Page 5: Fundamental Programming

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

Page 6: Fundamental Programming

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

Page 7: Fundamental Programming

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

Page 8: Fundamental Programming

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…

Page 9: Fundamental Programming

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

Page 10: Fundamental Programming

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 !

Page 11: Fundamental Programming

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...

Page 12: Fundamental Programming

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)

Page 13: Fundamental Programming

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

Page 14: Fundamental Programming

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

Page 15: Fundamental Programming

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

Page 16: Fundamental Programming

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

Page 17: Fundamental Programming

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

Page 18: Fundamental Programming

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?

Page 19: Fundamental Programming

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?

Page 20: Fundamental Programming

Fundamental Programming 310201 20

Activity Break

Page 21: Fundamental Programming

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?

Page 22: Fundamental Programming

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

Page 23: Fundamental Programming

Fundamental Programming 310201 23

Activity Break

Page 24: Fundamental Programming

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

Page 25: Fundamental Programming

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

Page 26: Fundamental Programming

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

Page 27: Fundamental Programming

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?

Page 28: Fundamental Programming

Fundamental Programming 310201 28

Activity Break

Page 29: Fundamental Programming

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

Page 30: Fundamental Programming

Fundamental Programming 310201 30

Activity the following program is designed to

convert temperatures between Fahrenheit and Centigrade

it has a logic error – fix it…

Page 31: Fundamental Programming

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;

}

Page 32: Fundamental Programming

Fundamental Programming 310201 32

Activity Break

Page 33: Fundamental Programming

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

Page 34: Fundamental Programming

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

Page 35: Fundamental Programming

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> }

Page 36: Fundamental Programming

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!