Welcome to CS 100

advertisement
CS100J: Lecture 2

Previous Lecture
– Programming Concepts

problem, algorithm, program, computer, input,
output, sequential execution, conditional execution
– Reading: Lewis & Loftus, or Savitch: Chapter 1

This Lecture
– Programming Concepts

variables and declarations, assignment, expressions
– Java Constructs

assignment statement

expressions

conditional statement

output statement

comments

boilerplate

block statement
– Reading:
CS 100

Lewis & Loftus, Chapter 2 and Sections 3.1-3.5, or

Savitch, Chapter 2 and Section 3.1
Lecture 2
1
Algorithm / Program A
Problem statement
An integer is given as input data. If it is even, output
“even”, otherwise output “odd”.
Program in English
1. Get the integer and call it num
2. Divide num by 2 and call the remainder rem
3. If rem is 0, output “even”, otherwise output “odd”
Program Segment in Java
num = in.readInt();
rem = num % 2;
if ( rem == 0 )
System.out.println("even");
else
System.out.println("odd");
CS 100
Lecture 2
2
Initial Observations





A “segment” is a part of a program
Java is like stylized English
Sequence of imperatives, known as
statements
Statements are not numbered
Layout is essential for readability, but
irrelevant for meaning, e.g., this code
segment has the same effect:
num=in.readInt();rem=num%2;if(rem==0)
System.out.println("even");else
System.out.println("odd");

English version:
– names num and rem
Java version:
– memory locations num and rem

Memory locations are known as variables
CS 100
Lecture 2
3
Variables and Assignment


variable A place that can hold a value
Graphically:
name value
Italics designate placeholders, e.g., name
stands for some name

assignment The act of storing a value
in a variable.

rem
0
num
0
destructive update Assigning a value
to a variable destroys the previous
contents of the variable
num
CS 100
0
7
rem
Lecture 2
0
1
4
Assignment Statement

Template:
variable = expression ;

Meaning: store the value of the
expression into the variable

Read “=“ as “is assigned the value”, or
“becomes equal to”, or “gets the value”

An expression is a formula (as in algebra)

Examples
num = in.readInt();
rem = num % 2;
postage = 33;
average = sum / count;
count = count + 1;
CS 100
Lecture 2
5
Expression Evaluation

Variables: Current value in the variable


Constants:


Examples
+
addition
subtraction
*
multiplication
/
division
%
remainder
Functions: As in mathematics


Examples: 2, 33, 1
Operations: As in algebra


Example
– Suppose variable num contains 7
– Then in evaluating the expression num % 2
the value of num is 7
Examples
sin(x)
max(x, y)
in.readInt()
Parentheses: For grouping
CS 100
Lecture 2
6
Conditional Statement

Template:
if ( expression )
statement1
else
statement2

Meaning: Execute statement1 if
expression has value true, otherwise
execute statement2

Logical operations:
==
!=
<
<=
>
>=

equality
inequality
less than
less than or equal to
greater than
greater than or equal to
“else statement” can be omitted,
meaning “otherwise do nothing”
CS 100
Lecture 2
7
Output Statement

Template:
System.out.println( expression );
System.out.print( expression );

Meaning: Output the value of expression

After output, println advances to the
next line, print stays on same line

Examples:
System.out.println( ”even” );
System.out.println( num + ” is even”);
In the second example, num is converted
to a textual representation, which is then
concatenated to the 8 letters “ is even”,
and output
CS 100
Lecture 2
8
Comments

Template:
// any-text-to-end-of-line
/* any-text */


Meaning: Ignored by Java, but essential
for human understanding
Example:
// Set num to be the input integer.
num = in.readInt();
// Set rem to be the remainder of num/2.
rem = num % 2;
if ( rem == 0 )
System.out.println("even");
else
System.out.println("odd");
CS 100
Lecture 2
9
Program A in Java
/* Input an integer and output "even" if it
is even, otherwise output "odd. */
import java.io.*;
public class OddEven
{
public static void main(String args[])
{
int num; // Input integer.
int rem; // Remainder of num / 2.
// Initialize Text object in to read
// from standard input.
TokenReader in = new TokenReader(System.in);
// Set num to be the input integer.
num = in.readInt();
// Set rem to be the remainder of num/2.
rem = num % 2;
if ( rem == 0 )
System.out.println("even");
else
System.out.println("odd");
}
}
CS 100
Lecture 2
10
Outermost Structure

Template:
/* comment */
import java.io.*;
public class name
{
public static void main(String args[])
{
declarations
// Initialize Text object in to read
// from standard input.
TokenReader in = new TokenReader(System.in);
statements
}
}

Meaning: execute declarations, then
execute statements, then stop.
The comment should specify exactly what
task the program performs
Declare each variable in declarations

Don’t try to understand the rest now


CS 100
Lecture 2
11
Declarations

Template:
int list-of-variables ; // comment

Meaning: create a list of named variables
that can contain int values

Use meaningful variable names that
suggests the variable’s purpose

Names in list-of-variables are
separated with commas.

Other types of variables besides int
Examples:
– float for numbers in scientific notation
– boolean for logical values true and false
– etc.
CS 100
Lecture 2
12
Block Statement

Motivation: Some syntactic contexts
permit only a single statement, e.g.,
if ( expression )
statement1
else
statement2
To do several things at statement, you
need a way to make a sequence of
statements act as one statement

Template:
{ list-of-statements }
i.e., a block statement is a list of
statements in curly braces.

Meaning: execute each statement in the
list-of-statements in sequence
CS 100
Lecture 2
13
Block Statement, cont.

Example:
if ( expression )
{
list-of-statements
}
else
{
list-of-statements
}
CS 100
Lecture 2
14
Things to Do

Buy a floppy disk if you will use public
computers

Program 1: do it

Sections: pick one and attend first meeting

Reading:
– Lewis & Loftus, Chapter 2 and Sections 3.1-3.5, or
– Savitch, Chapter 2 and Section 3.1
CS 100
Lecture 2
15
Download