1 / 66

Introduction to Computers and Programming Lecture 4: Mathematical and Relational Operators

This lecture covers the basics of mathematical and relational operators in computer programming, including binary operators, integer division, modulus division, odd/even numbers, and operator precedence.

belvap
Télécharger la présentation

Introduction to Computers and Programming Lecture 4: Mathematical and Relational Operators

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. Introduction to Computers and ProgrammingLecture 4: Mathematical and Relational Operators

  2. Basic Mathematical Operators

  3. Basic Mathematical Operators Each of the operators in the table are binary operators. A binary operator acts on two operands

  4. Lets look at a program toCalculate the area of a circle // Program calculates area of a circle (uses double data types) public class circle_area { public static void main(String[] args) { double radius, area; // declare variables double radius = 3.00; // assign radius of the circle area = radius * radius * 3.14159 ; System.out.println("The area of the circle of radius " + radius + " is " + area); System.exit(0); } }

  5. Integer Division - The Problem • Suppose you have the following code: • Using a calculator, the answer is 1.75. • But x can only hold integer values. • 1.75 is clearly not an integer value. int x; x = 7 / 4;

  6. Integer Division - Solution • To understand the solution, you need to remember your 3rd Grade Math (really.) • 7/4 = 1 (Integer Division) • 7%4 = 3 (Modulus Division) 1 4 7 4 3 The answer: 1 remainder 3

  7. Example: Integer and Modulus Division /* Integer and Modulus Division */ public class mod_division { public static void main(String args[]) { int x = 5, y =10; System.out.println ("5/10: " + x/y); System.out.println ("5%10: " + x%y); } // end method main } // end class mod_division • No matter what, your answers must be integers. 0 5/10 = 0 5%10 = 5 10 5 5/10: 0 5%10: 5 0 5

  8. Odd / Even Numbers • Modulus division can also be used to determine whether a number is odd or even. • Just divide by 2. • If the remainder (modulus) is 0, the number is even. • Examples: • 10 % 2 = 0. Hence 10 is even. • 11 % 2 = 1. Hence 11 is odd. Common Programming Error: • Dividing by zero is normally undefined on computer systems • generally results in a fatal error.

  9. To find out if number evenly divide by another number • Modulus division can also be used to determine whether a number evenly divide into another number or not. • If the remainder (modulus) is 0, the number evenly divide. • Examples: • 10 % 2 = 0. Hence 10 is evenly divide into 2 . • 11 % 2 = 1. Hence 11 is does not divide evenly into 1. • 30 % 5 = 0. Hence 30 evenly divide into 5. • 100 % 8 = 5.( 100 / 8 = 12.5 ) • Hence 100 does not evenly divide into 8.

  10. Lets do this in class- what's the answer?Can we notice a pattern? 1234 / 1000 = ? 1234 % 1000 =? 234 / 100= ? 234 % 100= ? 34 / 10= ? 34 % 10=?

  11. Lets do this in class- what's the answer?Can we notice a pattern? 1234 / 1000 = 1 ( lost three right digits and ended up with the left (first) digit) 1234 % 1000 = 234 (lost the left most digit and ended up with the remaining 3 digits) 234 / 100= 2 ( lost the 2 right digits and ended up with the left (first) digit) 234 % 100= 34 (lost the left most digit and ended up with the remaining 2 digits) 34 / 10= 3 ( lost right digit and ended up with the left (first) digit) 34 % 10= 4 (lost the left most digit and ended up with the remaining right digit)

  12. What is the out put of this program? public class date_digits { public static void main(String[] args) { int date, month, day, div; date = 1213; month = date/100; day = date % 100; System.out.println("month is " +month +"\n" + "day is " + day + "\n” ); } }

  13. What is the out put of this program? public class date_digits { public static void main(String[] args) { int date, month, day, div; date = 1213; month = date/100; day = date % 100; System.out.println("month is " +month +"\n" + "day is " + day + "\n"); } } month is 12 day is 13 Press any key to continue...

  14. Operator Precedence

  15. Operator Precedence • Here’s another problem. What’s the answer to this? x = 7 + 3 * 6; • Two Options (depending on the order of operations): • Perform addition first: 7 + 3 = 10  10 * 6 = 60 • Perform multiplication first: 3*6 =18  7+18 = 25 • Which option is correct? • Clearly, we cannot have this kind of ambiguity.

  16. Operator Precedence • Operator precedence represent rules for evaluating mathematical expressions. • Every programming language has similar rules.

  17. Operator Precedence • Hence, option #2 is always correct • (multiplication is performed first): • Example: • Find the average of three variables a, b and c • Do not use: a + b + c / 3 • Use: (a + b + c ) / 3 x = 7 + 3 * 6; Evaluates to x = 7 + 18 = 25

  18. Parentheses • Are your friends • Are your really good friends • Because with them you can ensure expressions are evaluated as you expect • Can avoid mistakes with operator precedence (one less thing to think about) • e.g. y = m * x + b ; y = (m * x) + b; • e.g. y = a * b * b + c * b – d; y = (((a * b) * b) + (c * b)) – d;

  19. Lets look at a program to allow user to input datausing an imput text prompt window

  20. Getting Input from Input Dialog Boxes String string = JOptionPane.showInputDialog( null, “Prompt Message”, “Dialog Title”, JOptionPane.QUESTION_MESSAGE));

  21. Converting Strings to Integers • The input returned from the input dialog box is a string. • If you enter a numeric value such as 123, it returns “123”. • To obtain the input as a number, you have to convert a string into a number. • To convert a string into an int value, you can use the static parseInt method in the Integer class as follows: int intValue = Integer.parseInt(intString); • Where intString is a numeric string such as “123”.

  22. Converting Strings to Doubles • To convert a string into a double value, you can use the static parseDouble method in the Double class as follows: double doubleValue =Double.parseDouble(doubleString); where doubleString is a numeric string such as “123.45”.

  23. Declare variables: name and type. Input first integer as a String, assign to firstNumber. Convert strings to integers. Add, place result in sum. 1 // Addition2.java uses JOptionPane prompt window to enter data 2 // Addition program that displays the sum of two numbers. 3 4 // Java packages 5 import javax.swing.JOptionPane; // program uses JOptionPane 6 7 public class Addition2 { 8 9 // main method begins execution of Java application 10 public static void main( String args[] ) 11 { 12 String firstNumber; // first string entered by user 13 String secondNumber; // second string entered by user 14 15 int number1; // first number to add 16 int number2; // second number to add 17 int sum; // sum of number1 and number2 18 19 // read in first number from user as a String 20 firstNumber = JOptionPane.showInputDialog( "Enter first integer" ); 21 22 // read in second number from user as a String 23 secondNumber = 24 JOptionPane.showInputDialog( "Enter second integer" ); 25 26 // convert numbers from type String to type int 27 number1 = Integer.parseInt( firstNumber ); 28 number2 = Integer.parseInt( secondNumber ); 29 30 // add numbers 31 sum = number1 + number2; 32 Addition2.java1. import2. class Addition2.1 Declare variables (name and type)3. showInputDialog4. parseInt5. Add numbers, put result in sum

  24. 33 // display result 34 JOptionPane.showMessageDialog( null, "The sum is " + sum, 35 "Results", JOptionPane.PLAIN_MESSAGE ); 36 37 System.exit( 0 ); // terminate application with window 38 39 } // end method main 40 41 } // end class Addition2 Program output

  25. 5 import javax.swing.JOptionPane; // program uses JOptionPane 7 public class Addition { 12 String firstNumber; // first string entered by user 13 String secondNumber; // second string entered by user Adding Integers • Location of JOptionPane for use in the program • Begins public class Addition • Recall that file name must be Addition.java • Lines 10-11: main • Declaration • firstNumber and secondNumber are variables

  26. String firstNumber, secondNumber; 12 String firstNumber; // first string entered by user 13 String secondNumber; // second string entered by user Adding Integers • Variables • Location in memory that stores a value • Declare with name and type before use • firstNumber and secondNumber are of type String (package java.lang) • Hold strings • Variable name: any valid identifier • Declarations end with semicolons ; • Can declare multiple variables of the same type at a time • Use comma separated list • Can add comments to describe purpose of variables

  27. 15 int number1; // first number to add 16 int number2; // second number to add 17 int sum; // sum of number1 and number2 Adding Integers • Declares variables number1, number2, and sum of type int • int holds integer values (whole numbers): i.e., 0, -4, 97 • Types float and double can hold decimal numbers • Type char can hold a single character: i.e., x, $, \n, 7 • Primitive types - more in Chapter 4

  28. 20 firstNumber = JOptionPane.showInputDialog( "Enter first integer" ); Adding Integers • Reads String from the user, representing the first number to be added • Method JOptionPane.showInputDialog displays the following: • Message called a prompt - directs user to perform an action • Argument appears as prompt text • If wrong type of data entered (non-integer) or click Cancel, error occurs

  29. 20 firstNumber = JOptionPane.showInputDialog( "Enter first integer" ); Adding Integers • Result of call to showInputDialog given to firstNumber using assignment operator = • Assignment statement • = binary operator - takes two operands • Expression on right evaluated and assigned to variable on left • Read as:firstNumber gets value of JOptionPane.showInputDialog( "Enter first integer" )

  30. 23 secondNumber = 24 JOptionPane.showInputDialog( "Enter second integer" ); 27 number1 = Integer.parseInt( firstNumber ); 28 number2 = Integer.parseInt( secondNumber ); Adding Integers • Similar to previous statement • Assigns variable secondNumber to second integer input • Method Integer.parseInt • Converts String argument into an integer (type int) • Class Integer in java.lang • Integer returned by Integer.parseInt is assigned to variable number1 (line 27) • Remember that number1 was declared as type int • Line 28 similar

  31. 31 sum = number1 + number2; Adding Integers • Assignment statement • Calculates sum ofnumber1 and number2 (right hand side) • Uses assignment operator = to assign result to variable sum • Read as:sum gets the value of number1 + number2 • number1 and number2are operands

  32. 34 JOptionPane.showMessageDialog( null, "The sum is " + sum, 35 "Results", JOptionPane.PLAIN_MESSAGE ); Adding Integers • Use showMessageDialog to display results • "Thesumis"+sum • Uses the operator + to "add" the string literal "Thesumis" and sum • Concatenation of a String and another type • Results in a new string • If sum contains 117, then "Thesumis"+sum results in the new string "Thesumis117" • Note the space in "Thesumis" • More on strings in Chapter 11

  33. 34 JOptionPane.showMessageDialog( null, "The sum is " + sum, 35 "Results", JOptionPane.PLAIN_MESSAGE ); Adding Integers • Different version of showMessageDialog • Requires four arguments (instead of two as before) • First argument: null for now • Second: string to display • Third: string in title bar • Fourth: type of message dialog with icon • Line 35 no icon: JOptionPane.PLAIN_MESSAGE

  34. Adding Integers

  35. Relational Operators Decision using if statements

  36. Decision Making: Equality and Relational Operators • if control statement • Simple version in this section, more detail later • If a condition is true, then the body of the if statement executed • Control always resumes after the if structure • Conditions for if statements can be formed using equality or relational operators (next slide) if ( condition ) statement executed if condition true • No semicolon needed after condition • Else conditional task not performed

  37. Equality and Relational Operators

  38. 1 // Comparison.java 2 // Compare integers using if statements, relational operators 3 // and equality operators. 4 5 // Java packages 6 import javax.swing.JOptionPane; 7 8 public class Comparison { 9 10 // main method begins execution of Java application 11 public static void main( String args[] ) 12 { 13 String firstNumber; // first string entered by user 14 String secondNumber; // second string entered by user 15 String result; // a string containing the output 16 17 int number1; // first number to compare 18 int number2; // second number to compare 19 20 // read first number from user as a string 21 firstNumber = JOptionPane.showInputDialog( "Enter first integer:" ); 22 23 // read second number from user as a string 24 secondNumber = 25 JOptionPane.showInputDialog( "Enter second integer:" ); 26 27 // convert numbers from type String to type int 28 number1 = Integer.parseInt( firstNumber ); 29 number2 = Integer.parseInt( secondNumber ); 30 31 // initialize result to empty String 32 result = ""; 33 Comparison.java1. import2. Class Comparison2.1 main2.2 Declarations2.3 Input data (showInputDialog)2.4 parseInt2.5 Initialize result

  39. Test for equality, create new string, assign to result. Notice use of JOptionPane.INFORMATION_MESSAGE 34 if ( number1 == number2 ) 35 result = result + number1 + " == " + number2; 36 37 if ( number1 != number2 ) 38 result = result + number1 + " != " + number2; 39 40 if ( number1 < number2 ) 41 result = result + "\n" + number1 + " < " + number2; 42 43 if ( number1 > number2 ) 44 result = result + "\n" + number1 + " > " + number2; 45 46 if ( number1 <= number2 ) 47 result = result + "\n" + number1 + " <= " + number2; 48 49 if ( number1 >= number2 ) 50 result = result + "\n" + number1 + " >= " + number2; 51 52 // Display results 53 JOptionPane.showMessageDialog( null, result, "Comparison Results", 54 JOptionPane.INFORMATION_MESSAGE ); 55 56 System.exit( 0 ); // terminate application 57 58 } // end method main 59 60 } // end class Comparison Comparison.java3. if statements4. showMessageDialog

  40. Program Output

  41. 13 String firstNumber, 14 secondNumber, 15 result; 2.8 Decision Making: Equality and Relational Operators • Lines 1-12: Comments, importJOptionPane, beginclass Comparison and main • Lines 13-18: declare variables • Can use comma-separated lists instead: • Lines 21-30: obtain user-input numbers and parses input string into integer variables

  42. 32 result = ""; 34 if ( number1 == number2 ) 35 result = result + number1 + " == " + number2; 2.8 Decision Making: Equality and Relational Operators • Initialize result with empty string • if statement to test for equality using (==) • If variables equal (condition true) • result concatenated using + operator • result = result + other strings • Right side evaluated first, new string assigned to result • If variables not equal, statement skipped

  43. 2.8 Decision Making: Equality and Relational Operators • Lines 37-50: other if statements testing for less than, more than, etc. • If number1 = 123 and number2 = 123 • Line 34 evaluates true (if number1 = = number 2) • Because number1 equals number2 • Line 40 evaluates false (if number1 < number 2) • Because number1 is not less than number2 • Line 49 evaluates true (if number1 >= number2) • Because number1 is greater than or equal to number2 • Lines 53-54: result displayed in a dialog box using showMessageDialog

  44. 2.8 Decision Making: Equality and Relational Operators • Precedence of operators • All operators except for = (assignment) associates from left to right • For example: x = y = z is evaluated x = (y = z)

  45. Increment andDecrement Operators

  46. Increment andDecrement Operators, cont.

  47. Increment andDecrement Operators, cont. • Using increment and decrement operators makes expressions short • but it also makes them complex and difficult to read. • Avoid using these operators in expressions that modify multiple variables, or the same variable for multiple times such as this: int k = ++i + I;

  48. Assignment Expressions and Assignment Statements Prior to Java 2, all the expressions can be used as statements. Since Java 2, only the following types of expressions can be statements: variable op= expression; // Where op is +, -, *, /, or % ++variable; variable++; --variable; variable--;

  49. Numeric Type Conversion Consider the following statements: byte i = 100; long k = i*3+4; double d = i*3.1+k/2; int x = k; //(Wrong) long k = x; //(fine,implicit casting)

  50. Type Casting • double • float • long • int • short • byte

More Related