Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Beginning programming for dummies
Nội dung xem thử
Mô tả chi tiết
by Wallace Wang
Beginning
Programming
FOR
DUMmIES‰
3RD EDITION
549979 FM.qxd 11/6/03 1:46 PM Page i
Beginning Programming For Dummies®, 3rd Edition
Published by
Wiley Publishing, Inc.
111 River Street
Hoboken, NJ 07030-5774
Copyright © 2004 by Wiley Publishing, Inc., Indianapolis, Indiana
Published by Wiley Publishing, Inc., Indianapolis, Indiana
Published simultaneously in Canada
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or
by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted
under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright
Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to
the Publisher for permission should be addressed to the Legal Department, Wiley Publishing, Inc., 10475
Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4447, e-mail: permcoordinator@
wiley.com.
Trademarks: Wiley, the Wiley Publishing logo, For Dummies, the Dummies Man logo, A Reference for the
Rest of Us!, The Dummies Way, Dummies Daily, The Fun and Easy Way, Dummies.com, and related trade
dress are trademarks or registered trademarks of John Wiley & Sons, Inc., and/or its affiliates in the United
States and other countries, and may not be used without written permission. All other trademarks are the
property of their respective owners. Wiley Publishing, Inc., is not associated with any product or vendor
mentioned in this book.
LIMIT OF LIABILITY/DISCLAIMER OF WARRANTY: WHILE THE PUBLISHER AND AUTHOR HAVE USED
THEIR BEST EFFORTS IN PREPARING THIS BOOK, THEY MAKE NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE ACCURACY OR COMPLETENESS OF THE CONTENTS OF THIS BOOK
AND SPECIFICALLY DISCLAIM ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE. NO WARRANTY MAY BE CREATED OR EXTENDED BY SALES REPRESENTATIVES
OR WRITTEN SALES MATERIALS. THE ADVICE AND STRATEGIES CONTAINED HEREIN MAY NOT BE
SUITABLE FOR YOUR SITUATION. YOU SHOULD CONSULT WITH A PROFESSIONAL WHERE APPROPRIATE. NEITHER THE PUBLISHER NOR AUTHOR SHALL BE LIABLE FOR ANY LOSS OF PROFIT OR ANY
OTHER COMMERCIAL DAMAGES, INCLUDING BUT NOT LIMITED TO SPECIAL, INCIDENTAL, CONSEQUENTIAL, OR OTHER DAMAGES.
For general information on our other products and services or to obtain technical support, please contact
our Customer Care Department within the U.S. at 800-762-2974, outside the U.S. at 317-572-3993, or fax
317-572-4002.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may
not be available in electronic books.
Library of Congress Control Number: 2003114793
ISBN: 0-7645-4997-9
Manufactured in the United States of America
10 9 8 7 6 5 4 3 2 1
3B/SU/RR/QT
549979 FM.qxd 11/6/03 1:46 PM Page ii
About the Author
After spending his first two post-college years working for a dead-end corporation that encouraged its employees to use euphemisms to disguise the fact
that they were manufacturing nuclear weapons with the potential to wipe out
most forms of life on the planet, Wallace Wang decided that his life was meant
to be spent doing something more exciting than existing in a corporate culture
that stifled freedom and democracy while building missiles ostensibly to
protect freedom and democracy. With the thought of escape in his mind, he
bought one of the first IBM personal computers on the market — and quickly
realized that the accompanying computer manuals were completely incomprehensible.
After deciphering the manuals and learning to master the arcane commands
of the ancient MS-DOS version 1.25 operating system, Wallace decided to publish fragments of his notes in a local computer magazine for the amusement
of others — and to provide an alternative source of income for his eventual
departure from the mentally suffocating environment of the military-industrial
complex.
After people began responding favorably to his introductory computer magazine articles, he continued writing more, eventually turning to writing full-time.
For the first time, he managed to earn a living in a job that didn’t involve developing something that could blow up people who happen to live in another part
of the world.
Today, the author is happily pursuing a dual career in the book publishing
industry and the stand-up comedy industry. His eventual goal is to convince
people that enjoying yourself while learning is all right. In the meantime, he
plans to continue making fun of any idiots and morons who happen to get in
his way.
549979 FM.qxd 11/6/03 1:46 PM Page iii
Dedication
This book is dedicated to all the wonderful people I’ve met along the path of
life, including . . .
Cassandra (my wife), Jordan (my son), and Bo, Scraps, Tasha, and Nuit
(our cats).
Lily Carnie, the only person I know who can truly see both sides of the story.
All the friendly folks I’ve met while performing at the Riviera Comedy Club,
located at the Riviera Hotel & Casino in Las Vegas: Steve Schirripa (who also
appears on the HBO show, The Sopranos, which you can read about at www.
hbo.com/sopranos), Don Learned, Bob Zany, Gerry Bednob, Bruce Clark,
Darrell Joyce, Tony Vicich, and Kip Addotta. The next time you’re visiting Las
Vegas, drop by the Riviera and watch a comedy show. Then dump some money
in a slot machine on the way out to ensure that the Riviera Hotel & Casino
continues making enough money to keep its comedy club open.
Patrick DeGuire, who helped me form Top Bananas (at www.topbananas.com),
our company devoted to providing clean, quality stand-up comedy to the
wonderful people in San Diego. Thanks must also go to Leo (the man, the
myth, the legend) Fontaine, Chris (the Zooman) Clobber, and Dante (who gets
excited just to see his name in a book).
549979 FM.qxd 11/6/03 1:46 PM Page iv
Author’s Acknowledgments
If it weren’t for Matt Wagner and Bill Gladstone at Waterside Productions, I
may never have written this book (and someone else may have). That’s why I
don’t mind paying these guys 15 percent of the book royalties so that they
can afford to buy their groceries.
Additional thanks go to Allen Wyatt (the technical reviewer) for making sure
that everything in this book is accurate, and to Cassandra (my wife) for
putting up with multiple computers that (from her point of view) seem to
spontaneously appear and disappear from the house at random. Each time a
computer disappears, a more advanced model appears that promises more
speed and hard disk space but still never seems to have more speed or as
much room as the previous computer model that it replaced.
A final note of thanks must go to the Chinese and Russians who’ve translated
my other books, Microsoft Office For Dummies and Visual Basic For Dummies.
The Chinese and Russian editions are the only foreign translations of my books
ever to include my previously published references to General Dynamics as a
“bomb factory.” Whether translators in other countries purposely omitted this
humorous reference or whether it’s just a coincidence that only the Chinese
and Russian editions included this reference is unknown.
Still, this fact alone provides an endless source of amusement to think that
Chinese and Russian readers are privy to an American joking about his
country’s nuclear missile factories, while readers in other countries are not.
For that reason alone, the Chinese and Russian translators of my books have
my eternal gratitude and blessing, not because they happen to be Chinese or
Russian, but because they appear to be able to appreciate a joke.
549979 FM.qxd 11/6/03 1:46 PM Page v
Publisher’s Acknowledgments
We’re proud of this book; please send us your comments through our online registration form
located at www.dummies.com/register/.
Some of the people who helped bring this book to market include the following:
Acquisitions, Editorial, and
Media Development
Project Editor: Andrea C. Boucher
(Previous Edition: Linda Morris)
Acquisitions Editor: Bob Woerner
Technical Editor: Allen Wyatt
Editorial Manager: Carol Sheehan
Permissions Editor: Carmen Krikorian,
Senior Permissions Editor
Media Development Specialist: Travis Silvers
Media Development Manager: Laura VanWinkle
Media Development Supervisor:
Richard Graves
Editorial Assistant: Amanda Foxworth
Cartoons: Rich Tennant (www.the5thwave.com)
Production
Project Coordinator: Erin Smith
Layout and Graphics: Seth Conley,
Michael Kruzil, Barry Offringa,
Lynsey Osborne, Heather Ryan,
Shae Wilson, Melanie Wolven
Proofreaders: TECHBOOKS Production
Services, Carl William Pierce, Brian H. Walls
Indexer: TECHBOOKS Production Service
Publishing and Editorial for Technology Dummies
Richard Swadley, Vice President and Executive Group Publisher
Andy Cummings, Vice President and Publisher
Mary C. Corder, Editorial Director
Publishing for Consumer Dummies
Diane Graves Steele, Vice President and Publisher
Joyce Pepple, Acquisitions Director
Composition Services
Gerry Fahey, Vice President of Production Services
Debbie Stailey, Director of Composition Services
549979 FM.qxd 11/6/03 1:46 PM Page vi
Contents at a Glance
Introduction ................................................................1
Part I: Programming a Computer ...................................7
Chapter 1: Learning Computer Programming for the First Time ................................9
Chapter 2: All about Programming Languages ............................................................19
Chapter 3: How to Write a Program ..............................................................................37
Chapter 4: The Tools of a Computer Programmer ......................................................47
Part II: Learning Programming with Liberty BASIC ......59
Chapter 5: Getting Your Hands on a Real Language: Liberty BASIC .........................61
Chapter 6: Handling Input and Output .........................................................................71
Chapter 7: Variables, Constants, and Comments ........................................................79
Chapter 8: Crunching Numbers and Playing with Strings ..........................................95
Chapter 9: Making Decisions with Control Statements ............................................111
Chapter 10: Repeating Yourself with Loops ...............................................................129
Part III: Advanced Programming
with Liberty BASIC ..................................................139
Chapter 11: Writing Large Programs by Using Subprograms ..................................141
Chapter 12: Drawing Pictures and Making Noise ......................................................161
Chapter 13: Saving and Retrieving Stuff in Files ........................................................175
Chapter 14: Creating a User Interface .........................................................................191
Chapter 15: Debugging Programs ................................................................................215
Part IV: Dealing with Data Structures .......................223
Chapter 16: Storing Stuff in Arrays ..............................................................................225
Chapter 17: Lumping Related Data in Records ..........................................................235
Chapter 18: Linked Lists and Pointers ........................................................................241
Chapter 19: Playing with Object-Oriented Programming .........................................255
Part V: Algorithms: Telling the
Computer What to Do ...............................................267
Chapter 20: Sorting .......................................................................................................269
Chapter 21: Searching ...................................................................................................287
Chapter 22: Optimizing Your Code ..............................................................................299
549979 FM.qxd 11/6/03 1:46 PM Page vii
Part VI: Internet Programming ..................................309
Chapter 23: Playing with HTML ...................................................................................311
Chapter 24: Making Interactive Web Pages with JavaScript ....................................339
Chapter 25 Using Java Applets on Web Pages ...........................................................351
Part VII: The Part of Tens .........................................359
Chapter 26: Ten Cool Programming Careers ..............................................................361
Chapter 27: Ten Additional Programming Resources ...............................................371
Appendix: About the CD ...............................................................................................387
Bonus Chapter: Programming in Python....................CD-1
Index ......................................................................395
End-User License Agreement .....................................413
549979 FM.qxd 11/6/03 1:46 PM Page viii
Table of Contents
Introduction .................................................................1
Who Should Buy This Book ...........................................................................2
How This Book Is Organized ..........................................................................2
Part I: Programming a Computer .........................................................2
Part II: Learning Programming with Liberty BASIC ...........................3
Part III: Advanced Programming with Liberty BASIC ........................3
Part IV: Dealing with Data Structures .................................................3
Part V: Algorithms: Telling the Computer What to Do .....................4
Part VI: Internet Programming .............................................................4
Part VII: The Part of Tens .....................................................................4
How to Use This Book ....................................................................................5
Foolish assumptions .............................................................................5
Icons used in this book .........................................................................5
Part I: Programming a Computer ...................................7
Chapter 1: Learning Computer Programming for the First Time . . . . . .9
Why Learn Computer Programming? ...........................................................9
How Does a Computer Program Work? ......................................................13
Programming is problem-solving ......................................................14
Programming isn’t difficult; it’s just time-consuming .....................15
What Do I Need to Know to Program a Computer? ..................................16
Chapter 2: All about Programming Languages . . . . . . . . . . . . . . . . . . .19
Why So Many Different Programming Languages? ...................................19
The joy of assembly language ............................................................20
C: The portable assembler .................................................................22
High-level programming languages ...................................................24
Rapid Application Development (RAD)
programming languages ..................................................................27
Database programming languages ....................................................29
Scripting programming languages ....................................................30
Web-page programming languages ...................................................32
So What’s the Best Programming Language to Learn? .............................34
Chapter 3: How to Write a Program . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
Before You Write Your Program ..................................................................37
The program’s users ...........................................................................38
The target computer ...........................................................................38
Your own programming skill ..............................................................39
549979 FM.qxd 11/6/03 1:46 PM Page ix
x Beginning Programming For Dummies, 3rd Edition
The Technical Details of Writing a Program ..............................................40
Prototyping ..........................................................................................41
Choosing a programming language ...................................................42
Defining how the program should work ...........................................43
The Life Cycle of a Typical Program ...........................................................44
The development cycle ......................................................................44
The maintenance cycle .......................................................................45
The upgrade cycle ...............................................................................46
Chapter 4: The Tools of a Computer Programmer . . . . . . . . . . . . . . . . .47
Writing Programs in an Editor .....................................................................48
Using a Compiler or an Interpreter .............................................................50
Compilers .............................................................................................50
Interpreters ..........................................................................................51
P-code: A combination compiler and interpreter ...........................51
So what do I use? .................................................................................53
Squashing Bugs with a Debugger ................................................................53
Writing a Help File .........................................................................................55
Creating an Installation Program ................................................................56
Part II: Learning Programming with Liberty BASIC .......59
Chapter 5: Getting Your Hands on a Real Language:
Liberty BASIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
Why Learn Liberty BASIC? ...........................................................................62
Liberty BASIC is (almost) free ...........................................................62
Liberty BASIC is easy ..........................................................................62
Liberty BASIC runs on Windows .......................................................62
You can start using Liberty BASIC today .........................................63
Installing Liberty BASIC ................................................................................63
Loading Liberty BASIC ..................................................................................64
Your First Liberty BASIC Program ...............................................................64
Running a Liberty BASIC program .....................................................65
Saving a Liberty BASIC program ........................................................66
Loading or starting a Liberty BASIC program ..................................67
Using Keystroke Commands in Liberty BASIC ..........................................68
Getting Help Using Liberty BASIC ...............................................................69
Exiting Liberty BASIC ....................................................................................70
Chapter 6: Handling Input and Output . . . . . . . . . . . . . . . . . . . . . . . . . . .71
Inputting and Outputting Data: The Old-Fashioned Way .........................71
Inputting and Outputting Data: The Modern Way .....................................74
Getting input ........................................................................................74
Displaying output ................................................................................75
Sending Data to the Printer ..........................................................................76
549979 FM.qxd 11/6/03 1:46 PM Page x
Chapter 7: Variables, Constants, and Comments . . . . . . . . . . . . . . . . .79
Storing Data in Variables ..............................................................................80
Creating a variable ..............................................................................81
Assigning a value to a variable ..........................................................83
Declaring your variables ....................................................................87
Using Constants .............................................................................................90
Commenting Your Code ...............................................................................92
Chapter 8: Crunching Numbers and Playing with Strings . . . . . . . . .95
Adding, Subtracting, Dividing, and Multiplying ........................................95
Using variables ....................................................................................96
Working with precedence ...................................................................97
Using parentheses ...............................................................................99
Using Liberty BASIC’s Built-In Math Functions .......................................100
Manipulating Strings ...................................................................................101
Declaring variables as strings ..........................................................102
Smashing strings together ...............................................................103
Playing with Liberty BASIC’s String Functions ........................................103
Playing with UPPERCASE and lowercase .......................................104
Counting the length of a string ........................................................104
Trimming the front and back of a string .........................................105
Inserting spaces .................................................................................106
Yanking characters out of a string ..................................................106
Looking for a string inside another string ......................................107
Converting strings into numbers (and vice versa) .......................108
Chapter 9: Making Decisions with Control Statements . . . . . . . . . .111
Using Boolean Expressions ........................................................................111
Using variables in Boolean expressions .........................................113
Using Boolean operators ..................................................................114
Exploring IF THEN Statements ..................................................................119
IF THEN ELSE statements .................................................................120
Working with SELECT CASE Statements ..................................................121
Checking a range of values ...............................................................124
Checking a relational operator ........................................................125
Chapter 10: Repeating Yourself with Loops . . . . . . . . . . . . . . . . . . . . .129
Using the WHILE-WEND Loop ....................................................................130
Exiting a WHILE-WEND loop prematurely ......................................131
Endless loops #1: Failing to modify the Boolean expression
inside the loop ...............................................................................132
Endless loops #2: Failing to initialize a Boolean expression
outside the loop .............................................................................133
Looping a Fixed Number of Times ............................................................134
Counting with different numbers ....................................................135
Counting in increments ....................................................................135
Exiting a FOR-NEXT loop prematurely ............................................137
xi Table of Contents
549979 FM.qxd 11/6/03 1:46 PM Page xi
Part III: Advanced Programming
with Liberty BASIC ..................................................139
Chapter 11: Writing Large Programs by Using Subprograms . . . . . .141
Breaking the Bad Programming Habits of the Past .................................141
Introducing Structured Programming ......................................................144
Sequential instructions .....................................................................144
Branching instructions .....................................................................144
Looping instructions .........................................................................145
Putting structured programming into practice .............................146
Writing Modular Programs .........................................................................147
Using Subroutines .......................................................................................150
Defining a subroutine ........................................................................151
Passing data to a subroutine ............................................................151
Calling a subroutine ..........................................................................153
Exiting prematurely from a subroutine ..........................................154
Using Functions ...........................................................................................155
Defining a function ............................................................................155
Passing data to a function ................................................................156
Calling a function ...............................................................................156
Exiting prematurely from a function ...............................................158
Passing Data by Value or by Reference ....................................................158
Chapter 12: Drawing Pictures and Making Noise . . . . . . . . . . . . . . .161
Creating a Graphics Control ......................................................................161
Using Turtle Graphics .................................................................................162
Defining line thickness ......................................................................166
Defining line colors ...........................................................................167
Drawing Circles ...........................................................................................168
Drawing Boxes .............................................................................................170
Displaying text .............................................................................................171
Making Sounds ............................................................................................172
Making a beeping noise ....................................................................173
Playing WAV files ................................................................................173
Chapter 13: Saving and Retrieving Stuff in Files . . . . . . . . . . . . . . . . .175
Storing Stuff in Text Files ............................................................................175
Creating a new text file .....................................................................176
Putting stuff in a text file ..................................................................176
Adding new stuff to an existing text file .........................................177
Retrieving data from a text file ........................................................178
Storing Stuff in Random-Access Files .......................................................180
Creating a new random-access file ..................................................181
Saving data into a random-access file ............................................183
Retrieving data from a random-access file .....................................184
xii Beginning Programming For Dummies, 3rd Edition
549979 FM.qxd 11/6/03 1:46 PM Page xii
Saving and Retrieving Data in a Binary File .............................................186
Creating a new binary file .................................................................186
Saving stuff in a binary file ...............................................................187
Changing stuff in a binary file ..........................................................187
Retrieving stuff from a binary file ...................................................189
Chapter 14: Creating a User Interface . . . . . . . . . . . . . . . . . . . . . . . . . .191
Designing a Window ....................................................................................191
Creating a new window .....................................................................192
Defining the size and location of a window ...................................193
Adding color to a window ................................................................194
Putting Pull-Down Menus in a Window ....................................................195
Making Pop-Up Menus ................................................................................198
Putting Controls in a Window ....................................................................200
Creating a command button ............................................................200
Displaying text ...................................................................................203
Creating a check box .........................................................................204
Creating a radio button .....................................................................205
Creating text boxes ...........................................................................207
Creating list boxes .............................................................................209
Creating combo boxes ......................................................................211
Creating group boxes ........................................................................213
Chapter 15: Debugging Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215
Anatomy of a Computer Bug ......................................................................215
Syntax Errors ...............................................................................................216
Run-Time Errors ..........................................................................................218
Fun with Logic Errors .................................................................................219
Stepping line by line ..........................................................................220
Tracing through your program ........................................................221
Part IV: Dealing with Data Structures ........................223
Chapter 16: Storing Stuff in Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . .225
Making an Array ..........................................................................................226
Storing (and Retrieving) Data in an Array ...............................................228
Making a Multidimensional Array .............................................................230
Creating Dynamic Arrays ...........................................................................232
Chapter 17: Lumping Related Data in Records . . . . . . . . . . . . . . . . . .235
Creating a Record ........................................................................................236
Manipulating Data in Records ...................................................................237
Storing data in a record ....................................................................237
Retrieving data from a record ..........................................................238
Using Records with Arrays ........................................................................239
xiii Table of Contents
549979 FM.qxd 11/6/03 1:46 PM Page xiii
Chapter 18: Linked Lists and Pointers . . . . . . . . . . . . . . . . . . . . . . . . . .241
Starting with a Pointer ................................................................................241
Defining the parts of a linked list ....................................................243
Creating a linked list .........................................................................245
Managing a linked list .......................................................................247
Making Data Structures with Linked Lists ...............................................249
Double-linked lists .............................................................................249
Circular-linked lists ...........................................................................250
Stacks ..................................................................................................251
Queues ................................................................................................252
Trees ...................................................................................................253
Graphs .................................................................................................254
Chapter 19: Playing with Object-Oriented Programming . . . . . . . . .255
The Problem with Software .......................................................................256
Ways to Make Programming Easier ..........................................................256
Breaking Programs into Objects ...............................................................258
How to use objects ............................................................................259
How to create an object ....................................................................261
Writing an object’s methods ............................................................262
Creating an object .............................................................................263
Choosing an Object-Oriented Language ...................................................265
Part V: Algorithms: Telling the Computer
What to Do ..............................................................267
Chapter 20: Sorting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .269
Insertion Sort ...............................................................................................270
Bubble Sort ..................................................................................................273
Shell Sort ......................................................................................................276
Quicksort ......................................................................................................280
Sorting Algorithms ......................................................................................283
Chapter 21: Searching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287
Searching Sequentially ...............................................................................287
Performing a Binary Search .......................................................................289
Hashing .........................................................................................................292
Dealing with collisions ......................................................................293
Searching by using a hash function ................................................294
Picking a Searching Algorithm ...................................................................297
xiv Beginning Programming For Dummies, 3rd Edition
549979 FM.qxd 11/6/03 1:46 PM Page xiv