An introduction to computer science
Subtitle: an algorithmic approach
By: Jean-Paul Tremblay, John M. DeDourek, Richard B. Bunt
Contributors: Dedourek, John M.; Bunt, Richard B., 1946-
Edition: Pascal ed.
Series: McGraw-Hill computer science series
Publisher: McGraw-Hill
Published: 1989
Place of publication: New York
Language: eng
Number of pages: 961
Subjects: Computer programming.; Computer algorithms.; Data structures (Computer science); Pascal (Computer program language)
Notes: Includes bibliographies and index.
Table of contents: title: Preface
pagenum: xix; label: Chapter 1
title: Computers and Solving Problems
pagenum: 1; label: 1-1
title: Introduction
pagenum: 1; label: 1-2
title: Computers and Computer Systems
pagenum: 3; label: 1-3
title: Components of a Typical Computer
pagenum: 6; label: 1-4
title: Using a Computer
pagenum: 14; title: Chapter Summary
pagenum: 16; title: Key Terms
pagenum: 16; title: Chapter Exercises
pagenum: 17; label: Chapter 2
title: Algorithms and Programs
pagenum: 18; label: 2-1
title: Introduction
pagenum: 18; label: 2-2
title: Expressing Algorithms
pagenum: 20; label: 2-2.1
title: Narrative Description
pagenum: 21; label: 2-2.2
title: The Flowchart
pagenum: 21; label: 2-2.3
title: Programming Languages - Pascal
pagenum: 22; label: 2-2.4
title: An Algorithmic Notation
pagenum: 24; label: 2-3
title: A Solution Methodology
pagenum: 25; title: Exercises 2-3
pagenum: 28; label: 2-4
title: The Implementation Phase: An Introduction to the Programming Language Pascal
pagenum: 29; title: Exercises 2-4
pagenum: 46; label: 2-5
title: Data, Data Types, and Primitive Operations
pagenum: 46; label: 2-5.1
title: Integer Data
pagenum: 47; label: 2-5.2
title: Real Data
pagenum: 47; label: 2-5.3
title: Boolean (Logical) Data
pagenum: 50; label: 2-5.4
title: Character Data
pagenum: 50; label: 2-5.5
title: Syntax Rules
pagenum: 51; label: 2-5.6
title: Operations
pagenum: 52; title: Exercises 2-5
pagenum: 56; label: 2-6
title: Variables and Expressions
pagenum: 56; label: 2-6.1
title: The Assignment Operation
pagenum: 62; label: 2-6.2
title: Type Conversions
pagenum: 63; label: 2-6.3
title: Expressions
pagenum: 63; label: 2-6.4
title: Modifying a Stored Value
pagenum: 65; label: 2-6.5
title: Precedence of Operators
pagenum: 66; label: 2-6.6
title: Evaluation of Expressions
pagenum: 68; label: 2-6.7
title: Built-in Functions
pagenum: 70; label: 2-6.8
title: Input and Output
pagenum: 72; title: Exercises 2-6
pagenum: 79; label: 2-7
title: A Complete Pascal Program
pagenum: 80; title: Exercises 2-7
pagenum: 83; label: 2-8
title: More on Input and Output
pagenum: 84; label: 2-9
title: Applications
pagenum: 88; label: 2-9.1
title: Reporting Student Grades
pagenum: 88; label: 2-9.2
title: Gauging Inflation
pagenum: 91; label: 2-9.3
title: Parimutuel Payoffs
pagenum: 94; title: Chapter Summary
pagenum: 97; title: Key Terms
pagenum: 97; title: Chapter Exercises
pagenum: 98; title: Selected References
pagenum: 100; label: Chapter 3
title: Decision Structures
pagenum: 101; label: 3-1
title: Motivation
pagenum: 101; label: 3-2
title: The Selection from Alternative Actions
pagenum: 102; label: 3-2.1
title: The If Statement
pagenum: 103; label: 3-2.2
title: Nested Ifs
pagenum: 107; label: 3-2.3
title: Summary
pagenum: 114; title: Exercises 3-2
pagenum: 114; label: 3-3
title: Looping
pagenum: 116; label: 3-3.1
title: Conditional Loops
pagenum: 117; label: 3-3.2
title: Loop-controlled Input
pagenum: 120; label: 3-3.3
title: Counted Loops
pagenum: 132; label: 3-3.4
title: Nested Loops
pagenum: 134; label: 3-3.5
title: Bottom-Tested Conditional Loops
pagenum: 137; label: 3-3.6
title: Summary
pagenum: 138; title: Exercises 3-3
pagenum: 139; label: 3-4
title: Use of Compound Conditions
pagenum: 141; title: Exercises 3-4
pagenum: 145; label: 3-5
title: Case Statement
pagenum: 147; title: Exercises 3-5
pagenum: 151; label: 3-6
title: Defining New Types of Values - Enumerations and Subranges
pagenum: 152; label: 3-6.1
title: Enumerated Types
pagenum: 152; label: 3-6.2
title: Subrange Types
pagenum: 159; label: 3-6.3
title: Summary
pagenum: 161; label: 3-7
title: Constant Declaration
pagenum: 162; label: 3-8
title: Applications
pagenum: 163; label: 3-8.1
title: Bookstore Orders
pagenum: 163; label: 3-8.2
title: Mortgage Payments
pagenum: 167; label: 3-8.3
title: Check Reconciliation
pagenum: 172; title: Chapter Summary
pagenum: 177; title: Key Terms
pagenum: 178; title: Chapter Exercises
pagenum: 178; label: Chapter 4
title: Subprograms
pagenum: 183; label: 4-1
title: Motivation
pagenum: 183; label: 4-2
title: Functions
pagenum: 184; title: Exercises 4-2
pagenum: 194; label: 4-3
title: Procedures
pagenum: 196; title: Exercises 4-3
pagenum: 202; label: 4-4
title: Argument-Parameter Correspondence
pagenum: 203; title: Exercises 4-4
pagenum: 213; label: 4-5
title: Recursive Subprograms
pagenum: 215; title: Exercises 4-5
pagenum: 219; label: 4-6
title: Applications
pagenum: 219; label: 4-6.1
title: Solving a Quadratic Equation
pagenum: 219; label: 4-6.2
title: Calculating Depreciation
pagenum: 220; label: 4-6.3
title: Payroll Processing
pagenum: 222; title: Chapter Summary
pagenum: 225; title: Key Terms
pagenum: 226; title: Chapter Exercises
pagenum: 226; label: Chapter 5
title: Composite Data Structures
pagenum: 231; label: 5-1
title: One-Dimensional Arrays: Vectors
pagenum: 232; label: 5-2
title: The Pascal Array Type
pagenum: 245; label: 5-2.1
title: Array Type Definitions and Variable Declarations
pagenum: 245; label: 5-2.2
title: Array Operations
pagenum: 247; label: 5-2.3
title: Arrays as Parameters
pagenum: 247; title: Exercises 5-2
pagenum: 253; label: 5-3
title: Sorting and Searching with Vectors
pagenum: 255; label: 5-3.1
title: Selection Sort
pagenum: 256; label: 5-3.2
title: Basic Searching
pagenum: 261; label: 5-3.3
title: Merging and Merge Sorting
pagenum: 269; title: Exercises 5-3
pagenum: 277; label: 5-4
title: Introduction to Algorithm Analysis
pagenum: 283; label: 5-4.1
title: Rate of Growth and Basic Time Analysis of an Algorithm
pagenum: 283; label: 5-4.2
title: Order Notation
pagenum: 288; label: 5-4.3
title: More Timing Analysis
pagenum: 290; label: 5-4.4
title: Space Analysis of an Algorithm
pagenum: 293; title: Exercises 5-4
pagenum: 294; label: 5-5
title: Applications of Vectors
pagenum: 297; label: 5-5.1
title: Processing Symbol Tables
pagenum: 297; label: 5-5.2
title: Blood Bank
pagenum: 302; label: 5-6
title: Higher-Dimensional Arrays
pagenum: 304; label: 5-6.1
title: Two-Dimensional Arrays
pagenum: 305; label: 5-6.2
title: Arrays of More than Two Dimensions
pagenum: 309; label: 5-6.3
title: Higher-Dimensional Arrays in Pascal
pagenum: 311; title: Exercises 5-6
pagenum: 313; label: 5-7
title: Applications Involving Arrays of One or More Dimensions
pagenum: 317; label: 5-7.1
title: Overweights Anonymous
pagenum: 318; label: 5-7.2
title: Global Hockey League
pagenum: 319; label: 5-7.3
title: Compatibility-Based Seat Assignment
pagenum: 327; label: 5-8
title: Record Structures and Arrays of Record Structures
pagenum: 331; title: Exercises 5-8
pagenum: 348; label: 5-9
title: Introduction to Sequential Files
pagenum: 352; title: Exercises 5-9
pagenum: 358; label: 5-10
title: Set Structures
pagenum: 360; title: Exercises 5-10
pagenum: 365; title: Chapter Summary
pagenum: 366; title: Key Terms
pagenum: 367; title: Chapter Exercises
pagenum: 368; label: Chapter 6
title: String Manipulation
pagenum: 375; label: 6-1
title: Character Information
pagenum: 376; label: 6-2
title: Strings in Standard Pascal
pagenum: 379; label: 6-3
title: String Concepts and Terminology
pagenum: 380; label: 6-4
title: Extended String Processing
pagenum: 384; label: 6-4.1
title: A String-Processing Example
pagenum: 384; label: 6-4.2
title: Strings in Turbo Pascal
pagenum: 385; title: Exercises 6-4.2
pagenum: 392; label: 6-4.3
title: Strings in VAX-11 Pascal
pagenum: 393; title: Exercises 6-4.3
pagenum: 395; label: 6-4.4
title: A String-Processing Package for Standard Pascal
pagenum: 396; title: Exercises 6-4.4
pagenum: 399; label: 6-4.5
title: Summary
pagenum: 399; title: Exercises 6-4
pagenum: 399; label: 6-5
title: String Applications
pagenum: 403; label: 6-5.1
title: Justification of Text
pagenum: 403; label: 6-5.2
title: Form-Letter Generation
pagenum: 412; label: 6-5.3
title: Lexical Analysis
pagenum: 419; title: Exercises 6-5.3
pagenum: 429; title: Chapter Summary
pagenum: 429; title: Key Terms
pagenum: 430; title: Chapter Exercises
pagenum: 430; title: References
pagenum: 432; label: Chapter 7
title: The Engineering of Computer Software
pagenum: 433; label: 7-1
title: Introduction
pagenum: 433; label: 7-2
title: The Software Life Cycle
pagenum: 434; label: 7-3
title: Design Issues
pagenum: 438; label: 7-3.1
title: Basic Systems Concepts
pagenum: 438; label: 7-3.2
title: Goals of Systems Design
pagenum: 440; label: 7-3.3
title: Principles of Systems Design
pagenum: 441; label: 7-3.4
title: Overview of Design Methodologies
pagenum: 443; label: 7-3.5
title: Design Notations
pagenum: 448; label: 7-3.6
title: Module Design
pagenum: 458; label: 7-3.7
title: Structured-Design Techniques
pagenum: 470; title: Exercises 7-3
pagenum: 481; label: 7-4
title: Implementation Issues
pagenum: 483; label: 7-4.1
title: Aspects of Program Quality
pagenum: 483; label: 7-4.2
title: Programming Style
pagenum: 486; label: 7-4.3
title: Documentation
pagenum: 499; label: 7-5
title: Testing and Debugging Issues
pagenum: 500; label: 7-5.1
title: Strategies for Testing a System
pagenum: 500; label: 7-5.2
title: Software Verification
pagenum: 512; label: 7-5.3
title: Debugging: Locating and Repairing Errors
pagenum: 527; title: Exercises 7-5
pagenum: 534; label: 7-6
title: Programming as a Human Activity
pagenum: 536; label: 7-6.1
title: Information-Processing Effects
pagenum: 537; label: 7-6.2
title: Social Effects
pagenum: 539; label: 7-6.3
title: Environmental Effects
pagenum: 539; label: 7-6.4
title: Personality Effects
pagenum: 540; label: 7-6.5
title: Concluding Remarks
pagenum: 540; title: Chapter Summary
pagenum: 540; title: Key Terms
pagenum: 541; title: References
pagenum: 542; label: Chapter 8
title: Linear Data Structures
pagenum: 544; label: 8-1
title: Linear Lists
pagenum: 544; label: 8-2
title: Storage Structure Concepts
pagenum: 546; label: 8-3
title: Sequential Storage Structures for Arrays, Records, and Sets
pagenum: 548; title: Exercises 8-3
pagenum: 553; label: 8-4
title: Stacks
pagenum: 554; title: Exercises 8-4
pagenum: 567; label: 8-5
title: Applications of Stacks
pagenum: 567; label: 8-5.1
title: Polish Expressions and Their Compilation
pagenum: 568; label: 8-5.2
title: Recursion
pagenum: 595; title: Exercises 8-5.2
pagenum: 601; label: 8-5.3
title: Partition-Exchange Sorting (Quicksort)
pagenum: 607; title: Exercises 8-5.3
pagenum: 612; label: 8-6
title: Queues
pagenum: 612; title: Exercises 8-6
pagenum: 616; label: 8-7
title: Simulation
pagenum: 620; title: Exercises 8-7
pagenum: 627; label: 8-8
title: Linked Storage Allocation
pagenum: 635; label: 8-8.1
title: Basic Concepts
pagenum: 635; label: 8-8.2
title: Singly Linked Linear Lists
pagenum: 638; title: Exercises 8-8.2
pagenum: 652; label: 8-8.3
title: Circularly Linked Linear Lists
pagenum: 653; title: Exercises 8-8.3
pagenum: 654; label: 8-8.4
title: Doubly Linked Linear Lists
pagenum: 655; title: Exercises 8-8.4
pagenum: 659; label: 8-9
title: Applications of Linked Linear Lists
pagenum: 661; label: 8-9.1
title: Radix Sorting
pagenum: 662; label: 8-9.2
title: Ski-Rental Shop
pagenum: 665; label: 8-9.3
title: Hash-Table Techniques
pagenum: 679; title: Exercises 8-9.3
pagenum: 692; title: Chapter Summary
pagenum: 693; title: Key Terms
pagenum: 693; title: Chapter Exercises
pagenum: 694; label: Chapter 9
title: Nonlinear Data Structures
pagenum: 699; label: 9-1
title: Tree Notation and Concepts
pagenum: 699; title: Exercises 9-1
pagenum: 707; label: 9-2
title: Storage Representation and Manipulation of Binary Trees
pagenum: 708; label: 9-2.1
title: Linked Storage Representation
pagenum: 709; label: 9-2.2
title: Threaded Storage Representation
pagenum: 725; label: 9-2.3
title: Sequential and Other Representations of Trees
pagenum: 733; title: Exercises 9-2
pagenum: 738; label: 9-3
title: General Trees
pagenum: 743; label: 9-3.1
title: Conversion of General Trees to Binary Trees
pagenum: 743; label: 9-3.2
title: Representations of General Trees
pagenum: 750; title: Exercises 9-3
pagenum: 751; label: 9-4
title: Applications of Trees
pagenum: 752; label: 9-4.1
title: The Symbolic Manipulation of Expressions
pagenum: 752; label: 9-4.2
title: Tree Sorts
pagenum: 757; label: 9-4.3
title: Trie Structures
pagenum: 763; label: 9-4.4
title: Grammars, Languages, and Parse Trees
pagenum: 767; title: Exercises 9-4
pagenum: 782; label: 9-5
title: Graphs
pagenum: 789; label: 9-5.1
title: Definitions and Concepts
pagenum: 790; label: 9-5.2
title: Matrix Representation of Graphs and Path Matrices
pagenum: 795; label: 9-5.3
title: Adjacency List Representation and Traversal of Graphs
pagenum: 801; title: Exercises 9-5
pagenum: 810; title: Chapter Summary
pagenum: 813; title: Key Terms
pagenum: 813; label: Chapter 10
title: Files
pagenum: 815; label: 10-1
title: External Storage Devices
pagenum: 815; label: 10-1.1
title: Magnetic Tape
pagenum: 816; label: 10-1.2
title: Magnetic Disks
pagenum: 818; label: 10-1.3
title: Other Storage Devices
pagenum: 822; title: Exercises 10-1
pagenum: 824; label: 10-2
title: Definitions and Concepts
pagenum: 824; label: 10-3
title: Record Organization
pagenum: 827; title: Exercises 10-3
pagenum: 832; label: 10-4
title: Sequential Files
pagenum: 833; label: 10-4.1
title: The Structure of Sequential Files
pagenum: 833; label: 10-4.2
title: Processing Sequential Files
pagenum: 837; label: 10-4.3
title: A Small Billing System
pagenum: 846; title: Exercises 10-4
pagenum: 866; label: 10-5
title: Direct Files
pagenum: 868; label: 10-5.1
title: The Structure of Direct Files
pagenum: 869; label: 10-5.2
title: Processing Direct Files
pagenum: 872; title: Exercises 10-5
pagenum: 882; title: Chapter Summary
pagenum: 882; title: Key Terms
pagenum: 882; label: Appendix A
title: Numeric Computations
pagenum: 884; label: A-1
title: Error
pagenum: 884; label: A-1.1
title: The Types of Error
pagenum: 885; label: A-1.2
title: The Expression and Propagation of Error
pagenum: 886; label: A-1.3
title: The Iterative Method
pagenum: 889; title: Exercises A-1
pagenum: 891; label: A-2
title: Finding the Roots of Nonlinear Functions
pagenum: 892; label: A-2.1
title: The Method of Successive Bisection
pagenum: 893; label: A-2.2
title: Newton's Method
pagenum: 895; title: Exercises A-2
pagenum: 899; label: A-3
title: Numerical Integration
pagenum: 899; label: A-3.1
title: The Trapezoid Rule
pagenum: 900; label: A-3.2
title: Simpson's Rule
pagenum: 901; title: Exercises A-3
pagenum: 902; label: Appendix B
title: Introduction to Recurrence Relations
pagenum: 904; label: B-1
title: Solution by Substitution
pagenum: 904; label: B-2
title: Verification by Induction
pagenum: 907; label: Appendix C
title: ASCII and EBCDIC Character Codes
pagenum: 910; title: ASCII Character Set
pagenum: 911; title: EBCDIC Character Set
pagenum: 912; label: Appendix D
title: Quick Pascal Reference
pagenum: 913; title: Reserved Words
pagenum: 913; title: Predefined Identifiers
pagenum: 913; title: Other Special Identifiers
pagenum: 914; title: Operator Precedence
pagenum: 914; title: Syntax Diagrams
pagenum: 914; title: Program Structure
pagenum: 915; title: Declarations
pagenum: 915; title: Statements
pagenum: 915; title: Expressions
pagenum: 916; title: Low Level Constructs
pagenum: 916; label: Appendix E
title: An Overview of Turbo Pascal
pagenum: 917; label: E-1
title: Using Turbo Pascal (Chapter 2)
pagenum: 917; label: E-2
title: The Turbo Editor (Chapter 2)
pagenum: 921; label: E-3
title: Minor Deviations from the Standard (Chapter 2)
pagenum: 924; label: E-4
title: Common Compiler Directives (Chapter 2)
pagenum: 924; label: E-5
title: Basic Text I/O (Chapter 3)
pagenum: 925; label: E-6
title: Control Constructs (Chapter 3)
pagenum: 927; label: E-7
title: Strings (Chapter 6)
pagenum: 927; label: E-8
title: Modular Program Construction (Chapter 7)
pagenum: 928; label: E-9
title: Dynamic Storage Allocation (Chapter 8)
pagenum: 930; label: E-10
title: Typed Files (Chapter 10)
pagenum: 930; label: Appendix F
title: Berkeley Pascal
pagenum: 933; label: F-1
title: Using Berkeley Pascal
pagenum: 933; label: F-2
title: Differences from Standard Pascal
pagenum: 934; label: F-3
title: Input/Output
pagenum: 935; label: F-4
title: Modular Programming
pagenum: 936; label: Appendix G
title: VAX-11 Pascal
pagenum: 939; label: G-1
title: Using VAX-11 Pascal
pagenum: 939; label: G-2
title: Some Minor Differences Between VAX-11 and Standard Pascal
pagenum: 940; label: G-3
title: Input/Output of Files
pagenum: 942; label: G-4
title: Modular Programming
pagenum: 942; title: Index
pagenum: 945