+ All Categories
Home > Documents > COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson...

COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson...

Date post: 26-Mar-2015
Category:
Upload: sara-dunlap
View: 217 times
Download: 3 times
Share this document with a friend
Popular Tags:
50
COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014
Transcript
Page 1: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110:Introduction to Programming

Tyler JohnsonJanuary 26, 2009

MWF 11:00AM-12:15PMSitterson 014

Page 2: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 20092

Announcements

Lab 0 graded

Page 3: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 20093

Questions?

Page 4: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 20094

Today in COMP 110

Type Casting

More Operators

Strings

Console I/O

Page 5: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 20095

From Last Time

Type Name

Kind of Value

Memory Used

Range of Values

byte Integer 1 byte -128 to 127

short Integer 2 bytes -32,768 to 32,768

int Integer 4 bytes -2,147,483,648 to 2,147,483,647

long Integer 8 bytes -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807

float Floating-point 4 bytes ±3.40282347 x 10+38 to ±1.40239846 x 10-45

double Floating-point 8 bytes ±1.79769313486231570 x 10308 to ±4.94065645841246544 x

10-324

char Character 2 bytes 0 to 65,535

boolean boolean 1 bit True or False (0 to 1)

Page 6: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 20096

Assignment Compatibilities

You cannot store a value of one type in a variable of another type

int i = 0.1; //this does not compile!

However, some types can be converted into other types

double d = 1; //1 is automatically converted to 1.0

Page 7: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 20097

Assignment Compatibilities

byte » short » int » long » float » double

A value of any type in the list can be assigned to a type further down the list

Exampleint iVar = 7;double dVar = iVar; //this is legal

Page 8: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 20098

Assignment Compatibilities

In some cases, you may want to override the assignment compatibilities

This can be done using type casting

Page 9: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 20099

Type Casting

Syntax(Type_Name) ExpressionExpression is a combination of numbers and variables

Exampledouble distance = 9.0;int points = (int)distance; //cast distance to an int//distance is not changed in any way//the value of points will be 9

Page 10: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200910

Type Casting

Type casting is not rounding!The effect of a type cast is truncation

Any fractional portion is discardedJust like when you divide two integers

Exampledouble bill = 25.75;int dollars = (int)bill ; //cast bill to an int//bill is not changed in any way//the value of dollars will be 25

Page 11: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200911

From Last Time

OperatorsAddition (+)• a + b

Subtraction (-)• a - b

Multiplication (*)• a * b

Division (/)• a / b

Remainder or Modulo (%)• a % b

Page 12: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200912

Parentheses and Precedence

Parentheses can be used to indicate the order in which operations should be performedExample

What is the value of “result”?

int a = 3, b = 1, c = 2, result = 0;

result = (a + b) * c;

result = a + (b * c);

result = 8

result = 5

Page 13: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200913

Binary Operators

Binary operators take two operandsAn operand is just a number or variable

For example, +,-,*,/ are binary operators

i = a + b;i = a - b;i = a * b;i = a / b;

Page 14: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200914

Unary Operators

Unary operators take a single operand

+ and – can also be unary operators

i = -7;f = +100.2;

Page 15: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200915

Specialized Assignment Operators

+=

a += 3; //same asa = a + 3;

-=

a -= 4; //same asa = a – 4;

*=

a *= 2; //same asa = a * 2;

/=

a /= 3; //same asa = a / 3;

Page 16: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200916

Increment and DecrementOperators

Increment Operator (++)

count++; //same ascount = count + 1;

Decrement Operator (--)

count--; //same ascount = count – 1;

Page 17: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200917

Increment and Decrement Operators

Can also be used in expressions in either prefix (++m) or postfix (m++) form

Examplen * (m++)• Increases m by 1 after the multiplication

n * (++m)• Increases m by 1 before the multiplication

Page 18: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200918

Increment and Decrement Operators

int n = 2;int m = 4;int result = n * (m++); //result = 8, m = 5result = n * (++m);

//result = 12, m = 6

Page 19: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200919

Operator Precedence

Java evaluates expressions in an order specified by precedence rules

Certain operations are performed before others

Example

i = 4 + 2 * 3 – 1; // the value of i will be 9

Page 20: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200920

Java Precedence Rules

Highest Precedence

First: the unary operators +, -, ++, --Second: the binary operators *, /, %Third: the binary operators +, -

Lowest Precedence

Binary operators of equal precedence are evaluated from left to right

Page 21: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200921

Precedence Examples

-3 * 7 % 3 – 4 – 6-21 % 3 – 4 – 60 – 4 – 6-10

3 * (3 % 2 ) / -2 3 * 1 / -23 / -2-1NOTE: Truncation of division operator on integers

Page 22: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200922

Constants

Constants or literals are values that don’t change

2, 6, ‘B’, 5.433e8NOTE: 5.433e8 means 5.433 x 108

Example uses of constantsint i = 2; // i is a variable, 2 is a constant char l = ‘J’; // l is a variable, ‘J’ is a constantdouble d = 6.1e38; //d is a variable, 6.1e38 is a //constant

Page 23: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200923

Named Constants

A constant that is given a name and can be used much like a variableSyntax

final Type Variable = Constant;

Examplesfinal double PI = 3.14159;final int HOURS_PER_DAY = 24;

Page 24: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200924

Representing Text in Java

How to represent sequences of characters in Java programs such as

“Enter a whole number from 1 to 99.”

Java provides the class “String” for this purpose

Page 25: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200925

Strings

String is a class provided by the Java language for representing sequences of characters

“Enter a whole number from 1 to 99.”

Page 26: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200926

Strings

Messages like these are called String literals or String constants

“Enter a whole number from 1 to 99.”“What is your name?”“I will add two numbers for you.”

They have the type “String”

Page 27: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200927

Strings

We can declare Strings in Java programs

Example

String greeting;greeting = “Hello!”;System.out.println(greeting); //prints Hello! to screenSystem.out.println(“Hello!”); //also prints Hello! to

//screen

Page 28: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200928

String Indices

Strings consist of a sequence of characters

Each character has a position in the String

U N C i s G r e a t

0 1 2 3 4 5 6 7 8 9 10

11

Positions

Characters

Page 29: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200929

String Concatenation

We can concatenate two Strings together using the (+) operator

Example

String name = “Bob”;String greeting = “Hi ” + name;System.out.println(greeting);//prints “Hi Bob” to the screen

Page 30: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200930

String Concatenation

We can also concatenate Strings with other data types

System.out.println("I am " + 21 + " years old!");//prints “I am 21 years old!” to screen

Page 31: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200931

Strings as a Class

String is a class type, not a primitive type

Class types have both data and methods (actions)

Page 32: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200932

String Length

The “length()” method of the String class returns the # of characters in the String

String myString = “Hi there!”;int len = myString.length();

Object

9Method

Class

Page 33: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200933

Strings

All objects of the same class have the same methods, but may have different dataExampleString s1 = “First!”;String s2 = “Second!”;

s1.length() returns 6s2.length() returns 7

Page 34: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200934

String Methods

string.indexOf(A_String)Returns the index of the first occurrence of A_String in string

ExampleString phrase = “UNC is Great”;int ind = phrase.indexOf(“Great”);

U N C i s G r e a t

0 1 2 3 4 5 6 7 8 9 10

11

Page 35: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200935

String Methods

string.substring(Start)Returns a new string having the same characters as the substring of string beginning at index Start through the end of string

ExampleString phrase = “UNC is Great”;String sub = phrase.substring(2);

U N C i s G r e a t

0 1 2 3 4 5 6 7 8 9 10

11

Page 36: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200936

String Methods

Other methods of the String class include

string.charAt(index)• Returns the character at index in string

string.toLowerCase()• Returns a new String with the same characters as

string, but with any uppercase characters changed to lowercase

string.equals(A_String)• Returns true if string and A_String are the same,

otherwise returns false

See Textbook pg 78 for full listing

Page 37: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200937

Quotations Marks in Strings

ProblemQuotation marks in Java indicate the beginning and end of a String literal

String phrase = “Enter a whole number from 1 to 99.”;

How to put quotation marks into Strings?

Page 38: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200938

Quotation Marks in Strings

ExampleWe’d like to print the message

This class is so "fun"

But we cannot use

System.out.println("This class is so "fun"");

because the Java compiler sees it as

System.out.println("This class is so "fun"");

Page 39: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200939

Quotation Marks in Strings

The way to do this in Java is with the escape character '\'

We can use the sequence \" inside a string to indicate a quotation mark

Example

System.out.println("This class is so \"fun\"");

will print to screen

This class is so "fun"

Page 40: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200940

Backslashes in Strings

If backslash '\' is the escape character, how can I put backslashes into Strings?

Use the sequence \\ for this

Example

System.out.println("This is a backslash \\");

will print to screen

This is a backslash \

Page 41: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200941

New Line Sequence

The sequence \n starts a new line of text

Example

System.out.println("Line 1\nLine 2");

will print to screen

Line 1Line 2

Page 42: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200942

Escape Characters

\" Double quote

\' Single quote

\\ Backslash

\n New line

\r Carriage return

\t Tab

Page 43: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200943

String Exercise

What is the output?

System.out.println("abc\ndef");

abcdef

System.out.println("abc\\ndef");

abc\ndef

Page 44: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200944

Testing & Debugging

It’s easy to make mistakes when programming

These mistakes are called bugs

The process of eliminating mistakes in a program is called debugging

Page 45: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200945

Programming Errors

Syntax Error – Failure to follow the rules of the language

E.g. missing semi-colon

Run-time Error – An error that causes the program to halt and produce an error message

E.g. Program crashes

Logic Error – When a program fails to produce the correct result

E.g accidentally using addition when you meant to use subtractionHardest to locate!

Page 46: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200946

Programming Demo

Fahrenheit to Celsius Converter

ProblemGiven a temperature in degrees Fahrenheit, convert to a temperature in degree Celsius

Page 47: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200947

Programming Demo

Fahrenheit to Celsius

StepsPseudocode

Programming

Testing/Debugging

Page 48: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200948

The Algorithm

Comes directly from the formula for conversion

tempC = (5/9)(tempF – 32)

Page 49: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200949

Fahrenheit to Celsius

PseudocodeAsk user for temp in FahrenheitConvert temp in Fahrenheit to temp in CelsiusOutput the result

Page 50: COMP 110: Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014.

COMP 110: Spring 200950

Wednesday

Documentation and Style

Introduction to Branching


Recommended