1 / 36

Fundamental Programming

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

jkimes
Download Presentation

Fundamental Programming

An Image/Link below is provided (as is) to download presentation 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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  8. Data Processing • so, where does the data processinghappen? • answer: someof ithappens in assignmentstatements • it can also happen in outputstatements… Fundamental Programming 310201

  9. Alternative Design write “Number of marks: “ read NbrMarks write “Student’s mark: “ read StudentMark set ProportionOfMarks toStudentMark / 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 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

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

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

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

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

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

  18. 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 • instead of: 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

  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? 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 here 2 + (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 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

  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) { 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; cout << " degrees Centigrade"; } getchar(); return 0; } Fundamental Programming 310201

  32. Activity Break Fundamental Programming 310201

  33. 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; cout << " degrees Centigrade"; } getchar(); return 0; } problem here: division occurs before subtraction Fundamental Programming 310201

  34. 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; cout << " degrees Centigrade"; } } clarification: parentheses make intention clear a solution: enclose subtraction in parentheses Fundamental Programming 310201

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

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

More Related