500 likes | 512 Views
This chapter provides an introduction to high-level programming languages, specifically Java and C++. Learn about variable types and control structures in these languages and gain a strong foundation for programming.
E N D
Connecting with Computer Science, 2e Chapter 15 Programming II
Objectives • In this chapter you will: • Gain an understanding of the basics of high-level programming languages, using Java and C++ as examples • Learn about variable types in Java and C++ and how they’re used • Explore the different control structures in Java and C++ Connecting with Computer Science, 2e
Why You Need to Know About... Programming Languages • Time, money, and effort go into learning computer programming languages • The only real way to learn is practice, practice, and more practice • After reading this chapter, you must sit down at the computer and practice the concepts frequently Connecting with Computer Science, 2e
Java and C++ Programming Languages • Criteria for choosing a programming language: • Tasks to perform • Programmer’s skill level • Program’s lifetime • Software complexity being designed • C++ and Java characteristics • Support an object-oriented environment • Usable on different operating systems • Provide strong foundation for learning how to program • Provide a springboard to other languages Connecting with Computer Science, 2e
Learning to Cook with Java and C++ • Four ingredients to write programs: • Variables • Operators • Control structures • Objects • Java and C++ high-level programming languages provide computer interaction • Without speaking in binary 1s and 0s Connecting with Computer Science, 2e
Learning to Cook with Java and C++ (cont’d.) • Java history: • Designed for Internet use • Introduced by Sun Microsystems in 1995 • Intended for small tasks or small applications (i.e., “applets”) • No need to write entire programs • Developed into full-blown programming language • Language of choice to develop communication devices and media applications (e.g., PDAs, cell phones, Internet, and networks) Connecting with Computer Science, 2e
Learning to Cook with Java and C++ (cont’d.) • Java’s advantages: • Uses familiar syntax • Very portable • Powerful and popular • C++ history: • Created by Bjarne Stroustrup at Bell Labs in 1983 • Based on C with added features • Object-oriented programming language • Offers simplified memory management and access to low-level memory Connecting with Computer Science, 2e
Variables • Have specific effects on a program’s outcome • Must have an identifier or name prior to use • Declaration: statement associating an identifier with a variable, an action, or another programming element • When declared, you specify attributes: • Identifier (name) • Type (character, numeric, Boolean, and so forth) • Content • Example: int numTicketsBought; Connecting with Computer Science, 2e
Variable Naming Conventions • Rules for declaring a variable in Java or C++ • Use only letters, underscores, numbers • Begin name with a letter • Avoid Java and C++ reserved words • Reserved word • Keyword with a specific instructional meaning • Name cannot be used for a variable • Programming language already using it as an instruction Connecting with Computer Science, 2e
Variable Types • Java and C++ are strongly typed • Must declare type of data a variable can hold • Major Java data types: • Six number-related data types • One character related • One for true and false (Boolean) • Major C++ data types • Adds a type for signed or unsigned numbers • Syntax for declaring a variable: type variableName; Connecting with Computer Science, 2e
Integer Data Types • Used for positive and negative whole numbers • Java example • int studentTickets; • short studentFees; • long studentTuition; • byte studentGrade; • C++ example • int studentTickets; • short int studentFees; • unsigned int totalPoints; Connecting with Computer Science, 2e
Integer Data Types (cont’d.) Table 15-1, Java integer data types Table 15-2, C++ integer data types Connecting with Computer Science, 2e
Floating-Point Data Types • Used for positive and negative numbers containing decimals • Examples of declaring variables in both languages: • float salary; • double billGatesSalary; Connecting with Computer Science, 2e
Floating-Point Data Types (cont’d.) Table 15-3, Java floating-point data types Table 15-4, C++ floating-point data types Connecting with Computer Science, 2e
Character Data Type • Used for variables holding only one character • Example: char studentMiddleInit; Table 15-5, Java character data type Table 15-6, C++ character data types Connecting with Computer Science, 2e
Boolean Data Type • Used for only one of two values: true or false • Java and C++ • Cannot associate a number with a Boolean value • Rely on “true” or “false” • Java Boolean variable declaration: • boolean deserveRaise; • C++ Boolean variable declaration: • bool deserveRaise; Connecting with Computer Science, 2e
Boolean Data Type (cont’d.) Table 15-8, C++ Boolean data type Table 15-7, Java Boolean data type Connecting with Computer Science, 2e
String Data Type • Stores a piece of information • Not a number • Contains more than one character • Declared using double quotes • Uses the String or string keywords • Examples of an empty string: • String sName; //Java String • string sName; //C++ string Connecting with Computer Science, 2e
String Data Type (cont’d.) • Examples of a string with contents assigned: • String sName = "Joe Blow"; //Java • string sName = "Joe Blow"; //C++ • Concatenation operator • The (+) operator • Process of combining or joining strings into one value • See example code on pages 517–518 Connecting with Computer Science, 2e
Hungarian Notation • Variable-naming method • Adds a letter at the beginning of a variable name • Indicates data type Table 15-9, Hungarian notation examples Connecting with Computer Science, 2e
Variable Content • When variable is declared: • Use an equal sign (=) to assign a value immediately • Variable initialization: supplying value when variable is first declared • Do not always have to initialize a variable • Programming language may assign a default value • Example: • int iStudentCount; • iStudentCount = 456; • Alternative: • int iStudentCount = 456; Connecting with Computer Science, 2e
Variable Content (cont’d.) • Assigning a value to a character variable • Enclose in single quotes • Example: • char cMiddleInit; • cMiddleInit = 'S'; • Alternative: • char cMiddleInit = 'S'; Connecting with Computer Science, 2e
Variable Content (cont’d.) • Assigning a value to a string variable • Enclose in double quotes • Example: • String sMiddleName = "S"; //Java • string sMiddleName = "S"; //C++ Connecting with Computer Science, 2e
Java and C++ Control Structuresand Program Flow • Four types of control structures: • Invocation • Top down • Selection • Repetition • Correct use allows for a(n): • Readable program • Easy to maintain program Connecting with Computer Science, 2e
Invocation • The main() function block of code • Tells operating system the starting point • Function: block of code performing a task • Can return a value • Example: Save_Ferris.java file • public class Save_Ferris • { • public static void main(String[] args) • { • System.out.println("I could have been the Walrus!"); • } • } Connecting with Computer Science, 2e
Invocation (cont’d.) • Parameters: received value assigned to a variable • Used by a block of source code • Passing parameters as values • Enter them on same line • After Java program name • Example: C:\>hello 10 • C++ has a main() function in every program • Software engineers often include other files of source code to perform common task Connecting with Computer Science, 2e
Invocation (cont’d.) • C++ allows words inside parentheses • Indicates parameters receiving data when the program runs • Parameters allow users to pass data to main() and then use the data in the program • Examples: • int argc, char *argv[ ] • //C++ main receiving parameters • int main(int argc, char *argv[]) Connecting with Computer Science, 2e
Top Down (or Sequence) • Used when program statements executed in sequential order • Starting at the top and working down to the bottom • See example code on pages 522 and 523 Connecting with Computer Science, 2e
Blocks of Code • Sequence of several statements enclosed with opening and closing braces • Indicates a relation • Makes program more readable and accurate • Braces are used most often when working with invocation, selection, repetition control structures • Example: Connecting with Computer Science, 2e
Java Output Data • Java System.out statement sends data to output device • Insertion point: where the cursor is placed • Two methods to output data: • System.out.print(expression); • System.out.println(expression); Connecting with Computer Science, 2e
Java Output Data (cont’d.) Table 15-10 Java output statements Connecting with Computer Science, 2e
C++ Output Data • C++ cout statement • Sends data to output device • Uses redirection symbols (<<) to direct output • Example: • cout << "15 + 10 = " << iResult <<endl; • Instructs compiler to direct anything following the << symbols to the defined output device Connecting with Computer Science, 2e
C++ Output Data (cont’d.) Table 15-11, Sample C++ output statements Connecting with Computer Science, 2e
Input Data • Java System.in • Method to retrieve data from the input device • Must create a new variable from the Scanner class • Reads characters from input stream (keyboard) • Places them into another variable acting as a memory buffer for storing the entered string • Input assigned to a string variable declared by making a call to the next() method • C++ cin • Used to retrieve data from input device Connecting with Computer Science, 2e
Back to Control Structures • Java and C++ invocation • Implemented by calling functions and methods • Function: performs a task, can return a value • Method: function belonging to a class • Java equals() method • System passes control to code associated with equals() • Carries out the statements • Makes the comparison • Returns a Boolean value Connecting with Computer Science, 2e
Selection • First write algorithm with pseudocode • Ensures program meets language requirements • Guide or template for writing source code • Recall Chapter 14 algorithm converting Celsius to Fahrenheit temperatures and vice versa • See corresponding code on pages 531–533 Connecting with Computer Science, 2e
if and if-else Statements • Used to weigh results of decision making • Result exists for every choice • Syntax: • if (condition) • { • one or more statements; • } Connecting with Computer Science, 2e
if and if-else Statements (cont’d.) • Condition • Expression returning true or false value • May add an else part to the control structure • Performs a function if the if control structure evaluates to a false value • Syntax: • if (condition) • { • one or more statements; • } • else • { • one or more statements; • } Connecting with Computer Science, 2e
if-else-if Statement • Corrects problem in if-else statement • User enters incorrect input value • Allows certain blocks of code to execute • Depends on variable’s state in the program while it is running • Easy to use • Makes program more flexible Connecting with Computer Science, 2e
switch Statement • Nesting • Putting one control structure inside another • Decreases code’s readability • switch statement: • Allows testing of many options • Groups blocks of code to be executed depending on results • Test expression’s value • Jump to some location in the switch statement • Expression must be a scalar data type Connecting with Computer Science, 2e
Copy editor: Syntax alignment OK as is? (different in PDF) switch Statement (cont’d.) • break statement at end of each case • Informs system to quit processing case statements • Sends control to end of the switch statement • Syntax: • switch (expression) • { • case value_1 : • statement_1; • break; • case value_2 : • statement_2; • break; • case value_3 : • statement_3; • break; • default : • statement_4; • break; • } Connecting with Computer Science, 2e
Repetition (Looping) • Allows repeating statements multiple times • No statement retyping • Three statements: • for • while • do-while Connecting with Computer Science, 2e
for Statement • Used to repeat a group of statements a known number of times • Variable declaration • Declare and initialize a variable • Declare counter variable • Example: int iCount • Syntax: for (variable declaration; expression; increment/decrement) { statement(s); } Connecting with Computer Science, 2e
while Statement • Processes a group of statements a certain number of times • Like the for loop • Precondition loop • Loop checks the expression before any source code in the loop is executed • Might never be executed • Difference between for and while loops • while statement doesn’t provide a specified area for updating the counter Connecting with Computer Science, 2e
while Statement (cont’d.) • Syntax: while (expression) { statements; } Connecting with Computer Science, 2e
do-while Statement • Used when looping is based on an expression and statements are repeated before the expression is evaluated • Mainly when processing a table • Postcondition loop • Executes at least one time before the expression is evaluated • Syntax: do { statement(s); } while (expression); Connecting with Computer Science, 2e
One Last Thought • Most programming languages use the four major control structures discussed in this chapter • Organizations select a programming language based on application’s needs • Programmers may need to update skills • C++ and Java is a good start • Must practice to become proficient • Software engineers’ responsibility: write easy-to-read and easy-to-maintain structured programs Connecting with Computer Science, 2e
Summary • Java: high-level programming language designed for the Internet • C++: high-level programming language based on the C language • Incorporates object-oriented principles • Variables: • Integer (int), character (char), floating point, Boolean, and string • “Initializing a variable”: assigning a value to a variable Connecting with Computer Science, 2e
Summary (cont’d.) • Four high-level programming language control structures: • Invocation, top down, selection, repetition • Java uses methods for the invocation • C++ uses methods and functions • Output data: • Java uses the System.out statement • C++ use the cout statement with the << redirection symbols Connecting with Computer Science, 2e
Summary (cont’d.) • Input data: • Java Scanner class gathers input • C++ uses the cin statement • Selection control structures: • C++ and Java use if, if-else, if-else-if, switch • switch statement is used only with scalar variables • Repetition: • C++ and Java use for, while, do-while loops • Practice, practice, and more practice Connecting with Computer Science, 2e