Download 1.2 Built-in Data Types

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Elementary mathematics wikipedia , lookup

Proofs of Fermat's little theorem wikipedia , lookup

Transcript
Integers
1.2 Built-in Data Types
int data type. Useful for expressing algorithms.
Data type
* A set of values.
* A set of methods or operations that can be applied to the data.
We learned integer and floating point data types in Java:
int, byte, short, long, double, float
There are 2 more built-in primitive types – char and boolean.
There is another built-in type – String.
Java also lets you construct your own data types.
2
Floating-Point Numbers
Math Library
double data type. Useful in scientific applications.
3
4
Type Conversion
Basics of Programming
Type conversion. Convert from one type of data to another.
Automatic: promotion.
Explicit: cast.
Definitions.
!!
!!
Some examples:
Expression
type
value
Trace.
5
6
Random Integer
Quadratic Equation
Ex. Generate a pseudo-random number between 0 and N-1.
Ex. Solve quadratic equation x2 + bx + c = 0.
public class RandomInt {
public static void main(String[] args) {
int N = Integer.parseInt(args[0]);
double r = Math.random();
String to int (method)
int n = (int) (r * N);
// parse coefficients from command-line
double b = Double.parseDouble(args[0]);
double c = Double.parseDouble(args[1]);
double between 0.0 and 1.0
// calculate roots
double discriminant = b*b - 4.0*c;
double d = Math.sqrt(discriminant);
double root1 = (-b + d) / 2.0;
double root2 = (-b - d) / 2.0;
System.out.println("random integer is " + n);
}
% java
random
% java
random
% java
random
RandomInt 6
integer is 3
RandomInt 6
integer is 0
RandomInt 10000
integer is 3184
"b ± b 2 " 4 c
2
public class Quadratic {
!
public static void main(String[] args) {
double to int (cast) int to double (automatic)
}
roots =
int to String (automatic)
}
7
}
// print them out
System.out.println(root1);
System.out.println(root2);
8
Built-in Data Types
Text
Data type. A set of values and operations defined on those values.
type
set of values
literal values
operations
char
characters
'A'
'@'
compare
String
sequences of
characters
"Hello World"
"CS is fun"
concatenate
int
integers
17
12345
add, subtract,
multiply, divide
double
floating point
numbers
3.1415
6.022e23
add, subtract,
multiply, divide
boolean
truth values
true
false
and, or, not
Char data type. A char is a alphanumeric character or a symbol.
typical literals: ‘a’, ‘A’, ‘%’, ‘\n’, …
Operation: Usually not direction operation. Try (char)(’a’ + 2).
String data type. Useful for program input and output.
9
10
Subdivisions of a Ruler
String
!!
public class Ruler {
public static void main(String[] args) {
String ruler1 = "1";
String ruler2 = ruler1 + " 2 " + ruler1;
String ruler3 = ruler2 + " 3 " + ruler2;
String ruler4 = ruler3 + " 4 " + ruler3;
System.out.println(ruler4);
}
}
Convert a String to int or double numbers.
"1"
"1 2 1"
"1 2 1 3 1 2 1"
!!
string concatenation
Primitive types are automatically promoted to String when using “+”
operator.
% java Ruler
1 2 1 3 1 2 1 4 1 2 1 3 1 2 1
11
12
Booleans
Truth Table
Prove: a&&b and !(!a || !b) are identical
boolean data type. Useful to control logic and flow of a program.
a
b
a && b
!(!a || !b)
13
14
Comparisons
Leap Year
Comparisons. Take operands of one type and produce an operand of
type boolean.
Q. Is a given year a leap year?
A. Yes if either (i) divisible by 400 or (ii) divisible by 4 but not 100.
public class LeapYear {
public static void main(String[] args) {
int year = Integer.parseInt(args[0]);
boolean isLeapYear;
// divisible by 4 but not 100
isLeapYear = (year % 4 == 0) && (year % 100 != 0);
// or divisible by 400
isLeapYear = isLeapYear || (year % 400 == 0);
System.out.println(isLeapYear);
}
}
15
% java LeapYear 2004
true
% java LeapYear 1900
false
% java LeapYear 2000
true
16