Lecture 7 Instructor: Craig Duckett - Programajama 7 Instructor: Craig Duckett ... be used to fix...

43
Lecture 7 Instructor: Craig Duckett “OUTPUT”

Transcript of Lecture 7 Instructor: Craig Duckett - Programajama 7 Instructor: Craig Duckett ... be used to fix...

Lecture 7 Instructor: Craig Duckett

“OUTPUT”

Lecture 7 AnnouncementsASSIGNMENT 2 is due LECTURE 8 NEXT LECTURE

uploaded to StudentTracker by midnight

Assignment 2!!!

3

• Assignment 1 (LECTURE 5) GRADED!Section 1: Monday, January 22nd

• Assignment 2 (LECTURE 8) Section 1: Wednesday, January 31st

• Assignment 1 Revision (LECTURE 10) Section 1: Wednesday, February 7th

• Assignment 2 Revision (LECTURE 12) Section 1: Wednesday, February 14th

• Assignment 3 (LECTURE 13) Section 1: Wednesday, February 21st

• Assignment 3 Revision (LECTURE 16) Section 1: Monday, March 5th

• Assignment 4 (LECTURE 18) NO REVISION AVAILABLE!Section 1: Monday, March 12th

Assignment Dates (By Due Date)

The FickleFinger of Fate

REMINDER: ICE Solutions Are Available "Possible" solutions to ICEsare now available for theprevious lecture startingwith Lecture 4 (located atthe bottom of the Lecture"slider" areas). Solutions willbe made available by two (2)days after the currentlecture.

5

How Much Outside Work/Time Per Week for a 5-Credit Class?

• The Short Answer: It depends on the class (math vs humanities vs science vs development, etc.)

Rule of Thumb:Absolute Bare Minimum: 5 HoursAverage: 10 HoursTechnical/Developer Classes: 10-15 (occasionally)Upper-Level Classes: 15-20Looking Ahead: Graduate School: 20+

This is College. The amount of time you spend on schoolwork also goes up with every classlevel you advance. If you are pursuing a degree, and if you have a job, and if you want to dowell, then don't expect to have any free time except for the occasional Saturday or Sunday,and the between-quarter breaks (then make the most of them!)

Assignment 2 Part 3 Hints

Assignment 2 Part 3 - HintsIf heard that some of you are still struggling with Assignment 2 Part 3 even though it is imminently due, so I thought I'd give you some ‘hints’ to walk you throw the process as described in the A2 Directions and A2 Rubric.

1. Create a new class that extends Robot and a constructor. Remember if you do it all in one class (the same class that contains main) then the file name, the class name, and the constructor nameall have to be the same. It is highly recommended that you use MrRoboto.java from Lecture 3 as a reference (don’t forget to add a fifth ‘slot’ in the constructor to hold things, see example below). Also, don’t forget to change extends Object to extends Robot (see example below).

public class A2_Part_3 extends Robot{

public A2_Part_3(City theCity, int avenue, int street, Direction aDirection, int item){

super(theCity, avenue, street, aDirection, item);}

2. When you create a new instance of the robot down in main, then it too has to have this same name (for example, A2_Part_3 and not Robot).

For example:

A2_Part_3 rob = new A2_Part_3(wallville, 1, 2, Direction.EAST, 0);

3. Create a turnRight() and turnAround() method, which you will use with three other methods (which I'll talk about one at a time). If you used MrRoboto.java as a reference (copy – paste – tweak) then you already have these made for you.

4. Create a movetoWall() method which moves while the front is clear

5. Create a doEverything() method which will do the following:• Declare and initialize a counter to 0• Use the counter in a while loop four times

• Call movetoWall()• Pick up a Thing• Turn around• Call moveToWall()

• Turn left• Move• Turn left• Increment the counter by 1

//second part of doEverything continued on next slide

This is all in one while loop

6. [doEverything continued] Next, use a second while loop to count things in the backpack, and as long as count is greater than zero

moveput a thing down

6. // third part of doEverything continued on next slide

This is in second while loop

7. [doEverything continued] Finally, call the returnToStart() method to go back to where the robot start (see #8 below)

[end of doEverything]

8. The returnToStart() method will do the following:• turn around• Call moveToWall()• Turn right• Call moveToWall()• Turn right

Head’s up! MID-TERM

MID-TERM is LECTURE 10

• Please be prompt, and bring a pencil … don’t worry, I’ll supply the paper

• It will cover everything learned up through today, Lecture 7

• It is scheduled for the entire session, so you will have enough more than enough time to work through each of the questions, however most students finish in about 90 minutes.

• When you are finished, you can hand it in and you are done for the day, so feel free to go home or the nearest pub for a celebratory pint ;-)

• It will be done entirely with pencil-and-paper (no .java files).

Mid-Term Study Guide is available now on the main page of BIT115 website (located in the right-hand column)

• http://faculty.cascadia.edu/cduckett/bit115/index.html

Mid-TermMid-Term is scheduled for LECTURE 10

Mid-Term, continued…Mid-Term is scheduled for LECTURE 10

The Mid-Term Exam will focus on three learning outcomes:• conceptualize the logical steps needed to accomplish a task, • apply structured programming techniques to accomplish a task, • test and debug a program

Exam Topics:• Setting up a city with walls, things, robots • Using the robots built-in services • Extending a robot to include new services • Tracing code and pinpointing where it goes wrong • Explaining the compile/run process • Selecting when to use different programming structures like loops, decisions, and services • Writing syntax for loops, decisions, local variables, and parameters

Again, the exam will be similar to the quiz format (i.e., pencil-paper, from memory, individual work).

And Now … The Quiz

Output

Output

Chapter 6.6.1: Output(Printing Text Messages To The Screen)

• Info we get from the user is input

• Either from the keyboard, mouse, or something else like a network connection or other type of cable

• We will be looking at input in the next Lecture

• Info we show to the user is output

• This can be a message, additional information, even a request that the user perform some kind of action

• These messages and information are typically “hard-coded” into the program itself, then pushed out to the screen, console, or monitor using specific print-to-the-screen mechanisms (services) that are a part of Java

Back in the Day…

Back in the Day…

Back in the Day…

Back in the Day…

Back in the Day…

The Console Window The console window that starts a Java application is typically known as the standard

output device. The standard input device is typically the keyboard. Java sends information to the standard output device by using a Java class stored in

the standard Java library. In jGRASP, this output is displayed as part of Compile Messages Java classes in the standard Java library are accessed using the Java Applications

Programming Interface (API). The standard Java library is commonly referred to as the Java API.

“Hello World!”

String, print and println Methods

String String is the programming term for all characters that are printed to the console

or screen (and the space between characters is also part of the string). In Java and other programming languages, string is represented by lines of text contained in between double quotation marks " "System.out.print("This is string");System.out.println(" and so is this $#@*&!");

"This is a string!"

println and print Example:

System.out.println("Programming is great fun!");

This line uses the System class from the standard Java library. The System class contains methods and objects that perform system level tasks. The out object, a member of the System class, contains the methods print and

println.

Difference Between print and println

See: print_and_println.java example

System.out.print("Programming is great fun!");System.out.println("Programming is great fun!");

println (“Print, then drop down a line”) The print and println methods actually perform the task of sending characters to the output

device. We’ll look at println first… The line:

System.out.println("Programming is great fun!");

is pronounced: System dot out dot printline The value inside the parenthesis will be sent to the output device (in this case, a string). The println method places a newline character at the end of whatever is being printed out. The following lines would be printed out on separate lines since the first statement sends a

newline command to the screen:

System.out.println("This is being printed out");System.out.println("on two separate lines.");

print (“Print, and stay on same line”) The print statement works very similarly to the println statement. However, the print statement does not put a newline character at the end of

the output. Using print will continue going on the same line.

The lines:

System.out.print("These lines will be");System.out.print("printed on");System.out.println("the same line.");

Will output:

These lines will beprinted onthe same line.

Notice the odd spacing? Why do some words run together?

RECAP: print vs. printlnprint

Using System.out.print(“Some string.”)Continues on the SAME LINE after it’s done printing

println

Using System.out.println(“Some string.”)Drops down to the NEXT LINE after it’s done printing

So: Think of the ln in println standing for “line next” or “line new”

Special Characters in String For all of the previous examples, we have been printing out strings of

characters. Later, we will see that much more can be printed. There are some special characters that can be put into the output.

System.out.print("This line will have a newline at the end.\n");System.out.print("This doesn’t show up on the same line.");

The \n in the string is an escape sequence that represents the newline character.

Escape sequences allow the programmer to print characters that otherwise would be unprintable.

Java Escape Sequences ("Special Characters")

\n newline Advances the cursor to the next line for subsequent printing

\t tab Causes the cursor to skip over to the next tab stop

\b backspace Causes the cursor to back up, or move left, one position

\r carriage return Causes the cursor to go to the beginning of the current line, not the next line

\\ backslash Causes a backslash to be printed

\' single quote Causes a single quotation mark to be printed

\" double quote Causes a double quotation mark to be printed

Even though the escape sequences are comprised of two characters, they are treated by the compiler as a single character.

System.out.print("These are our top sellers:\n");System.out.print(“==========================\n");System.out.print("\t- Computer games\n\t- Coffee\n ");System.out.println("\t- Aspirin");

Would result in the following output:

These are our top sellers:==========================

- Computer games- Coffee- Aspirin

With these escape sequences, complex text output can be achieved.

Java Escape Sequences ("Special Characters")

The + operator can be used in two ways. (1) as a concatenation operator (2) as an addition operator

If either side of the + operator is a string, the result will be a string.

System.out.println("Hello " + "World!");Hello World!

System.out.println("The value is: " + 5);The value is: 5

System.out.println("The value is: " + value);The value is: <whatever value is>

System.out.println("The value is" + ": \n" + 5);The value is:5

The + Operator

String Concatenation

String Concatenation• Java commands that have string literals must be treated with care.• A string literal value cannot span lines in a Java source code file.

System.out.println("This line is too long and now it has spanned more than one line, which will cause a syntax error to be generated by the compiler. ");

• The String concatenation operator can be used to fix this problem.

System.out.println("These lines are " +"now ok and will not " +"cause the error as before.");

• String concatenation can join various data types.

System.out.println("We can join a string to " +"a number like this: " + 5);

http://en.wikipedia.org/wiki/Concatenation

String Concatenation The concatenation operator can be used to format complex String

objects.

System.out.println("The following will be printed " +"in a tabbed format: " +"\n\tFirst = " + 5 * 6 + ", " +"\n\tSecond = " + (6 + 4) + "," +"\n\tThird = " + 16.7 + ".");

Notice that if an addition operation is also needed, it must be put in parenthesis.

Printing as Part of Program Decision-Making

int newNum = 3;if( newNum >= 5 ){

System.out.println(newNum + “ is larger than 4”);

}else{

System.out.println(newNum + “ is smaller than 5.”);

}

Basic Output Demo.javaDemo:

Two Points: 1) ‘+’ for concatenation2) spaces in “ ”double-quotes

In-Class ExercisesLecture 7 > Output (Printing Text Messages To The Screen)

• Basic Output Demo.java DEMO• In-Class Exercises Directions• Output Trace Table• Basic Output Trace.java ( Example Note )