Lecture 2 Fundamental Data Types Variable Declaration Rules for Identifiers Numeric Types All Numeric Types have Finite Ranges 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 value is 127 value is 128 but the leading 1 indicates negative value Floating Point Values are Approximate Numeric Operators Integer Division and Remainder Increment and Decrement Operators Notice: In this course, we will NOT be using increment and decrement operators in regular assignment statements. (More on this later.) Assignment Statements When is "=" not Equal to "Equals"? In Java (and most other programming languages) the symbol = means assignment. X=X+1 "X is assigned the value X + 1 LOAD X=X+1 ADD STORE ALU Arithmetic Logic Unit Augmented Assignment Operators Declaring Constants Mathematical Expressions Sugar Cookie Recipe Ingredients 1 stick butter 1/2 cup sugar 1 egg 1 teaspoon vanilla extract 1/2 teaspoon salt 1 3/4 cups all-purpose flour Directions Mix the butter and sugar until light and fluffy. Beat in the egg, then vanilla and salt. Mix slowly while gradually adding the flour. Do not overmix. Shape into a 1-inch-thick disk, refrigerate for at least 2 hours. Heat oven to 350° F. Roll the dough ¼ inch thick, and cut the dough into shapes. Place 1 inch apart on prepared baking sheets, sprinkle with sugar. Bake until the edges just begin to brown, 12 to 15 minutes. Transfer to cooling racks. Circle Area Algorithm Parameters pi = 3.1415926 radius area Actions Read in the radius. Compute the Area using the formula: 𝑎𝑟𝑒𝑎 = 𝑟𝑎𝑑𝑖𝑢𝑠 × 𝑟𝑎𝑑𝑖𝑢𝑠 × 𝑝𝑖 Display Area. Computer Algorithms can be simpler than a recipe for sugar cookies. ;-) from Algorithm to Computer Program Completed Program comments are ignored by the computer Completed Program Getting Input from the User We can use the Scanner software package provided as part of java.util to get information typed on the keyboard. Some of the methods provided in Scanner are: User Input Interactive Version of Circle Area Calculator Convert Fahrenheit to Celsius Convert Seconds to Minutes and Seconds Get total seconds from user. Calculate number of whole minutes. Calculate number of remaining seconds. Display results. Convert Seconds to Minutes and Seconds Numeric Type Conversions Java performs automatic type conversion in mathematical expressions. For example, when an integer and a floating-point value are multiplied, the integer is promoted to a floating-point value. We can override the default type conversions by specifying the type of each parameter. Conflicting Data Types Oh great! Here come your friends, the odd couple. 9 25 I can't imagine why you don't like them. For starters, they're a couple of squares. As usual, you're being irrational. Why can't you keep it real? Why do you insist on running on forever? 𝜋 i 2+ 3 ShowCurrentTime Using Type Casting So why would we want to multiply and then divide by 100? 197.55 x 0.06 = 11.853 A Sample Problem An Implemention Character Data Types and Operations Unicode and ASCII Code no parent Samples of Unicode http://www.unicode.org/charts/ Escape Sequences for Special Characters Format Specifiers String Operations Types of Programming Errors syntax errors - This type of error prevents the compilation of the program into an executable binary or into bytecode. • easiest type of error to detect • relatively simple to correct runtime errors - This type of error prevents a running program from completing its normal execution. • can be data dependent • don't always occur (consider the divide-by-zero error) logic errors - With this type of error a program can complete its execution normally but the results obtained will be incorrect. • most difficult to detect (especially when they are intermittant) • amenable to unit testing and other SW engineering methods • can never be completely eliminated in large programs using Input and Message Dialogs The Math Library of Methods Chapter 2 Summary Algorithms are like Recipes The Input-Process-Output Design Pattern Comments help make code understandible All Numeric Data Types have finite ranges Values can be converted from one data type to another Floats and Doubles approximate Real Numbers java.util Scanner methods support user input Understanding Assignment Operators Increment and Decrement Operators Introducing Processing.org Unicode and ASCII Code Escape Sequences Programming Errors Input and Message Dialogs