710 likes | 882 Vues
Chapter 8: Introduction to High-Level Language Programming. Invitation to Computer Science, Java Version, Third Edition. Objectives. In this chapter, you will learn about Where do we stand? High-level languages Introduction to Java Virtual data storage Statement types.
E N D
Chapter 8: Introduction to High-Level Language Programming Invitation to Computer Science, Java Version, Third Edition
Objectives In this chapter, you will learn about • Where do we stand? • High-level languages • Introduction to Java • Virtual data storage • Statement types Invitation to Computer Science, Java Version, Third Edition
Objectives (continued) • Meeting expectations • Managing complexity • Object-oriented programming • Graphical programming • The big picture: Software engineering Invitation to Computer Science, Java Version, Third Edition
Where Do We Stand? • Early days of computing • Programmers were satisfied with assembly language • Programs mostly written by very technically oriented people • Later decades • Programmers demanded a more comfortable programming environment • Programs were now also written by “nontechie” people Invitation to Computer Science, Java Version, Third Edition
High-Level Languages • High-level programming languages • Called third-generation languages • Created to overcome deficiencies of assembly language • Expectations of a high-level language program • The programmer need not manage the details of the movement of data items within memory nor exactly where those items are stored Invitation to Computer Science, Java Version, Third Edition
High-level Languages (continued) • Expectations of a high-level language program (continued) • Programmer can take a macroscopic view of tasks; “primitive operations” can be larger • Program will be portable • Programming statements will be closer to standard English and use standard mathematical notation Invitation to Computer Science, Java Version, Third Edition
Transition of a High-level Language Program High-level langauge program Low-level code Second translator compiler Object code in machine langauge Executable module loaded into memory Complete object code linker Harware Resultes Invitation to Computer Science, Java Version, Third Edition
Introduction to Java: A Simple Java Program • Comments • Give information to human readers of code • Class header • Announces that a class is about to be defined • Class • A collection of methods • Method • A section of code that performs a service Invitation to Computer Science, Java Version, Third Edition
Figure 8.2 A Simple Java Program Invitation to Computer Science, Java Version, Third Edition
Running a Java Program • File containing the Java code • Same name as the class • File extension .java • Example: TravelPlanner.java • Running a Java program • Program compiled • Example: File TravelPlanner.class created • Translation to object code completed; program linked, loaded, and executed Invitation to Computer Science, Java Version, Third Edition
Virtual Data Storage • Identifiers • Names in a programming language • Keyword • Has a special meaning in Java • Java is a case-sensitive, free-format language • Variable • A named location in memory • Must be declared before it can be used Invitation to Computer Science, Java Version, Third Edition
Figure 8.4 Some of the Java Primitive Data Types Invitation to Computer Science, Java Version, Third Edition
Virtual Data Storage (continued) • An array • Groups together a collection of memory locations, all storing data of the same type Figure 8.5 A 12-Element Array Hits Invitation to Computer Science, Java Version, Third Edition
Statement Types • Input/output statements • Input statement • Collects a specific value from the user for a variable within the program • Output statement • Writes a message or the value of a program variable to the user’s screen or to a file Invitation to Computer Science, Java Version, Third Edition
Statement Types (continued) • Assignment statement • Assigns a value to a program variable • Control statement • Directs the flow of control • Can cause it to deviate from the usual sequential flow Invitation to Computer Science, Java Version, Third Edition
Input Statements • A prompt • A message that tells the user what kind of input the program wants • Console class • Not a standard Java class; written for this book • Can be used to handle both the prompt and the retrieval of the value in one statement Invitation to Computer Science, Java Version, Third Edition
Input Statements (continued) • Methods • readInt • readDouble • readChar • Syntax variable1 = Console.readInt(prompt); variable2 = Console.readDouble(prompt); variable3 = Console.readChar(prompt); Invitation to Computer Science, Java Version, Third Edition
Eg • public class TravelPlanner • { • public static void main(String[] args) • { • int speed = 1; • double distance = 0; • double time; • speed = Console.readInt("Enter speed in mph:"); • distance = Console.readDouble("Enter your distance in miles;"); • time = distance/speed; • System.out.print("At " + speed + "mph, it will take " + time + "hours to travel " + distance + " miles"); • } • } Invitation to Computer Science, Java Version, Third Edition
Output Statements • Output to the screen System.out.println(string); • The string can be • Empty System.out.println(); • Literal string System.out.println("Here's your answer." ); • Composed of two or more items System.out.println("Give me " + 5); Invitation to Computer Science, Java Version, Third Edition
The Assignment Statement • General form variable = expression; • Expression is evaluated first; the result is written into the memory location specified on the left Invitation to Computer Science, Java Version, Third Edition
The Assignment Statement (continued) • Examples B = 2; • Suppose that B is an integer variable A = B + C; • Suppose that A, B, and C are integer variables Letter = 'm'; • Suppose that Letter is a variable of type char Invitation to Computer Science, Java Version, Third Edition
Type casting: happen when an integer value is assigned to a double value. • Initialize variable as soon as they they declared, like: • int count = 0; Invitation to Computer Science, Java Version, Third Edition
Control Statements • Types of control mechanisms • Sequential • Instructions are executed in order • Conditional • The choice of which instructions to execute next depends on some condition • Looping • A group of instructions may be executed many times Invitation to Computer Science, Java Version, Third Edition
Control Statements (continued) • Sequential is default mode of execution • Conditional flow of control • Evaluation of a Boolean condition (also called a Boolean expression) • The programming statement to execute next is based on the value of the Boolean condition (true or false) Invitation to Computer Science, Java Version, Third Edition
Control Statements (continued) • Conditional flow of control (continued) • if-else statement if (Boolean condition) S1; else S2; • if variation of the if-else statement if (Boolean condition) S1; S1, S2 may be compound statement (may have serval statements) Invitation to Computer Science, Java Version, Third Edition
Figure 8.10 Conditional Flow of Control (If-Else) Invitation to Computer Science, Java Version, Third Edition
Figure 8.11 If-Else with Empty Else Invitation to Computer Science, Java Version, Third Edition
Comparison Operator Symbol Example Example Result == 2==5 F < 2<5 T <= 2<=5 T > 2>5 F >= 2>=5 F != 2!=5 T Invitation to Computer Science, Java Version, Third Edition
Boolean Operator Operator Symbol Eg Eg result AND && (2<5)&&(2>7) F OR || (2<5)||(2>7) T NOT ! !(2==5) T Invitation to Computer Science, Java Version, Third Edition
public class TravelPlanner { public static void main(String[] args) { int speed = 1; double distance = 0; double time; int hours = 0; int minutes = 0; char choice = 'M'; speed = Console.readInt("Enter speed in mph:"); distance = Console.readDouble("Enter your distance in miles;"); choice = Console.readChar("Decimal hours or hours and mins"); if (choice == 'D') { time = distance/speed; System.out.print("At " + speed + "mph, it will take " + time + "hours to travel " + distance + " miles"); } else { time = distance/speed; hours = (int) time; minutes = (int)((time - hours)*60); System.out.print("At " + speed + "mph, it will take " + hours + " hours " + minutes + " minutes " + distance + " miles"); } } } Invitation to Computer Science, Java Version, Third Edition
Control Statements (continued) • Looping (iteration) • The loop body may be executed repeatedly based on the value of the Boolean condition • while statement while (Boolean condition) S1; Invitation to Computer Science, Java Version, Third Edition
Figure 8.13 While Loop Invitation to Computer Science, Java Version, Third Edition
public class TravelPlanner { public static void main(String[] args) { int speed = 1; double distance = 0; double time; int hours = 0; int minutes = 0; char choice = 'M'; char more = 'Y'; more = Console.readChar("Want to plan a trip? (Y or N):"); while (more == 'Y') { speed = Console.readInt("Enter speed in mph:"); distance = Console.readDouble("Enter your distance in miles;"); choice = Console.readChar("Decimal hours or hours and mins: "); if (choice == 'D') { time = distance / speed; System.out.print("At " + speed + " mph, it will take " + time + " hours to travel " + distance + " miles "); } else { time = distance / speed; hours = (int) time; minutes = (int) ((time - hours) * 60); System.out.print("At " + speed + " mph, it will take " + hours + " hours " + minutes + " minutes " + distance + " miles "); } } System.out.println(); more = Console.readChar("Want to plan another trip? (Y or N):"); } } Invitation to Computer Science, Java Version, Third Edition
Another Example Algorithm (Psudo code) Get value for user’s choice about continuing While user wants to continue, do the following steps Get value for pool radius Get value for choice of task If taske choice is circumference Compute pool circumference print output Else (task to aread) Compute pool area print output Get value for user’s choice about continuing Stop Invitation to Computer Science, Java Version, Third Edition
public class SportsWorld { public static void main(String[] args) { double radius = 0.0; double circumference = 0.0; double area = 0.0; char taskToDo = ' '; char more = 'Y'; more = Console.readChar("Want to process a pool? (Y or N):"); while (more == 'Y') { System.out.println(); radius = Console.readDouble("Enter the value of radius:"); System.out.println("Enter your choice of task: "); taskToDo = Console.readChar("C to circumference; A to compute area "); if (taskToDo == 'C') { circumference = 2 * Math.PI * radius; System.out.print("The circumference for a pool of radius " + radius + " is " + circumference); } else { area = Math.PI * radius * radius; System.out.print("The area for a pool of radius " + radius + " is " + area); } System.out.println(); more = Console.readChar("Want to process another trip? (Y or N):"); } } } Invitation to Computer Science, Java Version, Third Edition
Meeting Expectations • Java meets the four expectations for a high-level programming language • Expectations • The programmer need not manage the details of the movement of data items within memory nor pay any attention to where specifically they are stored Invitation to Computer Science, Java Version, Third Edition
Meeting Expectations (continued) • Expectations (continued) • The programmer can take a macroscopic view of tasks, thinking at a higher level of problem solving • Programs written in high-level languages will be portable rather than machine-specific • Programming statements in a high-level language • Will be closer to standard English • Will use standard mathematical notation Invitation to Computer Science, Java Version, Third Edition
Managing Complexity: Divide and Conquer • Divide and conquer • Divide the problem into small pieces • In a computer program • Divide the code into modules or subprograms, each of which does some part of the overall task • Empower these modules to work together to solve the original problem Invitation to Computer Science, Java Version, Third Edition
Figure 8.20 Structure Charts Invitation to Computer Science, Java Version, Third Edition
Using Methods • Method • A module of code in Java • Named using ordinary Java identifiers • By custom, name starts with a lowercase letter Invitation to Computer Science, Java Version, Third Edition
Using Methods (continued) • Two types of methods • void method • Does not pass any value back to the main method • nonvoid method • Returns a single new value back to the main method • Overall form of a method invocation method-identifier(argument list) (same class) class-identifier.method-identifier(argument list) (different class) Invitation to Computer Science, Java Version, Third Edition
public class SportsWorld { public static void main(String[] args) { double radius = 0.0; double circumference = 0.0; double area = 0.0; char taskToDo = ' '; char more = 'Y'; more = Console.readChar("Want to process a pool? (Y or N):"); while (more == 'Y') { System.out.println(); radius = Console.readDouble("Enter the value of radius:"); System.out.println("Enter your choice of task: "); taskToDo = Console.readChar("C to circumference; A to compute area "); System.out.println(); if (taskToDo == 'C') { circumference = doCircumference(radius); System.out.print("The circumference for a pool of radius " + radius + " is " + circumference); } else { area = doArea(radius); System.out.print("The area for a pool of radius " + radius + " is " + area); } System.out.println(); more = Console.readChar("Want to process another trip? (Y or N):"); } }
public static double doCircumference(double radius) { double circumference = 0; circumference = 2 * Math.PI * radius; return circumference; } public static double doArea(double radius) { double area = 0; area = Math.PI * radius * radius; return area; } public static void Prompt(double radius) { System.out.println(“radius: “ + radius); } } Invitation to Computer Science, Java Version, Third Edition
Writing Methods • General form of the method header scope-indicator return-indicator identifier(parameter list) • Arguments in Java are passed by value • A variable declared within a method can be used only within that method • Return statement • Syntax return expression; Invitation to Computer Science, Java Version, Third Edition
Figure 8.27 Some Java Terminology Invitation to Computer Science, Java Version, Third Edition
Object-Oriented Programming: What Is It? • Object-oriented programming (OOP) • A program is a simulation of some part of the world that is the domain of interest • Each object is an example drawn from a class of similar objects • Key elements of OOP • Encapsulation • A class consists of its subtask modules and its properties, and both components are “encapsulated” with the class Invitation to Computer Science, Java Version, Third Edition
What Is It? (continued) • Key elements of OOP (continued) • Inheritance • Once a class A of objects is defined, a class B of objects can be defined as a “subclass” of A • Polymorphism • One name, the name of the service to be performed, has several meanings, depending on the class of the object providing the service Invitation to Computer Science, Java Version, Third Edition
Java and OOP • Java is an object-oriented programming language • Objects: Instances of a class • Instance variables: Properties • Instance methods: Services • Static method • Can be invoked by giving the class name, a dot, the method name, and a list of arguments. Use class to call static method Invitation to Computer Science, Java Version, Third Edition
Java and OOP (continued) • Syntax to request an object to invoke a method object-identifier.method-identifier(argument list) • Calling object • The object that invokes a method Invitation to Computer Science, Java Version, Third Edition
package myproject; • public class SportsWorld { • public static void main(String[] args) { • double newRadius = 0.0; • char taskToDo = ' '; • char more = 'Y'; • Circle SwimmingPool = new Circle(); • more = Console.readChar("Do you want to prcess a new pool? (Y or N): "); • while (more == 'Y') • { • System.out.println(); • newRadius = Console.readDouble("Enter the value to the radius of the pool: "); • SwimmingPool.setRadius(newRadius); • System.out.println("Enter your choice of task."); • taskToDo = Console.readChar("C to compue ciucumference, A to compute area: "); • System.out.println(); • if (taskToDo == 'C') • System.out.println("the ciccumference for a pool radius " • + SwimmingPool.getRadius() + " is " + SwimmingPool.doCircumference()); • else • System.out.println("the area for a pool radius " • + SwimmingPool.getRadius() + " is " + SwimmingPool.doAreaY()); • more = Console.readChar("Do you want to prcess a new pool? (Y or N): "); • } • } • } Invitation to Computer Science, Java Version, Third Edition