Siêu thị PDFTải ngay đi em, trời tối mất

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
PREMIUM
Số trang
433
Kích thước
44.3 MB
Định dạng
PDF
Lượt xem
1583

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 permis￾sion 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 WAR￾RANTIES 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 APPROPRI￾ATE. 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, CONSE￾QUENTIAL, 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 corpo￾ration 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 incom￾prehensible.

After deciphering the manuals and learning to master the arcane commands

of the ancient MS-DOS version 1.25 operating system, Wallace decided to pub￾lish 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 maga￾zine 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 devel￾oping 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

Tải ngay đi em, còn do dự, trời tối mất!