121 85 2MB
English Pages [52] Year 2017
Get complete eBook Order by email at [email protected]
Get complete eBook Order by email at [email protected]
Get Complete eBook Download Link below for instant download
https://browsegrades.net/documents/2 86751/ebook-payment-link-for-instantdownload-after-payment Follow the Instructions for complete eBook Download by email.
Get complete eBook Order by email at [email protected]
NINTH EDITION
PROGRAMMING LOGIC AND DESIGN COMPREHENSIVE
JOYCE FARRELL
Australia • Brazil • Japan • Korea • Mexico • Singapore • Spain • United Kingdom • United States
Get complete eBook Order by email at [email protected]
Get complete eBook Order by email at [email protected]
Brief Contents v
Pref ace ������� ��� �� ��� ��� ��� ���� �� ��� ��� ��� ������ ��� ��� xvi CHAPTER 1
An Over view of Computers and Programmi ng ��� 1
CHAPTER 2
Elem en t s o f Hi gh- Qual i ty Programs ����� ��� ���� ��� 38
CHAPTER 3
U n der s t an din g Structure ����� � ����� ��� ��� ��� ���� ��� 87
CHAPTER 4 M ak in g
Decis i ons ������ ��� ��� ��� � ����� ��� ��� ��� ���� � 124
CHAPTER 5
Lo o pin g ��������� ��� ������ ��� ��� ��� � ����� ��� ��� ��� ���� � 176
CHAPTER 6
Ar r ays �� ��������� ��� ������ ��� ��� ��� � ����� ��� ��� ��� ���� � 227
CHAPTER 7
F ile Han dlin g and Appl i cati ons����� ��� ��� ��� ���� � 272
CHAPTER 8
Advan ced Data Handl i ng Concepts ��� � �� � �� � �� � �� 321
CHAPTER 9
Advan ced M o dul ari z ati on Techni ques ����� ���� � 366
CHAPTER 10
Object -Or ien t ed Programmi ng ����� ��� ������ ��� �� 420
CHAPTER 11
M o re Object -Ori ented Programmi ng Co n cept s �� ���� ��� �� ��� ��� ��� ���� �� ��� ��� ��� ������ ��� �� 464
CHAPTER 12
Even t -Dr iven G UI Programmi ng, M u lt it h readin g, and Ani mati on�� ��� ��� ������ ��� �� 507
APPENDIX A
U n der s t an din g Numberi ng Sy stems an d Co m pu t er Codes����� ��� ��� ��� ��� ��� ������ ��� �� 539
APPENDIX B
So lvin g Dif f icul t Structuri ng Probl ems ��� ��� �� 547
Glo s s ar y ��� ������ �� ��� ��� ��� ��� ��� ��� ��� ��� ���� �� ��� �� 556 In dex�� ���� �� ������� ��� �� ��� ��� ��� ���� �� ��� ��� ��� ������ �� 571
Get complete eBook Order by email at [email protected]
Get complete eBook Order by email at [email protected]
Contents vii
Pref ace ������� ��� �� ��� ��� ��� ���� �� ��� ��� ��� ������ ��� ��� xvi CHAPTER 1
An Over view of Computers and Programmi ng ��� 1 Understanding Computer Systems��������������������������������������� 2 Understanding Simple Program Logic ���������������������������������� 5 Understanding the Program Development Cycle��������������������� 8 Understanding the Problem ��������������������������������������������� 8 Planning the Logic ��������������������������������������������������������10 Coding the Program �����������������������������������������������������10 Using Software to Translate the Program into Machine Language ������������������������������������������������������������������11 Testing the Program �����������������������������������������������������12 Putting the Program into Production��������������������������������13 Maintaining the Program������������������������������������������������14 Using Pseudocode Statements and Flowchart Symbols ���������15 Writing Pseudocode ������������������������������������������������������15 Drawing Flowcharts ������������������������������������������������������17 Repeating Instructions ��������������������������������������������������19 Using a Sentinel Value to End a Program�����������������������������20 Understanding Programming and User Environments ������������23 Understanding Programming Environments�����������������������23 Understanding User Environments�����������������������������������25 Understanding the Evolution of Programming Models������������27 Chapter Summary �����������������������������������������������������������28 Key Terms�����������������������������������������������������������������������29 Exercises �����������������������������������������������������������������������32
CHAPTER 2
Elem en t s o f Hi gh- Qual i ty Programs ����� ��� ���� ��� 38 Declaring and Using Variables and Constants�����������������������39 Understanding Data Types ���������������������������������������������39 Understanding Unnamed, Literal Constants�����������������������39 Working with Variables ��������������������������������������������������40 Understanding a Declaration’s Data Type��������������������������41
Get complete eBook Order by email at [email protected]
Get complete eBook Order by email at [email protected] CONTENTS Understanding a Declaration’s Identifier ���������������������������42 Assigning Values to Variables �����������������������������������������45 Declaring Named Constants��������������������������������������������46 Performing Arithmetic Operations ��������������������������������������47 The Integer Data Type ���������������������������������������������������50 Understanding the Advantages of Modularization �����������������51 Modularization Provides Abstraction��������������������������������52 Modularization Helps Multiple Programmers to Work on a Problem��������������������������������������������������������������53 Modularization Allows You to Reuse Work��������������������������53 Modularizing a Program ������������������������������������������������54 Declaring Variables and Constants within Modules�����������������58 Understanding the Most Common Configuration for Mainline Logic�����������������������������������������������������������60 Creating Hierarchy Charts ���������������������������������������������64 Features of Good Program Design��������������������������������������66 Using Program Comments ���������������������������������������������67 Choosing Identifiers������������������������������������������������������69 Designing Clear Statements��������������������������������������������71 Writing Clear Prompts and Echoing Input��������������������������72 Maintaining Good Programming Habits��������������������������������74 Chapter Summary �����������������������������������������������������������75 Key Terms�����������������������������������������������������������������������76 Exercises �����������������������������������������������������������������������79
viii
CHAPTER 3
U n der s t an din g Structure ����� � ����� ��� ��� ��� ���� ��� 87 The Disadvantages of Unstructured Spaghetti Code��������������88 Understanding the Three Basic Structures ��������������������������90 The Sequence Structure ������������������������������������������������90 The Selection Structure��������������������������������������������������91 The Loop Structure ������������������������������������������������������92 Combining Structures ���������������������������������������������������93 Using a Priming Input to Structure a Program�����������������������99 Understanding the Reasons for Structure��������������������������� 106 Recognizing Structure���������������������������������������������������� 107 Structuring and Modularizing Unstructured Logic ��������������� 110 Chapter Summary ��������������������������������������������������������� 115 Key Terms��������������������������������������������������������������������� 115 Exercises ��������������������������������������������������������������������� 117
Get complete eBook Order by email at [email protected]
Get complete eBook Order by email at [email protected] CHAPTER 4
CONTENTS
M ak in g Decis ions ������ ��� ��� ��� � ����� ��� ��� ��� ���� � 124 The Selection Structure�������������������������������������������������� 125 Using Relational Comparison Operators ���������������������������� 129 Avoiding a Common Error with Relational Operators��������� 133 Understanding AND Logic������������������������������������������������ 134 Nesting AND Decisions for Efficiency ���������������������������� 137 Using the AND Operator ���������������������������������������������� 139 Avoiding Common Errors in an AND Selection������������������ 141 Understanding OR Logic ������������������������������������������������� 143 Writing OR Selections for Efficiency ������������������������������ 145 Using the OR Operator ������������������������������������������������ 147 Avoiding Common Errors in an OR Selection������������������� 147 Understanding NOT Logic������������������������������������������������ 153 Avoiding a Common Error in a NOT Expression ��������������� 154 Making Selections within Ranges ������������������������������������� 155 Avoiding Common Errors When Using Range Checks ������� 157 Understanding Precedence When Combining AND and OR Operators��������������������������������������������������� 160 Understanding the case Structure ���������������������������������� 163 Chapter Summary ��������������������������������������������������������� 165 Key Terms��������������������������������������������������������������������� 166 Exercises ��������������������������������������������������������������������� 167
CHAPTER 5 Lo o pin g
��������� ��� ������ ��� ��� ��� � ����� ��� ��� ��� ���� � 176
Appreciating the Advantages of Looping ��������������������������� 177 Using a Loop Control Variable������������������������������������������ 179 Using a Definite Loop with a Counter������������������������������ 179 Using an Indefinite Loop with a Sentinel Value ���������������� 181 Understanding the Loop in a Program’s Mainline Logic������ 183 Nested Loops ��������������������������������������������������������������� 185 Avoiding Common Loop Mistakes ������������������������������������ 190 Mistake: Failing to Initialize the Loop Control Variable ������ 190 Mistake: Neglecting to Alter the Loop Control Variable������ 191 Mistake: Using the Wrong Type of Comparison When Testing the Loop Control Variable ������������������������������� 192 Mistake: Including Statements Inside the Loop Body that Belong Outside the Loop ������������������������������������� 194 Using a for Loop ���������������������������������������������������������� 199 Using a Posttest Loop ��������������������������������������������������� 201 Recognizing the Characteristics Shared by Structured Loops ���������������������������������������������������� 203
Get complete eBook Order by email at [email protected]
ix
Get complete eBook Order by email at [email protected] CONTENTS
Common Loop Applications��������������������������������������������� 205 Using a Loop to Accumulate Totals ������������������������������� 205 Using a Loop to Validate Data��������������������������������������� 209 Limiting a Reprompting Loop ��������������������������������������� 209 Validating a Data Type ������������������������������������������������ 212 Validating Reasonableness and Consistency of Data��������� 213 Comparing Selections and Loops������������������������������������� 214 Chapter Summary ��������������������������������������������������������� 218 Key Terms��������������������������������������������������������������������� 218 Exercises ��������������������������������������������������������������������� 220
x
CHAPTER 6
Ar r ays �� ������ ������ ������ ��� ��� ��� � ����� ��� ��� ��� ���� � 227 Storing Data in Arrays���������������������������������������������������� 228 How Arrays Occupy Computer Memory��������������������������� 228 How an Array Can Replace Nested Decisions��������������������� 231 Using Constants with Arrays ������������������������������������������� 238 Using a Constant as the Size of an Array������������������������ 238 Using Constants as Array Element Values ���������������������� 239 Using a Constant as an Array Subscript ������������������������� 239 Searching an Array for an Exact Match������������������������������ 240 Using Parallel Arrays������������������������������������������������������ 244 Improving Search Efficiency������������������������������������������ 248 Searching an Array for a Range Match������������������������������ 250 Remaining within Array Bounds���������������������������������������� 255 Understanding Array Size��������������������������������������������� 255 Understanding Subscript Bounds ���������������������������������� 255 Using a for Loop to Process an Array������������������������������ 258 Chapter Summary ��������������������������������������������������������� 260 Key Terms��������������������������������������������������������������������� 261 Exercises ��������������������������������������������������������������������� 261
CHAPTER 7
F ile Han dlin g and Appl i cati ons����� ��� ��� ��� ���� � 272 Understanding Computer Files ���������������������������������������� 273 Organizing Files ��������������������������������������������������������� 274 Understanding the Data Hierarchy������������������������������������ 275 Performing File Operations ��������������������������������������������� 277 Declaring a File Identifier��������������������������������������������� 277 Opening a File������������������������������������������������������������ 278 Reading Data from a File and Processing It��������������������� 278 Writing Data to a File��������������������������������������������������� 281 Closing a File������������������������������������������������������������� 281
Get complete eBook Order by email at [email protected]
Get complete eBook Order by email at [email protected]
CONTENTS
A Program that Performs File Operations������������������������ 282 Understanding Control Break Logic ���������������������������������� 285 Merging Sequential Files ������������������������������������������������ 290 Master and Transaction File Processing ���������������������������� 299 Random Access Files������������������������������������������������������ 308 Chapter Summary ��������������������������������������������������������� 309 Key Terms��������������������������������������������������������������������� 310 Exercises ��������������������������������������������������������������������� 312 CHAPTER 8
Advan ced Data Handl i ng Concepts ��� � �� � �� � �� � �� 321 Understanding the Need for Sorting Data��������������������������� 322 Using the Bubble Sort Algorithm��������������������������������������� 324 Understanding Swapping Values������������������������������������ 324 Understanding the Bubble Sort ������������������������������������� 325 Sorting Multifield Records ���������������������������������������������� 340 Sorting Data Stored in Parallel Arrays ��������������������������� 340 Sorting Records as a Whole������������������������������������������ 341 Other Sorting Algorithms ������������������������������������������������ 342 Using Multidimensional Arrays������������������������������������������ 345 Using Indexed Files and Linked Lists��������������������������������� 351 Using Indexed Files ���������������������������������������������������� 352 Using Linked Lists ������������������������������������������������������ 353 Chapter Summary ��������������������������������������������������������� 356 Key Terms��������������������������������������������������������������������� 357 Exercises ��������������������������������������������������������������������� 358
CHAPTER 9
Advan ced M o dul ari z ati on Techni ques ����� ���� � 366 The Parts of a Method ��������������������������������������������������� 367 Using Methods with no Parameters ���������������������������������� 368 Creating Methods that Require Parameters������������������������ 371 Creating Methods that Require Multiple Parameters ��������� 377 Creating Methods that Return a Value������������������������������� 379 Using an IPO Chart������������������������������������������������������ 384 Passing an Array to a Method������������������������������������������ 386 Overloading Methods������������������������������������������������������ 394 Avoiding Ambiguous Methods ��������������������������������������� 397 Using Predefined Methods ���������������������������������������������� 400 Method Design Issues: Implementation Hiding, Cohesion, and Coupling��������������������������������������������������������������� 402 Understanding Implementation Hiding ���������������������������� 402 Increasing Cohesion ��������������������������������������������������� 403 Reducing Coupling������������������������������������������������������ 404 Understanding Recursion������������������������������������������������ 405
Get complete eBook Order by email at [email protected]
xi
Get complete eBook Order by email at [email protected] CONTENTS
Chapter Summary ��������������������������������������������������������� 410 Key Terms��������������������������������������������������������������������� 411 Exercises ��������������������������������������������������������������������� 412
xii
CHAPTER 10
Object -Or ien t ed Programmi ng ����� ��� ������ ��� �� 420 Principles of Object-Oriented Programming������������������������ 421 Classes and Objects ��������������������������������������������������� 421 Polymorphism ������������������������������������������������������������ 424 Inheritance ���������������������������������������������������������������� 426 Encapsulation ������������������������������������������������������������ 426 Defining Classes and Creating Class Diagrams ������������������ 428 Creating Class Diagrams ��������������������������������������������� 430 The Set Methods��������������������������������������������������������� 433 The Get Methods��������������������������������������������������������� 434 Work Methods������������������������������������������������������������ 435 Understanding Public and Private Access��������������������������� 437 Organizing Classes��������������������������������������������������������� 440 Understanding Instance Methods ������������������������������������� 441 Understanding Static Methods������������������������������������������ 447 Using Objects ��������������������������������������������������������������� 448 Passing an Object to a Method ������������������������������������� 449 Returning an Object from a Method ������������������������������� 450 Using Arrays of Objects ���������������������������������������������� 453 Chapter Summary ��������������������������������������������������������� 455 Key Terms��������������������������������������������������������������������� 456 Exercises ��������������������������������������������������������������������� 458
CHAPTER 11
M o re Object -Ori ented Programmi ng Co n cept s �� ������� �� ��� ��� ��� ���� �� ��� ��� ��� ������ ��� �� 464 Understanding Constructors ������������������������������������������� 465 Default Constructors��������������������������������������������������� 466 Non-default Constructors��������������������������������������������� 468 Overloading Instance Methods and Constructors ������������� 469 Understanding Destructors ��������������������������������������������� 472 Understanding Composition��������������������������������������������� 474 Understanding Inheritance ���������������������������������������������� 475 Understanding Inheritance Terminology��������������������������� 478 Accessing Private Fields and Methods of a Parent Class������������������������������������������������������ 481 Overriding Parent Class Methods in a Child Class������������ 486
Get complete eBook Order by email at [email protected]
Get complete eBook Order by email at [email protected]
CONTENTS
Using Inheritance to Achieve Good Software Design��������� 486 An Example of Using Predefined Classes: Creating GUI Objects ��������������������������������������������������� 487 Understanding Exception Handling������������������������������������ 488 Drawbacks to Traditional Error-Handling Techniques��������� 489 The Object-Oriented Exception-Handling Model���������������� 491 Using Built-in Exceptions and Creating Your Own Exceptions ������������������������������������������������ 493 Reviewing the Advantages of Object-Oriented Programming 494 Chapter Summary ��������������������������������������������������������� 495 Key Terms��������������������������������������������������������������������� 496 Exercises ��������������������������������������������������������������������� 497 CHAPTER 12
Even t -Dr iven G UI Programmi ng, M u lt it h readin g, and Ani mati on�� ��� ��� ������ ��� �� 507 Understanding Event-Driven Programming ������������������������� 508 User-Initiated Actions and GUI Components������������������������ 511 Designing Graphical User Interfaces��������������������������������� 514 The Interface Should Be Natural and Predictable������������� 514 The Interface Should Be Attractive, Easy to Read, and Nondistracting ��������������������������������������������������� 515 To Some Extent, It’s Helpful If the User Can Customize Your Applications������������������������������������������������������ 516 The Program Should Be Forgiving ��������������������������������� 516 The GUI Is Only a Means to an End��������������������������������� 516 Developing an Event-Driven Application������������������������������ 517 Creating Wireframes ��������������������������������������������������� 518 Creating Storyboards��������������������������������������������������� 518 Defining the Storyboard Objects in an Object Dictionary��� 519 Defining Connections Between the User Screens������������� 520 Planning the Logic ������������������������������������������������������ 520 Understanding Threads and Multithreading ������������������������ 525 Creating Animation��������������������������������������������������������� 528 Chapter Summary ��������������������������������������������������������� 531 Key Terms��������������������������������������������������������������������� 532 Exercises ��������������������������������������������������������������������� 533
Get complete eBook Order by email at [email protected]
xiii
Get complete eBook Order by email at [email protected] CONTENTS
xiv
APPENDIX A
U n der s t an din g Numberi ng Sy stems an d Co m pu t er Codes����� ��� ��� ��� ��� ��� ������ ��� �� 539
APPENDIX B
So lvin g Dif f icul t Structuri ng Probl ems ��� ��� �� 547
Glo s s ar y ��� ��� ��� �� ��� ��� ��� ��� ��� ��� ��� ��� ���� �� ��� �� 556 In dex�� ���� �� ��� ���� ��� �� ��� ��� ��� ���� �� ��� ��� ��� ������ �� 571
Get complete eBook Order by email at [email protected]
Get complete eBook Order by email at [email protected]
CHAPTER
An Overview of Computers and Programming
1
Upon completion of this chapter, you will be able to: Describe computer systems Understand simple program logic List the steps involved in the program development cycle Write pseudocode statements and draw flowchart symbols Use a sentinel value to end a program Understand programming and user environments Describe the evolution of programming models
Get complete eBook Order by email at [email protected]
Get complete eBook Order by email at [email protected] CHAPTER 1
An Overview of Computers and Programming
Understanding Computer Systems
2
A computer system is a combination of all the components required to process and store data using a computer. Every computer system is composed of multiple pieces of hardware and software. •• Hardware is the equipment, or the physical devices, associated with a computer. For example, keyboards, mice, speakers, and printers are all hardware. The devices are manufactured differently for computers of varying sizes—for example, large mainframes, laptops, and very small devices embedded into products such as telephones, cars, and thermostats. The types of operations performed by differentsized computers, however, are very similar. Computer hardware needs instructions that control its operations, including how and when data items are input, how they are processed, and the form in which they are output or stored. •• Software is computer instructions that tells the hardware what to do. Software is programs, which are instruction sets written by programmers. You can buy prewritten programs that are stored on a disk or that you download from the Web. For example, businesses use wordprocessing and accounting programs, and casual computer users enjoy programs that play music and games. Alternatively, you can write your own programs. When you write software instructions, you are programming. This book focuses on the programming process. Software can be classified into two broad types: •• Application software comprises all the programs you apply to a task, such as wordprocessing programs, spreadsheets, payroll and inventory programs, and games. When you hear people say they have “downloaded an app onto a mobile device,” they are simply using an abbreviation of application software. •• System software comprises the programs that you use to manage your computer, including operating systems such as Windows, Linux, or UNIX for larger computers and Google Android and Apple iOS for smartphones. This book focuses on the logic used to write application software programs, although many of the concepts apply to both types of software. Together, computer hardware and software accomplish three major operations in most programs: •• Input: Data items enter the computer system and are placed in memory, where they can be processed. Data items include all the text, numbers, and other raw material that are entered into and processed by a computer. Hardware devices that perform input operations include keyboards and mice. In business, many of the data items used are facts and figures about such entities as products, customers, and personnel. Data, however, also can include items such as images, sounds, and a user’s mouse or finger-swiping movements. •• Processing: Processing data items may involve organizing or sorting them, checking them for accuracy, or performing calculations with them. The hardware component that performs these types of tasks is the central processing unit, or CPU. Some devices, such as tablets and smartphones, usually contain multiple processors, and efficiently using several CPUs requires special programming techniques.
Get complete eBook Order by email at [email protected]
Get complete eBook Order by email at [email protected] Understanding Computer Systems
•• Output: After data items have been processed, the resulting information usually is sent to a printer, monitor, or some other output device so people can view, interpret, and use the results. Programming professionals often use the term data for input items, but use the term information for data items that have been processed and output. Sometimes you place output on storage devices, such as your hard drive, flash media, or a cloud-based device. (The cloud refers to devices at remote locations accessed through the Internet.) People cannot read data directly from these storage devices, but the devices hold information for later retrieval. When you send output to a storage device, sometimes it is used later as input for another program. You write computer instructions in a computer programming language such as Visual Basic, C#, C++, or Java. Just as some people speak English and others speak Japanese, programmers write programs in different languages. Some programmers work exclusively in one language, whereas others know several and use the one that is best suited to the task at hand. The instructions you write using a programming language are called program code; when you write instructions, you are coding the program. Every programming language has rules governing its word usage and punctuation. These rules are called the language’s syntax. Mistakes in a language’s usage are syntax errors. If you ask, “How the geet too store do I?” in English, most people can figure out what you probably mean, even though you have not used proper English syntax—you have mixed up the word order, misspelled a word, and used an incorrect word. However, computers are not nearly as smart as most people; in this case, you might as well have asked the computer, “Xpu mxv ort dod nmcad bf B?” Unless the syntax is perfect, the computer cannot interpret the programming language instruction at all. Figure 1-1 shows how the statement that displays the word Hello on a single line on a computer monitor looks in some common programming languages. Notice that the syntax of some languages require that a statement start with an uppercase letter, while the syntax of others does not. Notice that some languages end statements with a semicolon, some with a period, and some with no ending punctuation at all. Also notice that different verbs are used to mean display, and that some are spelled like their like English word counterparts, while others like cout and System.out.println are not regular English words. The different formats you see are just a hint of the various syntaxes used by languages. Language
Statement that displays Hello on a single line
Java
System.out.println(“Hello);
C++
cout