COMP 14 - University of North Carolina at Chapel Hill

Download Report

Transcript COMP 14 - University of North Carolina at Chapel Hill

COMP 14
Introduction to Programming
Adrian Ilie
June 28, 2005
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Today
• Variables and expressions
• Input/Output
• Writing a whole program
2
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Variables
• Associated with data
♦ Input data
♦ Output data
♦ Intermediate data
• We need to define:
♦ Data type
♦ Identifier
• Values will be assigned in
expressions
3
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Variables - Steps
1. Identify all data from the algorithm
2. Determine data types (based on the
range and nature of the values)
3. Find meaningful names
•
4
Example: Ch. 1, Exercise 10.
Compute average score.
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Declaration of Variables
dataType identifier;
• Must be declared before it can be used
• Can be (but doesn't have to be) initialized
when declared
• Identifier should start in lowercase, indicate
separate words with uppercase (good style)
• Example:
♦ number of students in class
int numStudents;
• Multiple variables (of the same data type)
can be declared on a single line
int numStudents, numGrades, total;
5
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Assignment
variable = expresssion;
• Assignment Operator (=)
• expression can be a value (3) or a
mathematical expression (2 + 1)
• The expression must evaluate to the
same data type as the variable was
declared
6
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Assignment
• The assignment operator has a lower
precedence than the arithmetic operators
First the expression on the right hand
side of the = operator is evaluated
answer
=
4
sum / 4 + MAX * lowest;
2
3
1
Then the result is stored in the
variable on the left hand side
7
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Assignment
• The right and left hand sides of an
assignment statement can contain the same
variable
First, one is added to the
original value of count
count
=
count + 1;
Then the result is stored back into count
(overwriting the original value)
8
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Example (average score)
•
Write assignments and
expressions
•
Declaration of variables (good
style)
a) At the beginning
b) Before being used
9
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Named Constant
static final dataType IDENTIFIER = value;
• Declared by using the reserved word final
• Always initialized when it is declared
• Identifier should be in ALL CAPS, separate
words with underscore (_) (good style)
• Example:
♦ 1 inch is always 2.54 centimeters
final double CM_PER_INCH = 2.54;
10
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Questions
What is stored in the memory location
referred to by the identifier num after
each of the following statements is
executed in order?
int
num
num
num
num
num;
= 3;
= 5 + 4 - 2;
= num * 2;
= 3.4 + 5;
______
unknown
3
______
7
______
14
______
error
______
would give an error since 3.4 + 5 would
not result in an int
11
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Questions
Which of the following are valid Java
assignment statements? Assume that
i, x, and percent have been declared as
double variables and properly initialized.
1.
2.
3.
4.
12
i = i +
x + 2 =
x = 2.5
percent
Adrian Ilie
5;
x;
* x;
= 10%;
valid
______
invalid
______
valid
______
invalid
______
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Input
1. Standard input
2. Dialog windows (tomorrow)
3. File (tomorrow)
13
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Reading Keyboard Input
• We can let the user assign values to
variables through keyboard input
• In Java, input is accomplished using
objects that represent streams of data
• A stream is an ordered sequence of
bytes
• System.in is the standard input stream
object (by default, the keyboard)
14
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Reading Keyboard Input
• The idea is that, with System.in, we
have access to a stream of bytes
coming from the keyboard.
• In other words, we have access to the
keys pressed on the keyboard.
• But how do we actually get the values
of the keys that are pressed?
15
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Reading Keyboard Input
The input stream is made up of multiple objects:
InputStreamReader charReader = new 1 character
InputStreamReader (System.in);
at a time
BufferedReader keyboard = new
BufferedReader (charReader);
Whole line
at once
OR, all in one statement:
BufferedReader keyboard = new
BufferedReader (new InputStreamReader
(System.in));
16
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Reading Keyboard Input
• The readLine method of the BufferedReader
class reads an entire line of input as a String
String line = keyboard.readLine();
17
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Example (average score)
18
•
Input scores
•
Input weights
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
String to Numbers
• 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
19
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Example (average score)
20
•
Convert scores to int
•
Convert weights to double
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Output
• Standard output device is
usually the monitor
• Access the monitor using the
standard output object
♦ System.out
• Two methods to output a string:
1. print
2. println
21
Adrian Ilie
Puts the cursor on the next line at the end
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Examples
System.out.println ("Hi");
System.out.println ("There");
Hi
There
System.out.print ("Hi");
System.out.println ("There");
HiThere
int num = 5+3;
System.out.println (num);
8
int num = 5;
System.out.println ("The sum is " +
(num + 3));
The sum is 8
22
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
String Concatenation
• A string cannot be split between two lines
X
String greeting = "How are you doing
today";
• Concatenation (+) - produces one string
where the second string has been
appended to the first string
String greeting = “How are you doing” +
“ today?”;
greeting How are you doing today?
23
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
String Concatenation
• Operator + can be used to
concatenate two strings or a string
and a numeric value or character
• Precedence rules still apply
• Example:
String str;
int num1 = 12, num2 = 26;
str = "The sum = " + num1 + num2;
str
24
Adrian Ilie
The sum = 1226
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Example (average score)
25
•
Output result
•
Formatting numeric strings
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Writing a Whole Program
• Class - used to group a set of related
operations (methods), allows users to
create their own data types
• Method - set of instructions designed
to accomplish a specific task
• Package - collection of related classes
• Library - collection of packages
26
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Class Libraries
• A collection of classes that we can use
when developing programs
• The Java standard class library is part
of any Java development environment
• The System class and the String class
are part of the Java standard class
library
27
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Packages
• The classes of the Java standard class
library are organized into packages.
• Some of the packages in the standard class
library are:
28
Package
Purpose
java.lang
java.applet
java.awt
javax.swing
java.net
java.util
javax.xml.parsers
General support
Creating applets for the web
Graphics and graphical user interfaces
Additional graphics capabilities and components
Network communication
Utilities
XML document processing
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Using Packages
We need to import some of the
packages we want to use
♦ java.io for BufferedReader
import packageName;
♦ import java.io.*;
• imports all of the classes in the java.io package
♦ import java.io.BufferedReader;
• imports only the BufferedReader class from the
java.io package
29
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Using Predefined Classes
and Methods
• To use a method you must know:
♦ Name of class containing method (Math)
♦ Name of package containing class
(java.lang)
♦ Name of method (round), its parameters
(double a), what it returns (long), and
function (rounds a to the nearest integer)
• See Appendix E for more Java
predefined classes
30
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Using Predefined Classes
and Methods
• Example method call:
int num = (int) Math.round (4.6);
• (Dot) . Operator: used to access
the method in the class
31
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Creating a Java Program
• Java application program - collection
of one or more classes
♦ every application must have at least one class
• Class
♦ basic unit of a Java program
♦ collection of methods and data members
• Method - set of instructions designed
to accomplish a specific task
♦ print, readLine
32
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Programming in Java
• Java programming language
♦ object-oriented approach to problem
solving
• In the Java programming
language:
♦ a program is made up of one or more
classes
♦ a class contains one or more methods
♦ a method contains program statements
33
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Creating a Java Program
• All Java application programs must
have a method called main
♦ there can be only one main method in any Java
application program
• Most of the time, our programs will
have only one class
• Name of source file must be
ClassNameWithMain.java
34
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Anatomy of a Java Program
• Syntax of class
public class ClassName
{
classMembers
}
• Syntax of main method
public static void main (String[] args) throws clause
{
statement1
...
statementn
}
35
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Throws Clause
• throws clause - exceptions thrown by
the main method
• exception - occurrence of an
undesirable situation that can be
detected during program execution
♦ can either be handled or thrown
• readLine throws the exception
IOException
• We won't handle the exception, we'll
just throw it
36
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Throws
• If we're allowing user input to
the program, the heading of the
main method should look like:
public static void main (String[] args) throws IOException
37
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Import Statements
• Tell the compiler which packages are
used in the program
• Import statements and program
statements constitute the source code
• Source code saved in a file with the
extension .java
• Source code file must have the same
name as the class with the main
method
38
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
The main method
• Heading
public static void main (String[] args)
throws IOException
• Body
♦ statements enclosed by { }
♦ declaration statements
• used to declare things such as variables
♦ executable statements
• perform calculations, manipulate data, create
output, accept input, etc.
39
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Skeleton
import statements if any
public class ClassName
{
declare named constants and/or stream objects
public static void main (String[] args)
throws IOException
{
variable declarations
executable statements
}
}
40
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
static
• Heading of the main method has the
reserved word static
• Statements to declare named
constants and input stream objects
are outside the main method
• These must also be declared with the
static reserved word
41
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Style
• Syntax
♦ beware! a syntax error in one place might lead to
syntax errors in several other places
• Use of semicolons, braces, commas
♦ all Java statements end with semicolon
♦ braces {} enclose the body of a method and set it
off from other parts of the program (also have
other uses)
♦ commas separate list items
42
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Style
• Semantics
♦ set of rules that gives meaning to a language
♦ beware! the compiler will not be able to tell you
about semantic errors (example: missing
parentheses in mathematical expression)
• Documentation
♦ comments
♦ naming rules
• use meaningful identifiers
♦ prompt lines
• let the user know what type of input is expected
43
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Style and White Space
• White space
♦
♦
♦
♦
blanks, tabs, blank lines
used to separate words and symbols
extra space is ignored by computer
blank line between variable declaration and rest
of code
• Programs should be formatted to
enhance readability, using consistent
indentation
44
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Comments
• Not used by the computer
♦ only for human consumption
• Used to help others understand code
♦ explain and show steps in algorithm
♦ comments are essential!
• Should be well-written and clear
• Comment while coding
• Also called inline documentation
45
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Java Comments
// this is a one-line comment
♦ “comments out” the rest of the line after
marker //
/* this is a multi-line
comment */
♦ “comments out” everything between
markers /* and */
46
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
To do
• Practice input. Ch. 2 (pp.45-54)
• Practice output. Ch. 2 (pp.55-65)
• Ch. 2 examples:
♦ Convert Length
♦ Make Change
• Homework 2 due Thursday night.
• Read Ch. 3
47
Adrian Ilie
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL