1 / 70

Chapter 8: Introduction to High-level Language Programming

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.

ottoe
Download Presentation

Chapter 8: Introduction to High-level Language Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 8: Introduction to High-level Language Programming 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 Invitation to Computer Science, C++ Version, Third Edition

  3. Objectives • Managing complexity • Object-oriented programming • Graphical programming • The big picture: software engineering 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 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 Invitation to Computer Science, C++ Version, Third Edition

  6. Figure 8.1 Transitions of a High-level Language Program 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 result cout << "The number you entered"; cout << " is " << num << "\n"; return 0 } 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} 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 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 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 Invitation to Computer Science, C++ Version, Third Edition

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

  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 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. 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 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 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 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) 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 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 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; • 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

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

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

  24. /* 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

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

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

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

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

  32. Figure 8.14 While Loop 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] 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 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] 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} }; // ? Invitation to Computer Science, C++ Version, Third Edition

  37. Intro to C++ • Let’s look at some programs using arrays 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 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 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 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 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++) 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. 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? • Group of arrays? Invitation to Computer Science, C++ Version, Third Edition

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

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

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

More Related