700 likes | 712 Views
Chapter 8: Introduction to High-level Language Programming. Invitation to Computer Science, C++ Version, Third Edition. Objectives. In this chapter, you will learn about: High-level languages Introduction to C++ Data types Statement types Putting the pieces together. Objectives.
E N D
Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition
Objectives In this chapter, you will learn about: • High-level languages • Introduction to C++ • Data types • Statement types • Putting the pieces together Invitation to Computer Science, C++ Version, Third Edition
Objectives • Managing complexity • Object-oriented programming • Graphical programming • The big picture: software engineering Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition
Figure 8.1 Transitions of a High-level Language Program Invitation to Computer Science, C++ Version, Third Edition
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 result cout << "The number you entered"; cout << " is " << num << "\n"; return 0 } Invitation to Computer Science, C++ Version, Third Edition
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} Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition
Data Types (continued) Some of C++ standard data types • int a positive or negative integer • double a real number( double precision ) • float a real number ( single precision ) • char a character ( single keyboard character like ‘t’ Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition
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. Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ 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 usual sequential flow Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition
/* 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) Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition
/* 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 Invitation to Computer Science, C++ Version, Third Edition
The Assignment Statement • General form • Pseudocode Set the value of “variable” to “arithmetic expression” • C++ variable = expression; • Expression on the right is evaluated • The result is written into the memory location named on the left Invitation to Computer Science, C++ Version, Third Edition
Expressions in C++ 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 Invitation to Computer Science, C++ Version, Third Edition
Expressions in C++ Assume b = 5, c = 3, d = 4, e = 2 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: +=, -=, *= , /=, %= ??? Invitation to Computer Science, C++ Version, Third Edition
/* circle03.cpp Gets the radius of a circle, calculatesit’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 Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition
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) Invitation to Computer Science, C++ 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; Invitation to Computer Science, C++ Version, Third Edition
Figure 8.12 Conditional Flow of Control (If-Else) Invitation to Computer Science, C++ Version, Third Edition
Figure 8.13 If-Else with Empty Else Invitation to Computer Science, C++ 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, C++ Version, Third Edition
Figure 8.14 While Loop Invitation to Computer Science, C++ Version, Third Edition
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] Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition
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] Invitation to Computer Science, C++ Version, Third Edition
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} }; // ? Invitation to Computer Science, C++ Version, Third Edition
Intro to C++ • Let’s look at some programs using arrays Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition
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++) Invitation to Computer Science, C++ Version, Third Edition
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. Invitation to Computer Science, C++ Version, Third Edition
Virtual Data Storage (continued) • How to represent a table of the same kind of data items? • Group of arrays? Invitation to Computer Science, C++ Version, Third Edition
Virtual Data Storage (continued) Assume these array declarations in C++ 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}}; Invitation to Computer Science, C++ Version, Third Edition
Virtual Data Storage (continued) 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 Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition
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 Invitation to Computer Science, C++ Version, Third Edition