BLACK FRIDAY SALE
Buy 1, Save 35% / Buy 2+, Save 55%*—use code BF2018. Shop now.
Register your product to gain access to bonus material or receive a coupon.
• A generic, non-language-specific approach presents the tools and concepts required when using any programming language to develop computer applications.
– Shows how problem solving is the same in all languages.
– Enables students to concentrate on problem solving (rather than syntax) regardless of the language they use, and to use the text as a reference in future courses.
• Broad coverage ranges from the basics of mathematical functions and operators to the design and use of such techniques as code, arrays, pointers, other data structures, database concepts, and object- oriented programming concepts.
• Problem-solving tools are used to discuss the problem analysis chart, interactivity (structure) chart, IPO chart, the coupling diagram, algorithms, flowcharts, and tools to help with the development of object oriented programming solutions.
– Explains and demonstrates these tools extensively using typical problems found in computer language textbooks.
• Structured programming techniques include sequential, decision, loop, and case logic structures.
– Introduces students to the correct use of modules, parameters, and variable names that allow easier development, as well as easier maintenance, of a program.
• A full chapter on variables, constants, data types, functions, operators, equations, and expressions gives students a solid foundation in the concepts that are important to know before starting to develop a program, and which make setting up the basic instructions much easier.
• Various types of data structures are explored, with full chapter coverage on arrays, stacks, linked lists, binary trees, and database.
– Prepares students to develop programs to handle almost any problem in today's market.
• Problem solving for applications details includes techniques for page layout, spreadsheets, database management systems, and document processing.
– Makes material more tangible and real-world for students, giving them hands-on practice with the types of applications they'll encounter on the job.
• “What's Wrong with This?” sections in problem sections challenge students to think critically and analytically to debug programs.
• “Putting It All Together sections” walk students through a complete solution for a given problem, using the concepts previously presented.
– In some cases, an earlier solution is updated to incorporate more sophisticated techniques.
– Ensures that students learn not only individual problem-solving techniques, but how to put them together into viable strategies for tackling specific kinds of problems/applications.
• Chapter Problems give students hands-on experience in solving problems that are typically found in computer language textbooks.
• Abundant pedagogical aids integrated throughout include chapter objectives, chapter summaries, key words, chapter exercises and problems, glossaries, and tables of flowcharting symbols and functions.
Problem Solving and Programming Concepts, 9/e, is a core or supplementary text for one-semester, freshman/sophomore-level introductory courses taken by programming majors in Problem Solving for Programmers, Problem Solving for Applications, any Computer Language Course, or Introduction to Programming.
Revised to reflect the most current issues in the programming industry, this widely adopted text emphasizes that problem solving is the same in all computer languages, regardless of syntax. Sprankle and Hubbard use a generic, non-language-specific approach to present the tools and concepts required when using any programming language to develop computer applications. Designed for students with little or no computer experience — but useful to programmers at any level — the text provides step-by-step progression and consistent in-depth coverage of topics, with detailed explanations and many illustrations.
Preface vii
UNIT ONE INTRODUCTION TO PROBLEM SOLVING AND PROGRAMMING, 1
Chapter 1 General Problem-Solving Concepts 3
Problem Solving in Everyday Life 3
Types of Problems 5
Problem Solving with Computers 6
Difficulties with Problem Solving 6
Summary 7
New Terms 7
Questions 7
Problems 8
Chapter 2 Beginning Problem-Solving Concepts for the Computer 11
Constants and Variables 13
Data Types 16
How the Computer Stores Data 20
Functions 21
Operators 23
Expressions and Equations 27
Summary 34
New Terms 35
Questions 35
Problems 37
Chapter 3 Planning Your Solution 41
Communicating with the Computer 42
Organizing the Solution 43
Introduction to UML (Unified Modeling Language) 55
Using the Tools 59
Testing the Solution 61
Coding the Solution 61
Software Development Cycle 62
Summary 62
New Terms 63
Questions 63
Problems 63
UNIT ONE Supplementary Exercises, 65
UNIT TWO LOGIC STRUCTURES, 69
Chapter 4 An Introduction to Programming Structure 71
Pointers for Structuring a Solution 72
The Modules and Their Functions 74
Cohesion and Coupling 75
Local and Global Variables 77
Parameters 79
Return Values 84
Variable Names and the Data Dictionary 85
The Three Logic Structures 85
Summary 86
New Terms 86
Questions 87
Problems 87
Chapter 5 Problem Solving with the Sequential Logic Structure 89
Algorithm Instructions, Flowchart Symbols 89
The Sequential Logic Structure 92
Solution Development 94
Summary 101
Questions 102
Problems 102
Chapter 6 Problem Solving with Decisions 105
The Decision Logic Structure 106
Multiple If/Then/Else Instructions 108
Using Straight-Through Logic 110
Using Positive Logic 111
Using Negative Logic 115
Logic Conversion 117
Which Decision Logic? 120
Decision Tables 120
Putting It All Together 127
The Case Logic Structure 135
Codes 137
Putting It All Together 138
Another Putting It All Together 140
Summary 141
New Terms 142
Questions 142
Problems 143
Chapter 7 Problem Solving with Loops 149
The Loop Logic Structure 150
lncrementing 151
Accumulating 151
While/WhileEnd 152
Putting It All Together 154
Repeat/Until 154
Putting It All Together 157
Automatic-Counter Loop 159
Putting It All Together 163
Nested Loops 163
Indicators 166
Algorithm Instructions and Flowchart Symbols 167
Recursion 169
Summary 169
New Terms 174
Questions 174
Problems 174
UNIT TWO Supplementary Exercises, 177
UNIT THREE DATA STRUCTURES, 179
Chapter 8 Processing Arrays 181
Arrays 182
One-Dimensional Arrays 184
Putting It All Together 189
Two-Dimensional Arrays 191
Putting It All Together 199
Multidimensional Arrays 208
Table Look-Up Technique 209
The Pointer Technique 213
Putting It All Together 226
Summary 235
New Terms 235
Questions 235
Problems 236
Chapter 9 Sorting, Stacks, and Queues 239
Sorting Techniques 240
Stacks 247
Queues 248
Summary 252
New Terms 252
Questions 252
Problems 253
Chapter 10 File Concepts 255
Beginning File Concepts 256
Records as a Data Structure 256
Primary and Secondary Keys 256
Algorithm Instructions and Flowchart Symbols 256
Systems Flowcharts 259
Designing Records 259
Summary 263
New Terms 263
Questions 263
Problems 263
Chapter 11 Linked Lists 265
Creating Linked Lists 265
Examples of Adding Data to/Deleting Data from Linked Lists 266
Algorithms and Flowcharts to Add, Delete, and Access Data in a Linked List 271
Summary 284
New Terms 284
Questions 284
Problems 284
Chapter 12 Binary Trees 287
Creation of Binary Trees 288
Accessing Data in a Binary Tree 290
Traversal of Binary Trees 294
Summary 296
New Terms 296
Questions 296
Problems 296
UNIT THREE Supplementary Exercises, 297
UNIT FOUR DATABASE MANAGEMENT SYSTEMS, 299
Chapter 13 Database Management Systems 301
Why a DBMS? 302
DBMS Components 303
DBMS Models 304
Client-Server Model 305
DBMS Tasks 306
Summary 307
New Terms 308
Questions 308
Chapter 14 Relational Database Management Systems 309
Tables, Records, and Fields 310
Normalizing Tables 311
Entity Relation Model 315
Schema 318
Creating Tables 318
Queries 320
Interface Design 322
Reports 323
Planning a Solution Using an RDBMS 323
Summary 332
New Terms 332
Questions 333
Problems 333
UNIT FIVE OBJECT-ORIENTED PROGRAMMING, 335
Chapter 15 Concepts of Object-Oriented Programming 337
Object-Oriented Programming 338
Graphical User Interface (GUI) 348
Event-Driven Object-Oriented Programming 348
Interactivity 351
Summary 351
New Terms 352
Questions 352
Problems 353
Chapter 16 Object-Oriented Program Design 355
Designing an Object-Oriented Application 356
Interface Design 362
Designing an Event-Driven Object-Oriented Application 371
Summary 380
New Terms 380
Questions 381
Problems 381
UNIT SIX INTRODUCTION TO GAME DEVELOPMENT, 383
Chapter 17 Introduction to Concepts of Game Development Using Object-Oriented Programming 385
Game Development 386
Planning the Game 386
Steps to Develop a Simple Game 387
Summary 388
New Terms 388
Questions 388
Problems 388
Chapter 18 Introduction to Assembly Language 391
Assembly Language versus High-Level Languages 392
Assembly Language Concepts 392
Some Basic Assembly Language Instructions 392
Assembly Language Equivalents to the Four Logic Structures 393
Summary 395
New Terms 395
Questions 395
Problems 395
UNIT SEVEN FILE PROCESSING, 397
Chapter 19 Sequential-Access File Applications 399
Processing Sequential-Access Files 401
The Primer Read 401
Designing Output Reports 401
Headings and Line Counters 403
Control-Breaks 409
Multiple Control-Breaks 413
Using Indicators for Program Control 415
Error Handling 420
Null Files 422
Summary 430
New Terms 431
Questions 431
Problems 431
Chapter 20 Sequential-Access File Updating 433
Creating Files 434
The Master File 435
Transaction Files 435
Activity Files 435
Backup Files 435
Updating the Master File Using a Transaction File 435
Putting It All Together 442
A Useful Alternative Method 452
Summary 457
New Terms 457
Questions 457
Problems 457
UNIT FIVE Supplementary Exercises , 459
APPENDIX A Otto the Robot 461
APPENDIX B ASCII and EBCDIC Codes for Data Representation 469
APPENDIX C Forms to Use in Problem Solving 473
APPENDIX D Other Problem-Solving Tools 493
APPENDIX E Other Functions 497
GLOSSARY 499
INDEX 507