Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++...

70
Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    231
  • download

    5

Transcript of Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++...

Page 1: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Chapter 8: Introduction to High-level Language Programming

Invitation to Computer Science,

C++ Version, Third Edition

Page 2: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 2

Objectives

In this chapter, you will learn about:

High-level languages

Introduction to C++

Data types

Statement types

Putting the pieces together

Page 3: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 3

Objectives

Managing complexity

Object-oriented programming

Graphical programming

The big picture: software engineering

Page 4: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 4

Where Do We Stand?

Early days of computing

Programmers were satisfied with assembly language

Programs written by technically oriented people

Later decades

Programmers demanded a more comfortable programming environment

Programs could be written by “nontechie” people

Page 5: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 5

High-level Languages

High-level programming languages

Called third-generation languages

Overcame deficiencies of assembly language

Programmer didn’t need to manage details of data storage or movement

Page 6: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 6

Figure 8.1

Transitions of a High-level Language Program

Page 7: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 7

Simple C++ Program/* Get a number input from the user and print it out */

#include <iostream>using std::cout;using std::cin

int main(){ // Prompt user, define a variable for num, input a value.cout << "Please input an integer: ";int num;cin >> num;

// Output resultcout << "The number you entered";cout << " is " << num << "\n";

return 0}

Page 8: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 8

Overall Form of a Typical C++ Program prologue Comment (optional) include directives (optional) using directives (optional) functions (optional) main function{

declarations (optional)main function body

}

Page 9: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 9

Introduction to C++

Some components of program in Figure 8.2

Comments

Give information to human readers of code

Include directive

The linker includes object code from a library

Using directive

Tells compiler to look in a namespace for definitions not mentioned in the program

Page 10: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 10

Data Types

Identifiers: names in a programming language

Keywords: have special meanings in C++

C++: case-sensitive, free-format language

Data items can be constants or variables

Page 11: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 11

Data Types (continued)

A declaration of a data item tells

Whether the item is a constant or a variable

The identifier used to name the item

The data type of the item

Page 12: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 12

Data Types (continued)

Some of C++ standard data types

int a positive or negative integer

doublea real number( double precision )

float a real number ( single precision )

char a character ( single keyboard character like ‘t’

Page 13: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 13

Data Types(continued)Data Declarations

double radius; Allocates space for a type double data item Associates the name radius with this item Associates a set of valid operations with this item

double circumference = 34.5; Same as above, plus? Gives it an initial value (initializes it)

See sample programs

Page 14: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 14

Data Types(continued)

Data Declarations double radius, circumference, area;

Declares three separate data items of type double

const double PI = 3.1416; Allocates space for type double data item Associates the name PI with this item Associates a set of valid operations with this item Initializes the item with the value 3.1416 Cannot be changed. It is a constant.

Page 15: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 15

Statement Types

Input/output statement

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

Page 16: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 16

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 usual sequential flow

Page 17: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 17

Input/Output Statements

Example Pseudocode

Get value for Radius C++

cin >> Radius;

cin: input stream Code for extraction operator (>>) and the

definition of the cin stream come from the iostream library and std namespace

Page 18: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 18

/*circle01.cpp

Gets the radius of a circle*/

#include <iostream>using std::cin;using std::cout;

int main() { double radius = 0.0;

cout << "Please enter the radius " << '\n';

cin >> radius;

return 0;}

i/o example #1

cout – prompt user for data

<< (insertion operator)

cin – store data in a variable

>> (extraction operator)

Page 19: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 19

Input/Output Statements (continued) Example

Pseudocode Print the value of Circumference

C++ cout << Circumference;

cout: output stream Code for the insertion operator (<<) and the

definition of the cout stream come from the iostream library and std namespace

Page 20: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 20

/*circle02.cpp

Gets the radius of a circle*/

#include <iostream>using std::cin;using std::cout;

int main() { double radius = 0.0;

cout << "Please enter the radius " << '\n';

cin >> radius;

cout << “The radius you entered is “ << radius;

return 0;}

i/o example #2

cout – prompt user for data

<< (insertion operator)

cin – store data in a variable

>> (extraction operator)

cout – output data entered

Page 21: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 21

The Assignment Statement

General form Pseudocode

Set the value of “variable” to “arithmetic expression” C++

variable = expression;

1. Expression on the right is evaluated

2. The result is written into the memory location named on the left

Page 22: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 22

Expressions in C++

Operator Precedence Associativity

( ) 1 na

+, - , ++, -- , ! ( unary ) 2 L->R (+a, -a, ++a, --a, !a)R->L (a++, a--)

*, /, % 3 L->R

+, - 4 L->R

<, >, <=, >= 5 L->R

==, != 6 L->R

&& 7 L->R

|| 8 L->R

= 9 R->L

An expression in C++ is a sequence of operators and operands which adhere to the C++ syntax rules. The operators are grouped according to an order of precedence, and associativity

Page 23: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 23

Expressions in C++

Example 1: a = b + c * d;

Example 2: a = b + c * d – e;

Example 3: a = (b + c) * (d-e);

Example 4: a = b / c;

Example 5: a = b % c;

Example 6: a = b = c – d;

Other: +=, -=, *= , /=, %= ???

Assume b = 5, c = 3, d = 4, e = 2

Page 24: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 24

/*circle03.cpp Gets the radius of a circle, calculates

it’s circumference and prints out the result*/

#include <iostream>using std::cin;using std::cout;

int main() { const double PI = 3.14159; double radius = 0.0, circumference = 0.0;

cout << "Please enter the radius " << '\n'; cin >> radius; circumference = 2 * PI * radius;

cout << “The circumference is: “ ; cout << circumference << “.\n”;

return 0;}

i/o example #3

cout – prompt user for data

<< (insertion operator)

cin – store data in a variable

>> (extraction operator)

cout – output data entered

Page 25: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 25

Control Statements

Types of control mechanisms Sequential

Instructions are executed in order

Conditional Choice of which instructions to execute next

depends on some condition

Looping Group of instructions may be executed many times

Page 26: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 26

Control Statements (continued) Default mode of execution: sequential

Conditional flow of control

Evaluation of a Boolean condition (also called a Boolean expression)

Which programming statement to execute next is decided based on the value of the Boolean condition (true or false)

Page 27: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 27

Control Statements (continued) Conditional flow of control (continued)

if-else statementif (Boolean condition)

S1;

else

S2; if variation of the if-else statement

if (Boolean condition)

S1;

Page 28: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 28

Figure 8.12

Conditional Flow of Control

(If-Else)

Page 29: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 29

Figure 8.13

If-Else with Empty Else

Page 30: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 30

Page 31: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 31

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;

Page 32: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 32

Figure 8.14

While Loop

Page 33: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 33

Data Types Revisited

How to declare a data item which is a group of integers, doubles, chars…

int Hits[12]; // web page hits Allocates space for group of 12 integers Associates the name Hits with this group of integers Associates a set of valid operations with Hits

Each integer in Hits has it’s own ‘name’ The first integer is Hits[0]… the last is Hits[11]

Page 34: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 34

Data Types Revisited

An array Groups together a collection of memory locations,

all storing data of the same type

Figure 8.6

A 12-Element Array Hits

Page 35: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 35

Data Types Revisited(continued)

Declaring a group of arrays ( i.e. a table )

double WaterReadings [2] [3] Allocates space for two arrays of three real numbers

6 total numbers Associates the name WaterReadings with this ‘table’ Associates set of valid operations with this ‘table’

Each element in WaterReadings has it’s own name The number at row 1, column 2 is WaterReadings[1][2] The number at row 0, column 0 is WaterReadings[0][0]

Page 36: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 36

Data Types Revisited(continued) Initializing an array

Int Hits[12] = {3,6,7,22,25,12,34, 9, 3,17,15,2}; Int Hits[ ] = {3,6,7,22,25,12,34, 9, 3,17,15,2};

Same as above

Int Hits[12] = {3,6,7,22}; Initializes first 4 as specified Last 12 get 0

double WaterReadings [2][3] = { {14.3, 15.2, 16.4}, {13.9, 14.2, 12.7} };

int myValue[2][3] = { {0}, {0} }; // ?

Page 37: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 37

Intro to C++

Let’s look at some programs using arrays

Page 38: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 38

Putting the Pieces Together

At this point, we can: Perform input and output

Assign values to variables

Direct the flow of control using conditional statements or looping

For a complete program, we need to: Assemble the statements in the correct order

Fill in the missing pieces

Page 39: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 39

High-level Languages Revisited Expectations of a high-level language program

Programmer can take a macroscopic view of tasks; “primitive operations” can be larger

Programs will be portable

Code will be closer to standard English and use standard mathematical notation

Page 40: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 40

High-level Languages Revisited Consider equation: ax2 + bx + c = 0 The roots are x = ( –b sqrt(b2 – 4ac) ) / 2a Using a high level language we could write:

discrim = b*b – 4*a*c;

root1 = (-b + sqrt(discrim)) / (2*a);

root2 = (-b – sqrt(discrim)) / (2*a);

This closely resembles the way we look at the problemmathematically

Page 41: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 41

Virtual Data Storage

Programs dealing with ‘circles’ might deal with: Circle as geometric shape Circular garden, pool, tile…

Properties of circle Circumference, radius, diameter, area

Relationships among properties Circumference = d = 2 r Area = r2

Page 42: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 42

Virtual Data Storage (continued) Possible Data Items For ‘Circle’ Programs

Radius, Circumference, Diameter, Area and PI

To deal with actual problems what kind of data items should these be?

Numbers with fractional parts double (in C++)

PI never changes const (in C++)

Page 43: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 43

Virtual Data Storage (continued) What if we want to deal with a group of things

that are all the same kind? For Example: a list numbers

Monthly sales figures ( Jan thru Dec ) Midterm exam grades ( 35 of them ) Electoral college votes by state ( 50 of them ) Website hits per month ( Jan thru Dec )

We can declare a group of like data items.

Page 44: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 44

Virtual Data Storage (continued) How to represent a table of the same kind of data items?

Site 1 Site 2 Site 3

FinalReading

14.3 15.2 16.4

InitialReading

13.9 14.2 12.7

Group of arrays?

Page 45: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 45

int Hits1 [12]; int Hits2 [12] = {0}; int Hits3 [12] = {0,1,2,3}; int Hits4 [12] = {0,1,2,3,4,5,6,7,8,9,10,11};

double WaterReadings1 [2][3]; double WaterReadings2 [2][3] = {{0}}; double WaterReadings3 [2][3] = {{14.3,15.2,16.4}}; double WaterReadings4 [2][3] = {{14.3,15.2,16.4},{13.9,14.2,12.7}};

Virtual Data Storage (continued)

Assume these array declarations in C++

Page 46: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 46

Hits1 - elements 0 - 3

-1219546216 134521764 -1073757288 134514065

Hits2 - elements 0 - 11

0 0 0 0 0 0 0 0 0 0 0 0

Hits3 - elements 0 - 11

0 1 2 3 0 0 0 0 0 0 0 0

Hits4 - elements 0 - 11

0 1 2 3 4 5 6 7 8 9 10 11

Virtual Data Storage (continued)

Page 47: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 47

Virtual Data Storage (continued)WaterReadings1 3.76654e-313 -5.74686e-42 -5.74962e-42 -5.64181e-42 -3.24569e-42 4.94066e-324

WaterReadings2 0 0 0 0 0 0

WaterReadings3 14.3 15.2 16.4 0 0 0

WaterReadings4 14.3 15.2 16.4 13.9 14.2 12.7

Page 48: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 48

Meeting Expectations

C++ meets the four expectations for a high-level programming language

Expectations

Programmer need not manage details of the movement of data items within memory, nor pay any attention to where they are stored

Page 49: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 49

Meeting Expectations (continued) Expectations (continued)

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

Page 50: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 50

Managing Complexity: Divide and Conquer Divide and conquer

To solve a problem, divide it into smaller pieces

In a computer program

Divide the code into modules (subprograms), each doing a part of the overall task

Empower these modules to work together to solve the original problem

Page 51: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 51

Figure 8.19

A Structure Chart

Figure 8.20

A More Detailed Structure Chart

Page 52: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 52

Using Functions

Function

A module of code in C++

Named using ordinary C++ identifiers

Subtask functions: optional

The main function: mandatory

Page 53: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 53

Using Functions (continued)

To invoke a subtask function, the main function gives

Name of the function

Argument list for the function

Argument list: list of identifiers for variables that concern that function

Any function can have its own constant and variable declarations

Page 54: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 54

Writing Functions

A function header consists of:

Return indicator: classifies a function as a void or a nonvoid function

Function identifier

Parameter list

By default, arguments in C++ are passed by value

Page 55: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 55

Figure 8.24

The Outline for a C++ Function

Page 56: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 56

Figure 8.29

Some C++ Terminology

Page 57: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 57

Object-Oriented Programming 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

Both are “encapsulated” in the class

Page 58: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 58

Object-Oriented Programming (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

Page 59: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 59

What Have We Gained?

Two major advantages of OOP

Software reuse

A more natural “world view”

Page 60: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 60

Graphical Programming: Graphics Primitives Bitmapped display

The screen is made up of thousands of pixels, laid out in a two-dimensional grid

Frame buffer

Memory that stores the actual screen image

The terminal hardware displays on the screen the frame buffer value of every individual pixel

Page 61: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 61

Figure 8.34

Pixel Numbering System in a Bitmapped Display

Page 62: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 62

Graphics Primitives (continued) Graphics library

Software containing a collection of functions that control the setting and clearing of pixels

Virtually all modern programming languages come with a graphics library

Page 63: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 63

The Big Picture: Software Engineering Software life cycle

Overall sequence of steps needed to complete a large-scale software project

Implementation represents a relatively small part of the cycle

Page 64: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 64

Figure 8.37

Steps in the Software Development Life Cycle

Page 65: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 65

Scaling Up

Programs written by students No longer than a few hundred lines

Real-world programs 2, 3, or 4 orders of magnitude larger

Large-scale software development Extensive planning and design needed

A team of programmers needed

“Software engineering”

Page 66: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 66

The Software Life Cycle

Each step in the software development life cycle

Has a specific purpose and activities

Should result in a written document

The feasibility study

Problem specification

Program design

Page 67: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 67

The Software Life Cycle (continued) Algorithm selection or development, and

analysis

Coding

Debugging

Testing, verification, and benchmarking

Documentation

Maintenance

Page 68: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 68

Modern Environments

Integrated Development Environment (IDE) speeds development by providing

A text editor

A file manager

A compiler

A linker and loader

Tools for debugging

Page 69: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 69

Summary

In a high-level language, the programmer:

Need not manage storage

Can think about the problem at a higher level

Can use more powerful and more natural-language-like program instructions

Can write a much more portable program

Page 70: Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.

Invitation to Computer Science, C++ Version, Third Edition 70

Summary

C++ is an object-oriented, high-level programming language

if-else statement creates a conditional flow of control

while loop can be used for iteration

Software life cycle: overall sequence of steps needed to complete a large-scale software project