44
COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00- 4:15 Gardner Hall 307

COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Embed Size (px)

Citation preview

Page 1: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

COMP 110Introduction to Programming

Mr. Joshua StoughAugust 29, 2007

Monday/Wednesday/Friday 3:00-4:15Gardner Hall 307

Page 2: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Announcements

• Recitation– make sure you bring your textbook and laptop.

• Email– put COMP 110 in the subject line

• Questions– What type of programming would we be capable of doing at the end of the

semester? – How does java programming help me with Biomedical Engineering, job market? – How closely will we cover recursion? – Online book?

Page 3: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Questions about PROG 1

• It may well serve you better to type the code yourself, even if it’s just copying code from another program.– That way, you make mistakes that you know

how to fix, and hopefully fewer mistakes later.

Page 4: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Last Time in COMP 110

• Parts of a Computer• Binary Numbers• Algorithms

• PROG1 and HOMEWORK 1 assigned– due Wednesday Sep 5 at 11:59pm

Page 5: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Review, Hardware vs. Software

A computer is made up of hardware and software

Hardware Software• CPU

- ex: 1.8 GHz Core 2 Duo• input/output

- keyboard- 15.4” wide screen LCD- network card

• main memory- ex: 2 GB RAM

• secondary memory- ex: 160 GB hard drive

• operating systems- Windows XP- Mac OS X

• applications- games- Microsoft Word- Mozilla Firefox

Page 6: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

ReviewHardware Organization

motherboard

CPU

memory

hard drive

Page 7: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

ReviewMain Memory (with 100 cells)

Each memory cell has a numeric address, which uniquely identifies it

Page 8: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

ReviewBinary Numbers

• N bits to represent 2N values• N bits represent values 0 to 2N-1• Example: 5 bits

– 32 unique values (0-31)– 00000 = 0– 11111 = 31

24 23 22 21 20

16 + 8 + 4 + 2 + 1

Page 9: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

ReviewProblem Solving• Steps:

– understand the problem• how would you solve the problem (as a human,

without a computer)

– dissect the problem into manageable pieces– design a solution– consider alternatives to the solution and

refine it– implement the solution– test the solution and fix any problems that

exist

Page 10: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Review Questions

1. What is the maximum decimal value that a 4-bit binary number can represent?

2. What is the binary number for 17?

3. Before the CPU can execute instructions, they must first be loaded from

4. What is the first and most important step in writing a program?

15

10001

main memory

analysis, or understanding the problem

Page 11: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Today in COMP 14

• Basic elements of a Java program – special symbols– identifiers– data types– operators– expressions– Strings

• Textbook Ref: Ch 2 (pgs. 21-40)

Page 12: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Reading Check-Up

1. The rules of a language determine which instructions are valid.

2. True or False? Hello! is an example of a legal Java identifier.

3. If an operator has an integer and a floating-point operand, the result of the operation is a number.

4. The expression (int) (9.2) evaluates to

syntax

False

floating-point

9

Page 13: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

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

Page 14: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Cooking / Programming1. It is usually easier to follow a recipe than to

create one.2. There are good recipes and bad recipes.3. Some recipes are easy to follow and some

are difficult to follow.4. Some recipes produce reliable results and

some do not.5. You must have some knowledge of how to

use cooking tools to follow a recipe to completion.

6. To create good new recipes, you must have much knowledge and understanding of cooking.

Page 15: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Sample Java Program

public class Hello {public static void main (String[] args){

System.out.println ("Hi There!");}

}

Upon execution, this program displaysHi There!

Page 16: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

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

Page 17: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Special Symbols

+ - * /

. ; ? ,

<= != == >=

Page 18: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Word Symbolsaka 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 intendedpurpose in a program• shown in blue typewriter font in textbook• full table in Appendix A

Page 19: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

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

Page 20: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Illegal Identifiers

Page 21: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Questions

Classify the following as legal or illegal identifiers:

1. My First Program2. my1stProgram3. 1stProgram4. $money5. an_identifier6. Jane'sProgram

illegal

legal

illegal

legal

legal

illegal

Page 22: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Primitive Data TypesWhat’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

Page 23: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

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

Page 24: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Primitive Data TypesNumeric Types

• The difference between the various numeric primitive types is their size, and therefore the values they can store:

Typebyteshortintlong

floatdouble

Storage8 bits16 bits32 bits64 bits

32 bits64 bits

Min Value-128-32,768-2,147,483,648< -9 x 1018

+/- 3.4 x 1038 with 7 significant digits+/- 1.7 x 10308 with 15 significant digits

Max Value12732,7672,147,483,647> 9 x 1018

Page 25: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

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

Page 26: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Primitive Data TypesCharacters

• 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)

Page 27: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Primitive Data TypesBooleans

• 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

Page 28: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

• Expression - a combination of one or more operands and their operators

• Arithmetic expressions compute numeric results and make use of the arithmetic operators:

• If either or both operands associated with an arithmetic operator are floating point, the result is a floating point

Addition +Subtraction -Multiplication *Division /Remainder %

Arithmetic Expressions

Page 29: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

• If both operands to the division operator (/) are integers, the result is an integer (the fractional part is discarded)

• The remainder, or modulus, operator (%) returns the remainder after dividing the second operand into the first (only works with integer types)

14 / 3 equals?

8 / 12 equals?

4

0

14 % 3 equals?

8 % 12 equals?

2

8

Division and Remainder

Page 30: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Unary vs. Binary Operators• Unary operators

– has only one operand– example: - (negative, not subtraction)-5

• Binary operators– has two operands– example: - (subtraction)5 - 3

Page 31: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Operator Precedence

• Determines the order in which operators are evaluated:1. multiplication, division, and remainder 2. addition, subtraction, and string

concatenation3. arithmetic operators with the same

precedence are evaluated from left to right

• Parentheses can be used to force the evaluation order (just like in math)

Page 32: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Operator Precedence

• What is the order of evaluation in the following expressions?

a + b + c + d + e1 432

a + b * c - d / e3 241

a / (b + c) - d % e2 341

a / (b * (c + (d - e)))4 123

Page 33: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Integral Expressions

• All operands are integers• Result is an integer

• Examples:2 + 3 * 53 + x – y / 7x + 2 * (y – z) + 18

Page 34: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Floating-point Expressions• All operands are floating-point numbers• Result is a floating-point

• Examples:12.8 * 17.5 – 34.50x * 10.5 + y - 16.2

7.0 / 3.5

Page 35: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Mixed Expressions

• Operands of different types• Examples:

2 + 3.56 / 4 + 3.9

• Integer operands yield an integer result• Floating-point operands yield a floating-

point result• If both types of operands are present, the

result is a floating-point number– implicit type coercion

• Precedence rules are followed

2.0 + 3.5

1 + 3.9 1.0 + 3.9

Page 36: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

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

Page 37: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

QuestionsEvaluate These Expressions

1. (5 + 4) % 6

2. (5 + 6) % 3.5

3. (double) (13) / 2

4. (double) (13 / 2)

9 % 63

11 % 3.5not possible

(double) (6)6.0

13.0 / 26.5

Page 38: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

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:

– "Hello World"– "1234"– "45.67"– ""

Page 39: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Strings

• Every character has a position in the string (starting with 0)"Hello World"

• The length of the string is the number of characters in it– what's the length of "Hello World"?

0123456789...

11(count the space)

Page 40: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

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"

Page 41: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Parsing Numeric Strings• String to intInteger.parseInt(strExpression)Integer.parseInt("6723") 6723

• String to floatFloat.parseFloat(strExpression)Float.parseFloat("345.76") 345.76

• String to doubleDouble.parseDouble(strExpression)

Double.parseDouble("1234.56") 1234.56

Page 42: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

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

Page 43: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

• Arithmetic Operators:

• 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

addition +subtraction -multiplication *division /remainder (mod) %

Summary

Page 44: COMP 110 Introduction to Programming Mr. Joshua Stough August 29, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307

Next Time in COMP 110

• Wednesday– input, variables,

increment/decrement, Strings and '+' operator

– Remember, you’re responsible for Ch. 2