03 - UNC Computer Science - The University of North Carolina

Download Report

Transcript 03 - UNC Computer Science - The University of North Carolina

COMP 14
Introduction to Programming
Adrian Ilie
June 27, 2005
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Review Exercise
• Execution of c=2*a+b in a
computer:
♦
♦
♦
♦
♦
2
Take the value of a
Multiply it by 2
Take the value of b
Add b to the previous result
Put final result into c
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Today in COMP 14
• Java
♦
♦
♦
♦
♦
♦
3
special symbols
identifiers
data types
operators
expressions
strings
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Reading Check-Up
syntax
1. The ________
rules of a language
determine which instructions are
valid.
2. True or False? Hello! is an example
False
of a legal Java identifier. _______
3. If an operator has an integer and a
floating-point operand, the result of
floating-point
the operation is a ___________
number.
4. The expression (int) (9.2)
9
evaluates to ___.
4
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Introduction
• Computer program: a sequence of
statements whose objective is to
accomplish a task
• Programming: process of planning and
creating a program
• Programming language: a set of rules,
symbols, and special words
5
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Sample Java Program
public class Hello
{
public static void main (String[] args)
{
System.out.println ("Hi There!");
}
}
Upon execution, this program would display
Hi There!
6
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Programming Languages
• Programming languages have rules of
grammar just as English does
• syntax rules - which statements are legal and
which are not
• semantic rules - determine the meaning of the
instructions
• token - smallest individual unit of a program
♦ special symbols
♦ word symbols
♦ identifiers
7
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Special Symbols
8
+
-
*
/
.
;
?
,
<=
!=
==
>=
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Word Symbols
aka reserved words, or keywords
•
•
•
•
int
float
double
char
•
•
•
•
•
void
public
static
throws
return
• reserved words are always all lowercase
• each word symbol is considered to be a single symbol
• cannot be used for anything other than their intended
purpose in a program
• shown in blue typewriter font in textbook
• full table in Appendix A
9
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Identifiers
• Names of things (variables, constants,
methods) in your programs
• Can be composed of any combination
of letters, digits, underscore (_), and
dollar sign ($)
• Cannot begin with a digit
• May be any length
• Java is case-sensitive
♦ Total, total, and TOTAL are different identifiers
10
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Illegal Identifiers
11
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Questions
1.
2.
3.
4.
5.
6.
12
Classify the following as legal or
illegal identifiers:
illegal
My First Program ____
legal
my1stProgram
____
illegal
1stProgram
____
legal
$money
____
legal
an_identifier
____
illegal
Jane'sProgram
____
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Primitive Data Types
What’s A Data Type?
• A set of values and the operations
that can be performed on those
values
• Primitive data are fundamental values
such as numbers and characters
• Operations are performed on
primitive types using built-in
operators
13
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Primitive Data Types
• 8 primitive data types in Java
♦ 4 represent integers
• byte, short, int, long
♦ 2 represent floating point numbers
• float, double
♦ 1 represents characters
• char
♦ 1 represents boolean values
• boolean
14
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Primitive Data Types
Numeric Types
• The difference between the various numeric
primitive types is their size, and therefore
the values they can store:
Type
byte
short
int
long
Storage
8 bits
16 bits
32 bits
64 bits
float
32 bits
double 64 bits
15
Adrian Ilie
Min Value
-128
-32,768
-2,147,483,648
< -9 x 1018
Max Value
127
32,767
2,147,483,647
> 9 x 1018
+/- 3.4 x 1038 with 7 significant digits
+/- 1.7 x 10308 with 15 significant digits
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Integers
• Examples: -6728, -67, 0, 78, 36782
• Positive integers do not have a '+'
sign in front of them (but they can)
• No commas are used in an integer
♦ commas in Java are used to separate items in a
list
16
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Primitive Data Types
Characters
• A char stores a single character from
the Unicode character set
♦ an ordered list of characters, and each character
corresponds to a unique number
♦ uses 16 bits per character, allowing for 65,536
unique characters
• Character literals are delimited by
single quotes:
'a'
'X'
'7'
' '
'$'
','
'\n'
newline character
(we'll discuss later)
17
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Primitive Data Types
Booleans
• Only two valid values
♦ true or false
♦ uses 1 bit for storage
• Represent any situation that has
2 states
♦ on - off
♦ true - false
• true and false are reserved
words
18
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Arithmetic Expressions
• Expression - a combination of one or more
operands and their operators
• Arithmetic expressions compute numeric
results and make use of the arithmetic
operators:
Addition
+
Subtraction
Multiplication
*
Division
/
Remainder
%
• If either or both operands associated with an
arithmetic operator are floating point, the
result is a floating point
19
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Division and Remainder
• If both operands to the division operator (/)
are integers, the result is an integer (the
fractional part is discarded)
14 / 3 equals? 4
8 / 12 equals? 0
• The remainder, or modulus, operator (%)
returns the remainder after dividing the
second operand into the first (only works
with integer types)
14 % 3 equals? 2
20
Adrian Ilie
8 % 12 equals? 8
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Unary vs. Binary Operators
• Unary operators
♦ has only one operand
♦ example: - (negative, not subtraction)
-5
• Binary operators
♦ has two operands
♦ example: - (subtraction)
5 - 3
21
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Operator Precedence
•
Determines the order in which
operators are evaluated:
1. multiplication, division, and remainder
2. addition, subtraction, and string concatenation
3. arithmetic operators with the same precedence
are evaluated from left to right
•
22
Parentheses can be used to force the
evaluation order (just like in math)
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Operator Precedence
• What is the order of evaluation in the
following expressions?
a + b + c + d + e
1
2
3
4
a + b * c - d / e
3
1
4 2
a / (b + c) - d % e
2
1
4
3
a / (b * (c + (d - e)))
4
3
2
1
23
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Integral Expressions
• All operands are integers
• Result is an integer
• Examples:
2+3*5
3+x–y/7
x + 2 * (y – z) + 18
24
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Floating-point Expressions
• All operands are floating-point
numbers
• Result is a floating-point
• Examples:
12.8 * 17.5 – 34.50
x * 10.5 + y - 16.2
7.0 / 3.5
25
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Mixed Expressions
• Operands of different types
• Examples:
2 + 3.5
________
2.0 + 3.5
6 / 4 + 3.9
________________
1 + 3.9 = 1.0 + 3.9
• Integer operands yield an integer result
• Floating-point operands yield a floatingpoint result
• If both types of operands are present, the
result is a floating-point number
♦ implicit type coercion
• Precedence rules are followed
26
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Type Conversion (Casting)
• Used to avoid implicit type coercion
• Syntax
(dataTypeName) expression
• Expression evaluated first, then type
converted to dataTypeName
• Examples:
(int) (7.9 + 6.7) = 14
(int) (7.9) + (int)(6.7) = 13
27
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Questions
Evaluate These Expressions
9%6
1. (5 + 4) % 6
3
11 % 3.5
2. (5 + 6) % 3.5 not possible
3. (double) (13) / 2
13.0 / 2
6.5
4. (double) (13 / 2) (double) (6)
6.0
28
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
The class String
• String
♦
♦
♦
♦
♦
sequence of zero or more characters
enclosed in double quotation marks
null or empty strings have no characters
numeric strings consist of integers or decimal numbers
length is the number of characters in a string
• The class String is used to manipulate
strings
• Examples:
♦
♦
♦
♦
29
"Hello World"
"1234"
"45.67"
""
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Strings
• Every character has a position in
the string (starting with 0)
"Hello World"
0123456789...
• The length of the string is the
number of characters in it
♦ what's the length of "Hello World"?
11 (count the space)
30
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Parsing Numeric Strings
• In Java, input from the user
comes in the form of a string
♦ we need to know how to get the number
values out of the string
• Numeric String
♦ a string with only integers or decimal
numbers
♦ "6723", "-823", "345.76"
31
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Parsing Numeric Strings
• String to int
Integer.parseInt(strExpression)
Integer.parseInt("6723")
6723
• String to float
Float.parseFloat(strExpression)
Float.parseFloat("345.76")
345.76
• String to double
Double.parseDouble(strExpression)
Double.parseDouble("1234.56")
1234.56
32
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Summary
• Identifiers
♦ can be composed of any combination of letters,
digits, underscore (_), and dollar sign ($)
♦ cannot begin with a digit
♦ Java is case-sensitive
• Data Types
♦ main integer type: int
♦ main floating-point type: double
♦ others: char, boolean
33
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Summary
• Arithmetic Operators:
addition
subtraction
multiplication
division
remainder (mod)
+
*
/
%
• If one of the operands is floating-point, the
result is a floating-point
• Can only use % with two integer operands
• Casting
♦ (int) (54.9) - truncates the floating-point number
♦ (double) (23) - adds a .0 to the integer
34
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
To do
• Homework 2 assigned today
♦ Algorithm design
♦ Theory questions
♦ First program (after tomorrow’s class)
• Read ch. 2 (pp. 37-end)
35
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Tomorrow
• First QUIZ!
• Writing a whole program
36
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL