Download presentation
Presentation is loading. Please wait.
Published byRalph Copeland Modified over 8 years ago
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!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.