intro to programming chapter 1 part 2 problem solving
TRANSCRIPT
![Page 1: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/1.jpg)
Intro to Programming
Chapter 1 Part 2
Problem Solving
![Page 2: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/2.jpg)
Problem Solving
The purpose of writing a program is to solve a problem
The general steps in problem solving are:
• Understand the problem• 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 3: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/3.jpg)
Problem Solving
Many software projects fail because the developer didn't really understand the problem to be solved
We must avoid assumptions and clarify ambiguities
As problems and their solutions become larger, we must organize our development into manageable pieces
This technique is fundamental to software development
![Page 4: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/4.jpg)
Java
A programming language specifies the words and symbols that we can use to write a program
A programming language employs a set of rules that dictate how the words and symbols can be put together to form valid program statements
The Java programming language was created by Sun Microsystems, Inc.
It was introduced in 1995 and it's popularity has grown quickly since
It is an object-oriented language
![Page 5: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/5.jpg)
Java Program Structure
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
These terms will be explored in detail throughout the course
A Java application always contains a method called main
See Lincoln.java (page 27)
![Page 6: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/6.jpg)
Lincoln.java
//******************************************************************** // Lincoln.java Author: Lewis/Loftus/Cocking // // Demonstrates the basic structure of a Java application. //********************************************************************
public class Lincoln { //----------------------------------------------------------------- // Prints a presidential quote. //----------------------------------------------------------------- public static void main (String[] args) { System.out.println ("A quote by Abraham Lincoln:");
System.out.println ("Whatever you are, be a good one."); } }
![Page 7: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/7.jpg)
7
Java Program Structure
public class MyProgram
{
}
// comments about the class
class header
class body
Comments can be placed almost anywhere
![Page 8: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/8.jpg)
8
Java Program Structure
public class MyProgram
{
}
public static void main (String[] args)
{
}
// comments about the class
// comments about the method
method headermethod body
![Page 9: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/9.jpg)
9
Comments
Comments in a program are called inline documentation
They should be included to explain the purpose of the program and describe processing steps
They do not affect how a program works
Java comments can take three forms:
// this comment runs to the end of the line
/* this comment runs to the terminating symbol, even across line breaks */
/** this is a javadoc comment */
![Page 10: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/10.jpg)
10
Identifiers
Identifiers are the words a programmer uses in a program
An identifier can be made up of letters, digits, the underscore character ( _ ), and the dollar sign
Identifiers cannot begin with a digit
Java is case sensitive - Total, total, and TOTAL are different identifiers
By convention, Java programmers use different case styles for different types of identifiers, such as• title case for class names - Lincoln
• upper case for constants - MAXIMUM
![Page 11: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/11.jpg)
Identifiers
Sometimes we choose identifiers ourselves when writing a program (such as Lincoln)
Sometimes we are using another programmer's code, so we use the identifiers that they chose (such as println)
Often we use special identifiers called reserved words that already have a predefined meaning in the language
A reserved word cannot be used in any other way
![Page 12: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/12.jpg)
12
Reserved Words
The Java reserved words:
abstractbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodouble
elseextendsfalsefinalfinallyfloatforgotoifimplementsimportinstanceofint
interfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticstrictfp
superswitchsynchronizedthisthrowthrowstransienttruetryvoidvolatilewhile
![Page 13: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/13.jpg)
Homework:
Read pp. 24 (bottom) to 32Multiple Choice p 50 # 1.6 – 1.8True/False p 50 # 1.1, 1.5, 1.7Short Answer p 51 # 1.7 & 1.8
![Page 14: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/14.jpg)
Writing your first program:
Log onto your computer Make a new folder in your h:\drive:
• MyJavaWork
Open Jcreator (find in Math Shortcuts under Start menu)• File New Blank Workspace
![Page 15: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/15.jpg)
Click on Finish
![Page 16: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/16.jpg)
Setting up your projects:
File Open Workspace
![Page 17: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/17.jpg)
![Page 18: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/18.jpg)
Workspace Opened:
![Page 19: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/19.jpg)
Make a new project:
File New Project• Empty Project Next
![Page 20: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/20.jpg)
Name each project:
First Program Finish Finish
![Page 21: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/21.jpg)
Name your file
Put your curser on your project name: First Program• File New File Empty Java File Next
![Page 22: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/22.jpg)
Entering the file name
Type the name of your file: HelloWorld• You do not need to type in the .java
extension – it is automatic
Click on Finish
![Page 23: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/23.jpg)
Write your first program
![Page 24: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/24.jpg)
Build your Project
Build Build Project
![Page 25: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/25.jpg)
Run Your Project
Once your output at the bottom of the screen says
“process completed” then choose”
Run Run Project
If you do not see “process completed” you will see error messages. You must fix your errors and build again before running the project.
![Page 26: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/26.jpg)
Program with output at bottom:
![Page 27: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/27.jpg)
Your Turn:
Click on Workspace Chapter 1 Programs Go to File New Project Empty Project
• Name your next project Second Program• Be sure your file path is directed to your h:\drive and the
MyJavaWork folder
Once you have a new project, click on the project name • Go to File New File Empty Java File• Name this file Greeting• Click on Finish• Type the code for a new program that will print some sort of
greeting to the screen instead of “Hello World!”
![Page 28: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/28.jpg)
Use the following as a start:
Add your own comments
![Page 29: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/29.jpg)
![Page 30: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/30.jpg)
30
White Space
Spaces, blank lines, and tabs are called white space
White space is used to separate words and symbols in a program
Extra white space is ignored
A valid Java program can be formatted in many ways
Programs should be formatted to enhance readability, using consistent indentation
See Lincoln2.java (page 33)
See Lincoln3.java (page 34)
![Page 31: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/31.jpg)
Lincoln2.java
//******************************************************************** // Lincoln2.java Author: Lewis/Loftus/Cocking // // Demonstrates a poorly formatted, though valid, program. //********************************************************************
public class Lincoln2{public static void main(String[]args){ System.out.println("A quote by Abraham Lincoln:"); System.out.println("Whatever you are, be a good one.");}}
![Page 32: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/32.jpg)
Lincoln3.java //******************************************************************** // Lincoln3.java Author: Lewis/Loftus/Cocking // // Demonstrates another valid program that is poorly formatted. //********************************************************************
public class Lincoln3 { public static void main ( String [] args ) { System.out.println ( "A quote by Abraham Lincoln:" ) ; System.out.println ( "Whatever you are, be a good one." ) ; } }
![Page 33: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/33.jpg)
33
Language Levels
There are four programming language levels:• machine language• assembly language• high-level language• fourth-generation language
Each type of CPU has its own specific machine language
The other levels were created to make it easier for people to read and write programs
![Page 34: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/34.jpg)
34
Programming Languages
A program must be translated into machine language before it can be executed on a particular type of CPU
A compiler is a software tool which translates source code into a specific target language
Often, that target language is the machine language for a particular CPU type
The Java approach is somewhat different
![Page 35: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/35.jpg)
35
Java Translation
The Java compiler translates Java source code into a special representation called bytecode
Java bytecode is not the machine language for any traditional CPU
Another software tool, called an interpreter, translates bytecode into machine language and executes it
Therefore the Java compiler is not tied to any particular machine
Java is considered to be architecture-neutral
![Page 36: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/36.jpg)
36
Java Translation
Java sourcecode
Machinecode
Javabytecode
Javainterpreter
Bytecodecompiler
Javacompiler
![Page 37: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/37.jpg)
Development Environments
There are many environments for developing Java software:
• Sun Java Development Kit (JDK)• Sun Forte for Java• Borland JBuilder• MetroWerks CodeWarrior• Microsoft Visual J++• Eclipse
• ** JCreator LE• ** BlueJ
Though the details of these environments differ, the basic compilation and execution process is essentially the same
![Page 38: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/38.jpg)
38
Syntax and Semantics
The syntax rules of a language define how we can put together symbols, reserved words, and identifiers to make a valid program
The semantics of a program statement define what that statement means (its purpose or role in a program)
A program that is syntactically correct is not necessarily logically (semantically) correct
A program will always do what we tell it to do, not what we meant to tell it to do
![Page 39: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/39.jpg)
39
Errors
A program can have three types of errors
The compiler will find syntax errors and other basic problems (compile-time errors)
• If compile-time errors exist, an executable version of the program is not created
A problem can occur during program execution, such as trying to divide by zero, which causes a program to terminate abnormally (run-time errors)
A program may run, but produce incorrect results, perhaps using an incorrect formula (logical errors)
![Page 40: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/40.jpg)
Basic Program Development
errors
errors
Edit andsave program
Compile program
Execute program andevaluate results
![Page 41: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/41.jpg)
Homework:
Read pp. 33 – 41Short Answer p 52 # 1.9
![Page 42: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/42.jpg)
Introduction to Graphics
The last one or two sections of each chapter of the textbook focus on graphical issues
Most computer programs have graphical components
A picture or drawing must be digitized for storage on a computer
A picture consists of pixels, and each pixel is stored separately
![Page 43: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/43.jpg)
Representing Color
A black and white picture can be stored using one bit per pixel (0 = white and 1 = black)
A colored picture requires more information; there are several techniques for representing colors
For example, every color can be represented as a mixture of the three additive primary colors Red, Green, and Blue
In Java, each color is represented by three numbers between 0 and 255 that collectively are called an RGB value
![Page 44: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/44.jpg)
Coordinate Systems
Each pixel can be identified using a two-dimensional coordinate system
When referring to a pixel in a Java program, we use a coordinate system with the origin in the top-left corner
Y
X(0, 0)
(112, 40)
112
40
![Page 45: Intro to Programming Chapter 1 Part 2 Problem Solving](https://reader035.vdocuments.net/reader035/viewer/2022062315/5697c00d1a28abf838cc961f/html5/thumbnails/45.jpg)
Programming Assignment
Do programming exercises from the text pp 52 - 53:• 1.1, 1.3 – 1.6
Read pp. 42 – 44.