Presentation is loading. Please wait.

Presentation is loading. Please wait.

Fundamental Programming 310201 1 Fundamental Programming Data Processing and Expressions.

Similar presentations


Presentation on theme: "Fundamental Programming 310201 1 Fundamental Programming Data Processing and Expressions."— Presentation transcript:

1

2 Fundamental Programming 310201 1 Fundamental Programming Data Processing and Expressions

3 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

4 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

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

6 Fundamental Programming 310201 5 Sample Program write “Number of marks: “ read NbrMarks write “Student’s mark: “ read StudentMark 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 assignment statements

7 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 to  here, the values of interest are: StudentMark / NbrMarks ProportionOfMarks * 100

8 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

9 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…

10 Fundamental Programming 310201 9 Alternative Design write “Number of marks: “ read NbrMarks write “Student’s mark: “ read StudentMark set ProportionOfMarks to StudentMark / NbrMarks write “ Percentage: “ write ProportionOfMarks * 100

11 Fundamental Programming 310201 10 Anatomy of an Output  the anatomy of our assignment statement is: set to  the anatomy of our output statement is: write  so, where does all the data processing happen? Expressions !

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

13 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)

14 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

15 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

16 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

17 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 operand operator

18 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

19 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?

20 Fundamental Programming 310201 19 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?

21 Fundamental Programming 310201 20 Activity Break

22 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?

23 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

24 Fundamental Programming 310201 23 Activity Break

25 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

26 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 here 2 + ( 12 / 4 ) * 3 =2 + 3 * 3  multiplication before addition =2 + ( 3 * 3 ) =2 + 9 = 11

27 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

28 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?

29 Fundamental Programming 310201 28 Activity Break

30 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

31 Fundamental Programming 310201 30 Activity  the following program is designed to convert temperatures between Fahrenheit and Centigrade  it has a logic error – fix it…

32 Fundamental Programming 310201 31 #include using namespace std; int main (void) { int ConversionType = 0; float Temperature = 0; cout "; cin >> ConversionType; cout "; 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; }

33 Fundamental Programming 310201 32 Activity Break

34 Fundamental Programming 310201 33 #include using namespace std; int main (void) { int ConversionType = 0; float Temperature = 0; cout "; cin >> ConversionType; cout "; 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

35 Fundamental Programming 310201 34 #include void main (void) { int ConversionType = 0; float Temperature = 0; cout "; cin >> ConversionType; cout "; 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 subtraction in parentheses clarification: parentheses make intention clear Feedback

36 Fundamental Programming 310201 35 C++ Syntax Summary  input : cin >> ;  output : cout ;  assignment : = ;  a selection statement: if ( ) { } else { }  a repetition statement: while ( ) { }

37 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!


Download ppt "Fundamental Programming 310201 1 Fundamental Programming Data Processing and Expressions."

Similar presentations


Ads by Google