Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition."— Presentation transcript:

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

2 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

3 Invitation to Computer Science, C++ Version, Third Edition 3 Objectives Managing complexity Object-oriented programming Graphical programming The big picture: software engineering

4 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

5 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

6 Invitation to Computer Science, C++ Version, Third Edition 6 Figure 8.1 Transitions of a High-level Language Program

7 Invitation to Computer Science, C++ Version, Third Edition 7 Simple C++ Program /* Get a number input from the user and print it out */ #include 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 result cout << "The number you entered"; cout << " is " << num << "\n"; return 0 }

8 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 }

9 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

10 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

11 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

12 Invitation to Computer Science, C++ Version, Third Edition 12 Data Types (continued) Some of C++ standard data types inta positive or negative integer doublea real number( double precision ) floata real number ( single precision ) chara character ( single keyboard character like ‘t’

13 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

14 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.

15 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

16 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

17 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

18 Invitation to Computer Science, C++ Version, Third Edition 18 /* circle01.cpp Gets the radius of a circle */ #include 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)

19 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

20 Invitation to Computer Science, C++ Version, Third Edition 20 /* circle02.cpp Gets the radius of a circle */ #include 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

21 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

22 Invitation to Computer Science, C++ Version, Third Edition 22 Expressions in C++ OperatorPrecedenceAssociativity ( )1na +, -, ++, --, ! ( unary )2L->R (+a, -a, ++a, --a, !a) R->L (a++, a--) *, /, %3L->R +, -4L->R, =5L->R ==, !=6L->R &&7L->R ||8L->R =9R->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

23 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

24 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 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

25 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

26 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)

27 Invitation to Computer Science, C++ Version, Third Edition 27 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;

28 Invitation to Computer Science, C++ Version, Third Edition 28 Figure 8.12 Conditional Flow of Control (If-Else)

29 Invitation to Computer Science, C++ Version, Third Edition 29 Figure 8.13 If-Else with Empty Else

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

31 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;

32 Invitation to Computer Science, C++ Version, Third Edition 32 Figure 8.14 While Loop

33 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]

34 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

35 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]

36 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} }; // ?

37 Invitation to Computer Science, C++ Version, Third Edition 37 Intro to C++ Let’s look at some programs using arrays

38 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

39 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

40 Invitation to Computer Science, C++ Version, Third Edition 40 High-level Languages Revisited Consider equation: ax 2 + bx + c = 0 The roots are x = ( –b  sqrt(b 2 – 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 problem mathematically

41 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 =   r 2

42 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++)

43 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.

44 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 1Site 2Site 3 Final Reading 14.315.216.4 Initial Reading 13.914.212.7 Group of arrays?

45 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++

46 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)

47 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 WaterReadings3 14.3 15.2 16.4 0 0 0 WaterReadings4 14.3 15.2 16.4 13.9 14.2 12.7

48 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

49 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

50 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

51 Invitation to Computer Science, C++ Version, Third Edition 51 Figure 8.19 A Structure Chart Figure 8.20 A More Detailed Structure Chart

52 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

53 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

54 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

55 Invitation to Computer Science, C++ Version, Third Edition 55 Figure 8.24 The Outline for a C++ Function

56 Invitation to Computer Science, C++ Version, Third Edition 56 Figure 8.29 Some C++ Terminology

57 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

58 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

59 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”

60 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

61 Invitation to Computer Science, C++ Version, Third Edition 61 Figure 8.34 Pixel Numbering System in a Bitmapped Display

62 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

63 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

64 Invitation to Computer Science, C++ Version, Third Edition 64 Figure 8.37 Steps in the Software Development Life Cycle

65 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”

66 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

67 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

68 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

69 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

70 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


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

Similar presentations


Ads by Google