382 Part VII: The Part of Tens ߜ The Delphi Source (at www.delphisource.com/) features source code just for Delphi programmers. ߜ ABC: All BASIC Code (at www.allbasiccode.com/) provides source code for nearly all varieties of BASIC, including Liberty BASIC, QBASIC, QuickBasic, and Visual Basic. ߜ The JavaScript Source (at http://javascript.internet.com/) offers loads of free source code for programming in JavaScript. ߜ The cprogramming.com site (at www.cprogramming.com) offers lots of source code for C/C++ programmers to use and enjoy. Joining a Local User Group Programming can prove lonely and difficult in isolation. If you’re lucky (or unlucky, depending on your point of view) enough to live in a big city, you can perhaps find a local programming user group. User groups meet regularly — usually weekly or monthly — and enable pro- grammers to share tips and information with one another concerning their favorite language, such as C/C++, Java, Visual Basic, or Delphi. Many user groups advertise in local computer magazines and newsletters, which you can often find in your favorite computer store. For another way to find a user group in your area, visit the Web site of your favorite compiler company (such as www.microsoft.com or www.borland.com). Company Web sites often list user group meetings in different cities. Frequenting Usenet Newsgroups Learning anything can prove much easier if you have some friends to help you out. If you don’t have any knowledgeable programming friends nearby, use the next best resource — a Usenet newsgroup. Newsgroups act as electronic bulletin boards, where anyone can leave a mes- sage asking for help. Complete strangers from all around the world can give you advice or information to answer your question. If you browse through newsgroups long enough, you can often respond to other people’s messages and give them some help as well. Nearly every programming language has a newsgroup where loyal pro- grammers gather and swap tips, tricks, and news. Check out the following newsgroups:
383Chapter 27: Ten Additional Programming Resources ߜ comp.lang is a general-purpose programming newsgroup. ߜ comp.lang.basic is a newsgroup for BASIC programming enthusiasts. ߜ comp.lang.c is for C programming fanatics and followers. ߜ comp.lang.c++ enables you to learn C++ from this newsgroup. ߜ comp.lang.delphi enables you to band together with other Delphi programmers. ߜ comp.lang.java.help is a great place for getting help with program- ming and using Java. ߜ comp.lang.pascal covers Pascal programming, including some Delphi programming news and information. This list is just a short sampling of available programming newsgroups. With a little bit of searching, you can find newsgroups for other programming lan- guages and specific compilers such as Visual Basic, C++Builder, and RealBasic. Playing Core War People tend to learn faster and more effectively if they’re having fun (which is a lesson that public schools and copycat book publishers still haven’t figured out yet). Although writing a program that can calculate a second-order differ- ential equation may improve your programming skills, it may also make you think that programming is extremely boring. So to keep you from getting bored and to show you that programming can actually prove a lot of fun, you can play one of many programming games available for free (or for a nominal price). The purpose of programming games is to help sharpen your programming skills. If you want to win, you must learn to write the smallest, fastest, and most efficient programs — just as in real life. The granddaddy of all programming games is Core War. In the old days, computers didn’t use floppy or hard disks. Instead, they stored data on a magnetically-charged doughnut-shaped device called core memory or just core for short. The idea behind Core War is to write a program that you “store” in the core memory of an imaginary mainframe computer. To play Core War, each player must write a program by using a simplified version of assembly language, dubbed Red Code. Each program must search for enemy programs and erase them from the computer’s core memory. The winner is the player whose pro- gram is the last surviving program in core memory.
384 Part VII: The Part of Tens Although Core War is popular, it’s not a very visually exciting game to watch. All you see are the various programs stalking one another in core memory and trying to erase the instructions of enemy programs, which often looks no more interesting than watching a visual depiction of defragmenting your hard disk. For more information about Core War, visit one of the following sites: ߜ www.ecst.csuchico.edu/~pizza/koth ߜ www.koth.org ߜ ftp.csua.berkeley.edu/pub/corewar To exchange messages with other Core War fanatics, visit the news:rec. games.corewar newsgroup, where you can learn about the latest Core War tournaments and start writing your own killer programs. Programming a Battling Robot The Core War programming game (described in the preceding section) doesn’t offer great graphics to hold a player’s attention. To satisfy the players’ need for visual appeal, rival programming games incorporate more adventurous graphics. And, of course, what can prove any more appealing than war and gladiatorial combat? Instead of sending human gladiators into an arena to fight to the death, however, some programming games provide an imaginary arena where battling robots fight to the death. Each robot incorporates identical capabilities to move, search, and shoot. But the way that each player programs his robot determines the actual actions of each robot. To program a robot, you must write a miniature pro- gram by using a simplified version of the C, C++, or Pascal language. The challenge is not only to write a program that runs correctly, but also to provide your robot with instructions that create an optimum defensive and offensive strategy for surviving, stalking, and killing enemy robots at the same time. Write a large program that gives your robot limited choices, and your robot probably gets blown up within seconds. Write a small program that runs quickly and provides your robot with enough intelligence to avoid damage while pummeling its opponents as often as possible, and your robot is likely to survive any battle. In addition to providing a more visually appealing way to see whose program- ming is better, battling robot games also give you a chance to practice writing
385Chapter 27: Ten Additional Programming Resources programs in your favorite language, such as C, C++, or Pascal. After you master how to control a robot using C or Pascal, you can transfer your robot programming skills to real-life programs. Most battling robot programs run only on MS-DOS. If that’s okay with you, download a free copy of a battling-robots game from one of the following Web sites: ߜ The C++ Robots game is at www.gamerz.net/c++robots/. ߜ The C-Robots and P-Robots game is at www.informatik. uni-frankfurt.de/~hbecker/pcroth.html. Toying with Lego Mindstorms Nearly every kid’s had the chance to play with Lego building blocks (and plenty of parents have had the chance to step on a Lego building block in their bare feet). Because so many kids love playing with computers, the fine people controlling the Lego empire decided to combine Legos with comput- ers, and the result is something known as Lego Mindstorms (at http:// mindstorms.lego.com). By using Lego Mindstorms, you can use Lego bricks to build a robot and then program it by using a simplified, graphically oriented programming language. Of course, if you find this simplified programming language too tame, the Lego Mindstorms Web site offers a free software developer’s toolkit that enables you to program a Lego robot by using Visual Basic. Programming a Lego robot involves pasting together blocks of instructions, similar to snap- ping together Lego building blocks. For hardcore programmers who’d rather use a language tougher than Visual Basic, visit the legOS Web site (at www.noga.de/legOS) and download tools that enable you to control your Lego Mindstorms robots by using assembly language, C, C++, Pascal, or practically any programming language that you choose. By using a copy of Lego Mindstorms and any of the free programming toolkits available, you can create your own robots out of Legos and program them to attack one another, chase your dog around the house, or run berserk and protect your house against prowlers. After you practice your programming skills with Lego Mindstorms, you can create almost anything that you want within the safe, friendly environment of Legos.
386 Part VII: The Part of Tens
Appendix About the CD Here’s just some of the stuff available on the Beginning Programming For Dummies, Third Edition, CD-ROM: ߜ Liberty BASIC: a shareware program for writing Windows programs using BASIC ߜ NS Basic: a trial program that allows you to write BASIC programs for either the PalmOS or the PocketPC handheld computer ߜ REALbasic: a demo that allows you to create Macintosh and Windows programs by drawing your user interface and then writing BASIC code to make it work ߜ Dev-C++: a freeware and open source C++ compiler that allows you to see how a compiler works and write C/C++ programs for Windows ߜ Revolution: a cross-platform trial program that lets you write programs for Windows, the Macintosh, and Linux ߜ pMARS: a freeware game program in which players write programs that stalk each other through the memory of an imaginary computer System Requirements Make sure that your computer meets the minimum system requirements that I give in the following list. If your computer doesn’t match up to most of these requirements, you may experience problems in using the contents of the CD. ߜ A PC with a Pentium (or similar processor such as a Duron, K6, Celeron, or Athlon) or faster processor or a Mac OS computer with a PowerPC processor. ߜ Microsoft Windows 98 or later or Mac OS system software 8.6 or later.
388 Beginning Programming For Dummies, 3rd Edition ߜ At least 32MB total RAM on your computer. ߜ A CD-ROM drive. If you need more information on the basics, check out PCs For Dummies, 7th Edition, by Dan Gookin; Macs For Dummies, 7th Edition, by David Pogue; iMac For Dummies, by David Pogue; or Windows Me Millennium Edition For Dummies, Windows 98 For Dummies, or Windows XP For Dummies, 2nd Edition, all by Andy Rathbone (all published by Wiley Publishing). Using the CD with Microsoft Windows To install from the CD to your hard drive, follow these steps: 1. Insert the CD into your computer’s CD-ROM drive. 2. Click the Start button and choose Run from the menu. 3. Type D:\\ where D is the letter of your CD-ROM drive. 4. Double-click the file called License.txt. This file contains the end-user license that you agree to by using the CD. When you are done reading the license, close the program, most likely NotePad, that displayed the file. 5. Double click the file called Readme.txt. This file contains instructions about installing the software from this CD. It might be helpful to leave this text file open while you are using the CD. 6. Double-click the folder for the software you are interested in. Be sure to read the descriptions of the programs in the next section of this appendix (much of this information also shows up in the Readme file). These descriptions will give you more precise information about the programs’ folder names, and about finding and running the installer program. 7. Find the file called Setup.exe, or Install.exe, or something similar, and double-click on that file. The program’s installer will walk you through the process of setting up your new software. To run some of the programs on the Beginning Programming For Dummies CD-ROM, you may need to keep the CD inside your CD-ROM drive. This requirement is a good thing. Otherwise, you may need to install a very large chunk of the program to your hard drive, which can possibly keep you from installing other software.
389Appendix: About the CD Using the CD with Mac OS To install the items from the CD to your Mac’s hard drive, follow these steps: 1. Insert the CD into your computer’s CD-ROM drive. In a moment, an icon representing the CD you just inserted appears on your Mac desktop. The icon probably looks like a CD-ROM. 2. Double-click the CD icon to show the CD’s contents. 3. Double-click the License Agreement icon. 4. Double-click the Read Me First icon. The Read Me First text file contains information about the CD’s pro- grams and any last-minute instructions that you may need to correctly install them. 5. To install most programs, open the program folder and double-click the Install (or Installer) icon. Sometimes the installers are actually self-extracting archives, which just means that the program files are bundled up into an archive, and this self-extractor unbundles the files and places them on your hard drive. This kind of program is often known as a SEA file. Double-click anything with SEA in the title, and it runs just like an installer. 6. For those programs don’t come with installers, just drag the program’s folder from the CD window and drop it onto your hard drive icon. After you install the programs that you want, you can eject the CD. Carefully place it back in the plastic jacket of the book for safekeeping. Using the CD with Linux To install the items from the CD to your hard drive, follow these steps: 1. Log in as root. 2. Insert the CD into your computer’s CD-ROM drive. 3. If your computer has Auto-Mount enabled, wait for the CD to mount. Otherwise, follow these steps: a. Command line instructions: At the command prompt type: mount /dev/cdrom /mnt/cdrom
390 Beginning Programming For Dummies, 3rd Edition (This mounts the cdrom device to the mnt/cdrom directory. If your device has a different name, change cdrom to that device name — for example, cdrom1.) b. Graphical: Right-click the CD-ROM icon on the desktop and choose Mount CD-ROM. This mounts your CD-ROM. 4. Browse the CD and follow the individual installation instructions for the products listed below. 5. To remove the CD from your CD-ROM drive, follow these steps: a. Command line instructions: At the command prompt type: umount /mnt/cdrom b. Graphical: Right-click the CD-ROM icon on the desktop and choose UMount CD-ROM. This un-mounts your CD-ROM. When you have installed the programs that you want, you can eject the CD. Carefully place it back in the plastic jacket of the book for safekeeping. What You’ll Find This CD is crammed with a variety of different programming languages so that you can experiment and explore different languages from the comfort and convenience of your own computer. Just as studying different foreign lan- guages can give you a broader understanding of human communication, so can studying a range of computer programming languages give you a broader understanding of computer programming in general. Software Adobe Acrobat, from Adobe (www.adobe.com). Adobe Acrobat enables you to read Acrobat PDF files on a Windows or Macintosh computer. BBedit, from Bare Bones Software (www.barebones.com), BBEdit is a text editor for the Macintosh, which lets you write any type of programs including HTML code to design your own web pages. C++ Builder, from Borland International (www.borland.com). C++ Builder allows you to visually design your user interface and then use the C++ pro- gramming language to make it work. Borland plans to make C++ Builder into a cross-platform compiler so you can write programs for both Windows and Linux.
391Appendix: About the CD C++ Robots, a game where you program a battling robot using the C++ pro- gramming language. Well-written programs survive awhile poorly written pro- grams (those that don’t work right or run too slowly) get wiped out on the battlefield. (http://www.gamerz.net/rrognlie/projects.html) C# Builder Personal, from Borland International (www.borland.com). C# Builder allows you to use Microsoft’s newest C# programming language to create Windows programs. Delphi, from Borland International (www.borland.com). Delphi is a rapid- application development tool based on the Pascal programming language. By copying source code between Linux and Delphi, you can create applications for both Windows and Linux. Dev-C++, from Bloodshed Software (at www.bloodshed.net). Dev-C++ is a complete C/C++ programming environment for creating Windows programs. Free Pascal, from Free Pascal.org (at www.freepascal.org). Free Pascal is a Pascal compiler that closely follows the syntax of Borland Pascal version 7.0 and Delphi. Future BASIC3, from Staz Software (at www.stazsoftware.com). Future BASIC3 enables you to write applications for the Macintosh by using the BASIC programming language. IBM® Robocode V1.0.6, battling robot game from IBM, which lets you pro- gram a robot in Java (http://robocode.alphaworks.ibm.com/home/ home.html). Poorly written programs get killed while well-written programs wipe out the competition and survive. JBuilder, from Borland International (www.borland.com). JBuilder is a rapid- application development tool for writing programs using the Java program- ming language. Because Java programs can run on different operating systems, JBuilder programs can as well, including Windows and Linux. Kylix, from Borland International (www.borland.com). Kylix is the Linux ver- sion of Delphi, which allows you to use Pascal to write Linux applications. By copying source code between Linux and Delphi, you can create applications for both Windows and Linux. Liberty BASIC, from ShopTalk Systems (at www.libertybasic.com). Liberty BASIC offers a BASIC compiler for Windows capable of creating complete Windows applications. MacPerl, a Macintosh version of the popular Perl programming language, often used to program web sites but also capable of creating general purpose programs too (www.macperl.com).
392 Beginning Programming For Dummies, 3rd Edition NS Basic, from the NSBasic Corporation (www.nsbasic.com). This demo ver- sion allows you to write BASIC programs for the handheld PocketPC operat- ing system. Perl, a popular programming language, derived from the C language, often used to create programs for web sites. If you’re going to create web sites that do more than just display text and graphics, you’ll probably need to use Perl. (www.perl.com). pMARS, from KOTH.org (at www.koth.org). Core Wars programming game where contestants write their own programs that try to wipe other compet- ing programs from an imaginary computer’s memory. “Programming in Python” bonus chapter. A short chapter, stored in an Adobe Acrobat PDF file, that explains the Python programming language. Python, from the Python Consortium (at www.python.org). Python is an object-oriented scripting language that people often use for creating Internet applications. Programmers often compare Python to languages such as Perl and Java. REALbasic, from REAL Software (at www.realbasic.com). REALbasic enables you to draw your user interface and write BASIC code to create appli- cations for the Macintosh, Linux, or Windows. Revolution, from Runtime Revolution (at www.runrev.com). Revolution is a cross-platform, HyperCard clone that enables you to create stacks of graph- ics and text that you can link together to create your own programs. Ruby, a free programming language designed to teach the principles of object-oriented programming. (www.ruby-lang.org/en). Ruby programs can run on a wide variety of operating systems including Windows, Linux, Macintosh, and even OS/2. TextPad, simple, yet powerful text editor for Windows to let you write pro- grams or HTML code to design your own web pages. (www.textpad.com) WinAce, a trial version of a file-compression program used to smash multiple files into a single file and compress their size to make it easier to transfer data from one computer to another. (www.winace.com) WinRAR, a trial version of another file-compression program used to smash multiple files into a single file and compress their size to make it easier to transfer data from one computer to another. (www.rarlabs.com) Shareware programs are fully functional, free, trial versions of copyrighted programs. If you like particular programs, register with their authors for a nominal fee and receive licenses, enhanced versions, and technical support.
393Appendix: About the CD Freeware programs are free, copyrighted games, applications, and utilities. You can copy them to as many PCs as you like — free — but they have no technical support. GNU software is governed by its own license, which you find inside the folder of the GNU software. You face no restrictions on distribution of this software. See the GNU license for more details. Trial, demo, or evaluation versions are usually limited either by time or func- tionality (such as an inability to save projects). If You’ve Got Problems (Of the CD Kind) I tried my best to compile programs that work on most computers with the minimum system requirements. Alas, your computer may differ, and some programs may not work correctly for some reason. The two likeliest problems are that your machine doesn’t have enough memory (RAM) for the programs that you want to use or that you have other programs running that are affecting installation or running of a program. If you get error messages such as Not enough memory or Setup cannot continue, try one or more of the following methods and then try using the software again: ߜ Turn off any antivirus software that’s on your computer. Installers sometimes mimic virus activity and may make your computer incor- rectly believe that a virus is infecting it. ߜ Close all running programs. The more programs that you’re running, the less memory is available to other programs. Installers also typically update files and programs; if you keep other programs running, installa- tion may not work correctly. ߜ In Windows, close the CD interface and run demos or installations directly from Windows Explorer. The interface itself can tie up system memory or even conflict with certain kinds of interactive demos. Use Windows Explorer to browse the files on the CD and launch installers or demos. ߜ Have your local computer store add more RAM to your computer. This course is, admittedly, a drastic and somewhat expensive step. If you have a Windows 95 PC or a Mac OS computer with a PowerPC chip, how- ever, adding more memory can really help the speed of your computer and enable more programs to run at the same time.
394 Beginning Programming For Dummies, 3rd Edition If you still have trouble with the CD-ROM, please call the Wiley Product Technical Support phone number: (800) 762-2974. Outside the United States, call 1(317) 572-3994. You can also contact Wiley Product Technical Support through the internet at: www.wiley.com/techsupport. Wiley Publishing will provide technical support only for installation and other general quality con- trol items; for technical support on the applications themselves, consult the program’s vendor or author. To place additional orders or to request information about other Wiley prod- ucts, please call (800) 225-5945.
Index • Symbols • <= (less than sign, equals •A• sign) BASIC relational & (ampersand) menu operator, 112 A tag (HTML), 325, 326 shortcut operator, 196 ABC: All BASIC Code Web <! -- (less than sign, ’ (apostrophe) BASIC exclamation mark, site, 382 comment prefix, 92, 93 dash, dash,) HTML ABS function (Liberty comment prefix, 315 * (asterisk) BASIC multi- BASIC), 100 plication operator, 96 <> (less than sign, greater ACS function (Liberty than sign) BASIC \\ (backslash) BASIC relational operator, 112 BASIC), 100 graphic control text Ada, 26, 378 prefix, 171 – (minus sign) BASIC sub- addition, 85, 95–96, 98 traction operator, 96 Adobe Acrobat software | (bar) BASIC menu com- mand separator, 199 ( ) (parentheses) BASIC (on the CD), 390 operator delimiters, 99 alert command { } (curly brackets) C text delimiters, 73 + (plus sign) (JavaScript), 343 JavaScript function BASIC addition algorithm instruction operator, 96 delimiters, 346 BASIC concatenation described, 287 operator, 103 sorting algorithm, 269, [ ] (square brackets) BASIC JavaScript subprogram concatenation 270, 300–301 delimiters, 73 operator, 342 ALIGN attribute JavaScript variable ^ (caret) BASIC prefix, 342 HTML, 319, 328 exponentiation Java applet, 355 operator, 96 “ ” (quotation marks, alpha testing, 45, 46 double) American Standard Code --> (dash, dash, greater BASIC string delimiters, than sign) HTML 72 for Information comment suffix, 315 HTML command Interchange format, 49, delimiters, 332 311, 312 $ (dollar sign) BASIC ampersand (&) menu variable name suffix, 83 ‘ ’ (quotation marks, single) shortcut operator, 196 HTML command AND operator (Liberty = (equals sign) delimiters, 332 BASIC), 115–116 BASIC relational animation, choosing career operator, 112 ; (semicolon) BASIC SPACE in, 363–364 BASIC variable function suffix, 77 Animation Magazine Web declaration site, 363 operator, 83 / (slash) AntiOnline Web site, 367 BASIC division apostrophe (’) BASIC > (greater than sign) BASIC operator, 96 comment prefix, 92, 93 relational operator, 112 HTML end tag suffix, APPEND command (Liberty 312 BASIC), 178 >= (greater than sign, Apple Open Source Web equals sign) BASIC _ (underscore) BASIC line site, 368 relational operator, 112 continuation character, 166, 198 < (less than sign) BASIC relational operator, 112
396 Beginning Programming For Dummies, 3rd Edition AppleScript, 31 assembly language, naming program file, 66 applet, Java. See Java 20–22, 42 Notice dialog box, 76, 85 OOP support, 255 applet asterisk (*) BASIC multi- opening file written in, array plication operator, 96 67–68 collection, 234 ATN function (Liberty Pascal compared, 25 creating, 226–227 BASIC), 100 running program written data type, 226 deleting data from, 247 audio, outputting, 72, in, 65–66, 68 described, 225–226 172–174 saving program written in, dynamic, 232–234 hash function, applying Axon Idea Processor 66–67, 68 software, 10, 12 source code, to, 292–296 index, 226–227 •B• downloading, 382 linked list compared, 241 BBedit software (on the list box, populating B HTML tag, 318 CD), 390 from, 209 programming language, 22 BEEP command (Liberty location in, referencing, BACKCOLOR command BASIC), 173 228, 231–232 (Liberty BASIC), 169, BEGIN command looping through, 228–229 170, 172 memory considerations, (Pascal), 247 BACKGROUND attribute Beginner’s All-purpose 232, 241, 247 (HTML), 329 multidimensional, 230–232 Symbolic Instruction naming, 226 BackgroundColor Code. See BASIC number array, 226 command (Liberty beta testing, 45, 46 optimizing, 300 BASIC), 194 BGCOLOR attribute (HTML), record, using with, 319–320 backslash (\\) BASIC Big-O notation, 270 239–240 graphic control text BlackCode Web site, 367 retrieving data from, prefix, 171 bloatware, 299 BLOCKQUOTE tag 228–229 bar (|) BASIC menu com- (HTML), 317 searching, 288–289, 291, mand separator, 199 Bloodshed Software Web site, 377 292–296 BAS files, 66 BMPBUTTON command sizing, 227, 230–231, BASIC (Beginner’s All- (Liberty BASIC), 201–202 232–233, 300 purpose Symbolic BODY tag (HTML), 314, 329 sort operation, using in, Instruction Code). See bookmark, browser, 314 also specific Boolean expression, 272–273, 284 implementation 111–119, 131–133, static, 232 case sensitivity, 65, 80–81, 301–302 string array, 209, 226 108, 217 Borland structure, changing, compiler, 52, 63, 376–377 C++ Builder compiler (on constant support, 91 the CD), 307, 373, 374, 232–233, 234, 242 ending program, 85 377, 390 variable, relation to, 226 function as subprogram, JBuilder compiler (on the ASCII (American Standard 150, 151 CD), 353, 356, 374, interpreter, 62–63, 377 377, 391 Code for Information introduced, 25 JBuilder language, 27, 373 Interchange) format, linked list support, 241 49, 311, 312 Linux, running on, 62 ASN function (Liberty Macintosh, programming BASIC), 100 for, 61, 374, 377 assembler, 21, 22–24
Index 397 Kylix compiler (on BYREF command (Liberty demand, 10 the CD), 27, 39, BASIC), 160 encryption, 364–365 377–378, 391 game programming, byte code. See p-code BOX command (Liberty 361–363 BASIC), 170–171 •C• Internet programming, BOXFILLED command C++ Builder compiler (on 365–366 (Liberty BASIC), 170 the CD), 307, 373, 374, language specialty, 377, 390 BR tag (HTML), 317 choosing, 34–35, brackets, curly ({ }) C# Builder Personal 371–372 software (on niche-market C text delimiters, 73 the CD), 391 programming, 369 JavaScript function open-source project, using C programming language. as starting point, 368 instruction See C/C++ security, 364–365, 366–367 delimiters, 346 programming language selling your software, 370 brackets, square ([ ]) teaching, 369–370 BASIC subprogram C# programming Career Moves Web site, 366 delimiters, 73 language, 372 caret (^) BASIC branching instruction, exponentiation 144–145, 146 C++ Robots software (on operator, 96 breakpoint, 54 the CD), 385, 391 case, converting, 104 browser case sensitivity bookmark, 314 calculation, mathematical BASIC, 65, 80–81, 108, 217 HTML file, opening in, 313 absolute value, C, 80–81 HTML, rendering by, returning, 100 HTML, 327 32–33 addition, 85, 95–96, 98 Java, 80–81 introduced, 311 Boolean expression, Pascal, 80 JavaScript support, 111–119, 131–133, Catalog of Free Compilers 340, 347 301–302 and Interpreters Web Web programming constant, involving, 96–97 site, 376 support, 34 division, 84, 95–96, 98, 292 C/C++ programming bug, 53, 215–216. See also exponentiation, 96, 98 language debugging function, involving, assembly language button 100–101 compared, 22 command button, logarithm, 100, 101 background, historical, 200–202, 332–333 multiplication, 82, 85, 22–23 directory button, 349 95–96, 98, 347 case sensitivity, 80–81 HTML, creating in, 329, precedence, 97–99 char data type, 102 332–333 square root, 100, 101 class command, 261–262 input, retrieving, 201, 202, subtraction, 95–96, 98 compiler, 23, 50, 307, 206, 332–333 trigonometry, 100 377, 387 JavaScript, creating variable, assigning result computer access in, 349 to, 84–86, 96–97 functionality, 23, 24 naming, 201, 335 FOR NEXT statement, 137 radio button, 205–207, CALL command (Liberty function, 150, 151 335–337 BASIC), 153 IF ELSE statement, 305 BUTTON command (Liberty int command, 227 BASIC), 200–201 career, choosing programming as animation, 363–364 database programming, 30, 34
398 Beginning Programming For Dummies, 3rd Edition C/C++ programming Revolution, 387 text, 171–172, 319–320 language (continued) Ruby, 392 window, 194–195 system requirement, COLOR command (Liberty main command, 73 memory considerations, 387–388 BASIC), 167–168, 170, TextPad, 392 171–172 24, 243 troubleshooting, 392–393 COMBOBOX command OOP support, 24 WinAce, 392 (Liberty BASIC), portability, 23–24, 39 WinRAR, 392 211–213 postfix operator, 305 char data type (C/C++), 102 Comedy Writer software, prefix operator, 305 check box, creating, 9–10, 11 prevalence, 24 command button, creating, readability, 23, 305 204–205, 333–334 200–202, 332–333 screen, outputting text CHECKED command commenting code HTML, 314–315 to, 73 (HTML), 333, 336 JavaScript command, SELECT CASE Chipmunk Basic treating as comment, 340, 347 statement, 126 interpreter, 377 Liberty BASIC, 92–94 source code, CIA (Central Intelligence loop structure, 130 COmmon Business- downloading, 382 Agency), 365 Oriented Language. See speed, 22, 24, 50, 306–307 CIRCLE command (Liberty COBOL switch statement, 126 comp newsgroup, 383 variable, working with, 81, BASIC), 168–170 comparison class, 261–262. See also number, 112–117, 122–125 86, 90 variable value, 113–114, Visual C#, 27 OOP (object oriented 122–125 Visual C# .NET, 373 programming) compiler. See also specific Visual C++ .NET, 372, 373 class command (C/C++), compiler void command, 264 261–262 BASIC, 52, 63, 376–377 CD-ROM with this book .class files, 352 buggy, 53–54 Adobe Acrobat, 390 close command C/C++, 23, 50, 307, 377, 387 BBedit, 390 (JavaScript), 349–350 choosing appropriate, C++ Builder, 390 CLOSE command (Liberty 373–374, 376–378 C# Builder Personal, 391 BASIC), 176, 182, 186, computer type, targeting C++ Robots, 391 193 specific, 50 Core War, 391 COBOL (COmmon cross-platform, 39, 42, 373 Delphi, 391 Business-Oriented decompiling, 52–53 Dev-C++, 387, 391 Language), 22, described, 23, 50 Free Pascal, 391 24–25, 34 error checking, 308 Future Basic, 391 Code Guru Web site, 381 free versus commercial, IBM Robocode, 391 Code ➪ Run to Line 356, 372, 376 installing, 388–390 (Liberty BASIC), 220 interpreter versus, 47, 53 JBuilder, 391 CodeWarrior compiler, 353, Java, 351, 352, 353, Kylix, 391 362, 373, 374 356, 377 Liberty BASIC, 61, 387 collection (array), 234 Linux, 375, 377 MacPerl, 391 color Macintosh, 50, 51–52, NS BASIC, 387 box, 170 374–375 Perl, 391 circle, 169 optimizing, 307–308 pMARS, 387 hexadecimal, 320 “Programming in Python” HTML, 319–321 hyperlink, 320–321 bonus chapter, 391 line, 167–168 Python, 391–392 RGB, 320 REALbasic, 387
Index 399 Pascal, 377–378 C-Robots and P-Robots tracing, via, 221–222 p-code, 51–53 game Web site, 385 watchpoint, using, 54–55 speed, 306–308 Debugging window (Liberty Computer Graphics cross-platform programming, 39, 373 BASIC), 220–221 Society, 363 decompiling, 52–53 Computer Graphics World Crystal Space game Delphi (on the CD) engine, 362 Online, 364 compiler, 39, 373, 374, 377 computer type, targeting CypherNet Web site, 365 described, 391 language, 27, 306, 382 specific, 37, 38–39, •D• Delphi Source Web site, 382 45, 50 desktop icon, creating, 64 condition, testing DarkBASIC, 377 Dev-C++ compiler (on the Boolean expression, dash, dash, greater than using, 111–119, CD), 387, 391 131–133, 301–302 sign ( -- >) HTML development cycle, 44–45 IF THEN ELSE statement, comment suffix, 315 dialog box, creating in using, 112–113, 120–123 data structure, 235, IF THEN ELSEIF 249–254, 300 JavaScript, 343–345 data type DigiPen Web site, 363 statement, using, 302 array, 226 DIM command (Liberty IF THEN statement, converting, 108–110 integer, 304–305 BASIC), 88–89, 226–227 using, 119–120, number, 83, 108–110, division, 84, 95–96, 98, 292 144–145, 273, 301 304–305 DL tag (HTML), 324 optimizing, 301–303 optimizing program via DLL (dynamic link order of execution, choosing appropriate, 301–303 304–305 library), 42 SELECT CASE statement, string, 81, 83, 101–103, document.write command using, 121–127 108–110 WHILE-WEND loop, in, user-defined, 236 (JavaScript), 342, 343 130–133, 145 variable, assigning to, dollar sign ($) BASIC confirm command 81–83, 84–85, 87–90 (JavaScript), 343–344 database programming, variable name suffix, 83 CONFIRM command 29–30, 34 DOWN command (Liberty (Liberty BASIC), 192 DD tag (HTML), 324 constant debugging BASIC), 163 BASIC support, 91 breakpoint, using, 54 drawing using Liberty Basic calculation involving, logic error, 215, 219–220 96–97 maintenance cycle, place turtle graphic, 162–171 described, 79, 91–92 in, 45–46 DreamScape software, Pascal support, 91 patching buggy control, graphic, 161, program, 46 10, 11 171–172 run-time error, 215, DT tag (HTML), 324 Core War software (on the 218–219 Dummies Web site, 366 CD), 383–384, 391 software, using DUMP command (Liberty COS function (Liberty specialized, 48, 53–55 BASIC), 100 stepping through code, BASIC), 76 counter variable, 134, via, 54, 219–220 dynamic link library, 42 135–137 syntax error, 215, 216–218 cprogramming.com Web •E• site, 382 editor HTML, 313 Java, 353 JavaScript, 339 Liberty BASIC, 64–65, 68–69
400 Beginning Programming For Dummies, 3rd Edition editor (continued) FIFO (First In, First Out) Free Software overview, 48–49 linked list, 252 Foundation, 368 Visual Basic, 49 file freelance programmer, Eiffel programming appending to, 177–178 hiring, 40 language, 266 binary, 186–190 closing, 176 F-Secure Web site, 367 encapsulation, 259, 265 compression, 57 function. See also specific encryption, choosing end of, finding, 179 JavaScript, storing in function career in, 364–365 separate, 341 C, 150, 151 END command (Liberty looping through, 179 calling, 156–157 opening, 176, 313 creating, 155 BASIC), 149–150, 151 pointer, 187–188 exiting, 158 END TYPE command position in, hash function, 292–297 returning/changing, 188 JavaScript, 345–347 (QBASIC), 236 printing to, 176–177, 187 math-related, 100–101 ending program execution, random-access, 180–185 naming, 155 reading, 178–180, 184–185 passing data to, 156, 85, 149–150, 151 sequential, 175 EOF command (Liberty text file, 175–181 158–160 string-related, 103–110 BASIC), 179 File ➪ Exit (Liberty subprogram, as, equals sign (=) BASIC), 70 150, 151, 155 BASIC relational File ➪ New File (Liberty value calculated by, operator, 112 BASIC), 67 outputting to BASIC variable File ➪ Open (Liberty screen, 157 declaration BASIC), 68 FUNCTION command operator, 83 (Liberty BASIC), File ➪ Save (Liberty 155–157 event handling BASIC), 66 Future Basic (on the CD), HTML, 330–331, 61, 374, 391 332, 333, 336 FileMaker software, 30 JavaScript, 341 Filename text box (Liberty •G• EXE files, 47 BASIC), 66 Game Developer EXIT FOR command First In, First Out linked Web site, 362 (Liberty BASIC), list, 252 Game Programmer Web 137, 303 Flash software, 340 site, 363 EXIT FUNCTION command FLUSH command (Liberty (Liberty BASIC), 158 game programming, EXIT SUB command BASIC), 165 choosing career in, (Liberty BASIC), FOR-NEXT statement 361–363 154–155 EXIT WHILE command C, 137 GameJobs Web site, 363 (Liberty BASIC), Liberty BASIC, 134–137, GeekFinder Web site, 366 131–132 GET command (Liberty EXP function (Liberty 145, 183–184, 229, 303 BASIC), 100 optimizing, 303 BASIC), 184 exponentiation, 96, 98 FOR RANDOM command GIF (Graphical Interchange •F• (Liberty BASIC), 182 Format), 327 form, HTML, 329–337 GNAT Ada, 378 FBI (Federal Bureau of Fortran (FORmula GNOME project, 368 Investigation), 367 GNU C compiler, 377 TRANslator), 22, 24–25 FIELD command (Liberty Free Pascal compiler (on BASIC), 182 the CD), 377, 391
Index 401 GO command (Liberty Liberty BASIC, 69–70 HEAD tag, 313–314 BASIC), 163 PowerPoint Office header, 313–314 heading, 315–316 GOSUB command (Liberty Assistant, 55–56 HR tag, 318 BASIC), 149 HR tag (HTML), 318 HREF attribute, 326, 327 HREF attribute (HTML), HTML tag, 313 GOTO command (Liberty hyperlink, 320–321, BASIC), 142–143, 163, 326, 327 166 HSPACE attribute (Java 325–327 I tag, 318 graph (linked list type), 254 applet), 356–357 IMG tag, 328 graphic .htm files, 311 introduced, 32 .html files, 311 Java applet, inserting, 354 box, 162 HTML (HyperText Markup JavaScript, calling from button image, 201–202 control, 161, 171–172 Language) external file, 341 drawing using Liberty A tag, 325, 326, 327 JavaScript, inserting, 340 ALIGN attribute, 319, 328 LI tag, 321–323 BASIC turtle graphic, ASCII, relation to, 311, 312 line break, 317 162–171 attribute, 319–321 line, horizontal, 318 HTML, 327–329 B tag, 318 line, treatment of window, 161–162 BACKGROUND attribute, 329 Graphical Interchange BGCOLOR attribute, blank, 312 Format (GIF), 327 LINK attribute, 319, GRAPHICBOX command 319–320 (Liberty BASIC), 162 BLOCKQUOTE tag, 317 320–321 greater than sign (>) BASIC BODY tag, 314, 329 list, defining, 321–325 relational operator, 112 BR tag, 317 NAME command, 327, greater than sign, equals browser, opening HTML sign (>=) BASIC 331, 333 relational operator, 112 file in, 313 OL tag, 323 GROUPBOX command browser, rendering by, onAbort event, 330 (Liberty BASIC), onBlur event, 330 213–214 32–33 onChange event, 330 GUI (graphical user button, creating, 329, onClick event, 330, 333 interface), 74 onFocus event, 330, 332 332–333 onMouseOut event, 330 •H• case sensitivity, 327 onMouseOver event, 330 check box, creating, 329 onSelect event, 330 H tag (HTML), 315–316 CHECKED command, P tag, 316–317 hacking, choosing career in, page title, 314 333, 336 radio button, creating, 367 color attributes, 319–321 handheld computer commenting code, 205–207, 335–337 readability, 312 programming, 374, 376 314–315 script tag, 340 hard copy, 76 DD tag, 324 SIZE attribute, 331 hashing, 292–297 DL tag, 324 space, treatment of, 312 HEAD tag (HTML), 313–314 DT tag, 324 SRC attribute, 328, 341 HEIGHT attribute (Java editor, 313 tag, 312, 313 event handling, 330–331, TEXT attribute, 319, 320 applet), 354–355 Help system 332, 333, 336 form, 329–337 authoring software, 48, frame, 337 55–56, 57 graphic, inserting, described, 55 327–329 H tag, 315–316
402 Beginning Programming For Dummies, 3rd Edition HTML (continued) IF THEN ELSEIF International Game text box, creating, Developer’s 207–208, 329, statement, 302 Association (IGDA), 362 331–332, 349 IGDA (International Game text, working with, 312, International PGP Home 315–320 Developer’s Page, 365 TT tag, 318 Association), 362 TYPE command, 331, image. See graphic Internet programming, 332, 335 IMG tag (HTML), 328 specializing in, 365–366 U tag, 318 Inc command (Delphi), 306 UL tag, 321 index, array, 226–227 interpreter user interface, 329–337 inheritance, 259, 265 BASIC, 62–63, 377 VALUE command, 332, input compiler versus, 47, 53 333, 336 binary file, from, 189–190 described, 51 variable, working with, button input, retrieving, JavaScript, 51 333, 336 201, 202, 206, 332–333 Linux, 52, 62 VLINK attribute, 319, check box input, p-code, 51–53 320–321 retrieving, 205, 333–334 speed, 51 introduced, 13–14 hybrid language, 265–266 keyboard, from, 72, 74 •J• HyperCard software, list box input, retrieving, 209–210 Java. See also Java applet 379–380 mouse, from, 72, array, 227 hyperlink 209–210, 331 case sensitivity, 80–81 password, 145, 150 compiler, 351, 352, 353, anchor, 325, 326–327 random access file, from, 356, 377 color, 320–321 184–185 cost, 356 described, 311 text box input, retrieving, downloading, 356 external, 325, 326 208, 331 editor, 353 HTML, defining in, text file, from, 178–180 JavaScript, relation to, user input, prompting for, 339, 352 320–321, 325–327 65, 71, 75, 145, 344–345 learning curve, 352 internal, 325, 326 user input, waiting for, 192 OOP support, 266 Web page, to location in, variable, assigning to, p-code, use of, 52, 351, 352 86–87, 178–180, 192 SELECT CASE 326–327 INPUT command (Liberty statement, 126 HyperText Markup BASIC), 74, 178–180, software development 205, 206 kit, 377 Language. See HTML installation software, 48, stand-alone, 33 56–58 switch statement, 126 •I• INSTR function (Liberty variable, declaring, 89 BASIC), 107–108 VM, 351 I tag (HTML), 318 int command (C/C++), 227 IBIS software, 10, 12 INT function (Liberty Java applet. See also Java IBM Robocode software (on BASIC), 100 ALIGN attribute, 355 integer data type, 304–305 described, 351 the CD), 391 International Animated Film downloading free, 358 IF ELSE statement Society, 363 HEIGHT attribute, 354–355 HSPACE attribute, 356–357 (C/C++), 305 HTML, inserting in, 354 IF THEN statement (Liberty p-code, use of, 351, 352 security, 354 BASIC), 119–120, spacing, 356–357 144–145, 273, 301 IF THEN ELSE statement (Liberty BASIC), 112–113, 120–123
Index 403 variable, working with, text box, creating, 349 interface, 27 354 text, working with, learning curve, 26, 34, VM, 351 342, 347 39–40, 62, 352 VSPACE attribute, 356–357 toolbar, displaying, 349 machine language, 20, 21, WIDTH attribute, 354–355 variable, working with, window control, 354–355, 22, 50–51 342, 345, 347 mixing multiple languages 356–357 VBScript, relation to, 339 .java files, 352 window control, 347–350 in same program, 42, Java Jobs Web site, 366 JavaScript Source Web 306–307 JavaScript OOP support, 24, 255, site, 382 265–266 alert command, 343 JBuilder portability, 21, 23–24, background, 26, 31 compiler (on the CD), proprietary, 378–379 historical, 339 353, 356, 374, 377, 391 readability, 22, 26 browser support, 340, 347 language, 27, 373 scripting language, close command, 349–350 JPEG (Joint Photographic 30–32, 392 comment, treating Experts Group) size, 22 format, 327 sorting functionality, built- command as, 340, 347 in, 283–284 confirm command, •K• source code, downloading, 381–382 343–344 keyboard input, 72, 74 specializing in specific, dialog box, creating, koth.org Web site, 384 34–35, 371–372 Kylix compiler (on the CD), speed, 22, 24, 26, 50, 343–345 306–307 directory button, 27, 39, 377–378, 391 Web programming, specific to, 32–34 creating, 349 •L• Last In, First Out (LIFO) document.write linked list, 252 language. See also specific lb400win.exe file, 63 command, 342, 343 language learning curve, 26, 34, editor, 339 39–40, 62, 352 event handling, 341 assembly language, LEFT function (Liberty file, storing in 20–22, 42 BASIC), 106–107 Lego Mindstorms separate, 341 buying, 380–381 software, 385 function, 345–347 choosing appropriate, legOS Web site, 385 HTML, calling external LEN 34–35, 40, 41, 42, JavaScript file from, 341 265–266 command (Liberty HTML, inserting in, 340 coding shortcut, language- BASIC), 182 interpreter, 51 specific, 305–306 Java, relation to, 339, 352 computer access function (Liberty BASIC), learning curve, 352 functionality, 23, 24, 26 104–105 menu, creating, 349 database programming, object, 341 specific to, 29–30 less than sign (<) BASIC OOP, 341 general-purpose versus relational operator, 112 open command, 348 specialized, 30–31, prompt command, 32, 41 less than sign, equals sign human language, (<=) BASIC relational 344–345 resemblance to, 26 operator, 112 return keyword, 346 hybrid, 265–266 scroll bar, displaying, 349 source code, downloading, 382 square function, 346, 347 status bar, creating, 349
404 Beginning Programming For Dummies, 3rd Edition less than sign, exclamation DIM command, 88–89, interpreter, 62 mark, dash, dash, 226–227 introduced, 25 (<! -- ) HTML comment keystroke command, prefix, 315 DOWN command, 163 downloading, 63 entering, 68–69 less than sign, greater than DUMP command, 76 learning curve, 62 sign (<>) BASIC editor, 64–65, 68–69 LEFT function, 106–107 relational operator, 112 END command, 85, LEN command, 182 LEN function, 104–105 LI tag (HTML), 321–323 149–150, 151 linked list support, 241 Liberty BASIC (on the CD) EOF command, 179 LISTBOX command, EXIT FOR command, ABS function, 100 209–211 ACS function, 100 137, 303 loading, 64 AND operator, 115–116 EXIT FUNCTION LOC command, 188 APPEND command, 178 LOG function, 100, 101 ASN function, 100 command, 158 LOWER function, 104 ATN function, 100 EXIT SUB command, LPRINT command, 76–77 BACKCOLOR command, Macintosh, running on, 61 154–155 main window, 65, 72, 75 169, 170, 172 EXIT WHILE command, MENU command, 195–198 BackgroundColor MID function, 106–107 131–132 navigating code, 68 command, 194 exiting, 70 NOMAINWIN command, 72, BEEP command, 173 EXP function, 100 BMPBUTTON command, FIELD command, 182 75 Filename text box, 66 NORTH command, 163 201–202 FLUSH command, 165 NOT operator, 119 BOX command, 170–171 FOR NEXT statement, OOP support, 255 BOXFILLED command, 170 OPEN command, opening BUTTON command, 134–137, 145, 183–184, 229, 303 file using, 176, 177–178, 200–201 FOR RANDOM 182, 186 BYREF command, 160 OPEN command, opening CALL command, 153 command, 182 window using, 162, case sensitivity, 65, 80–81, FUNCTION command, 192–193 OR operator, 116–117 108, 217 155–157 p-code, use of, 52 CHECKBOX command, GET command, 184 PLACE command, 163, 170 GO command, 163 PLAYWAVE command, 204–205 GOSUB command, 149 173–174 CIRCLE command, GOTO command, 142–143, Please Confirm dialog box, 67, 68 168–170 163, 166 POPUPMENU command, CLOSE command, 176, 182, GRAPHICBOX 198–200 POSXY command, 163 186, 193 command, 162 PRINT command, printing COLOR command, 167–168, GROUPBOX command, to file using, 176–177, 187 170, 171–172 213–214 PRINT command, printing COMBOBOX command, Help system, 69–70 to screen using, IF THEN statement, 72–74, 208 211–213 commenting code, 92–94 119–120, 144–145, compiler, 52, 63 273, 301 CONFIRM command, 192 IF THEN ELSE statement, constant support, 91 112–113, 120–123 COS function, 100 INPUT command, 74, cost, 62 178–180, 205, 206 Debugging window, installing, 63 INSTR function, 107–108 220–221 INT function, 100
Index 405 PRINT command, TURN command, 163 LISP programming retrieving button input turtle graphic feature, language, 23, 41 using, 206 162–171 list, HTML, 321–325 PRINT command, UP command, 163 list, linked retrieving check box UPPER function, 104 input using, 205 UpperLeftX array compared, 241 BASIC support, 241 PRINT command, command, 193 circular, 250 retrieving list box input UpperLeftY creating, 245–247 using, 209–210 data structure, creating command, 193 PRINT command, VAL function, 109–110 using, 249–254 retrieving text box version, 63 deleting data from, 248 input using, 208 WAIT command, 192 described, 241–242 Web site, 63 double, 249–250 PROMPT command, 75, WHILE-WEND statement, FIFO, 252 86–87 graph, 254 130–133, 145 hash function collision, PUT command, 184 WindowHeight RADIOBUTTON command, handling using, 293 command, 193 LIFO, 252 205–207 Windows, running on, memory address, 243, 244 record support, 236 neural network, REDIM command, 233 62–63 REM command, 92–93 WindowWidth use in, 254 RETURN command, nil value, 242 command, 193 node, 242 148, 149 XOR operator, 117–118 node, assigning data to, RIGHT function, 106–107 life cycle of program, 44–46 saving program written in, LIFO (Last In, First Out) 245–247 node, creating, 244, 66–67, 68 linked list, 252 SEEK command, 188 line 245–247 SELECT CASE statement, node, deleting, 248 drawing using Liberty node, place in tree 121–127 BASIC turtle graphic, selecting code, 69 162–168 structure, 253, 254 shareware version, 63 pointer, 242–243, 244, 250 SIN function, 100 HTML code, treatment of queue, 252–253 SIZE command, 166 blank line in, 312 record, 243, 244–245, 247 SORT command, 284–285 RPN, use in, 251–252 SPACE function, 76, 77, 106 HTML page, inserting single, 249, 251 SQR function, 100 horizontal line in, 318 sizing, 241, 242 Start menu, 64 stack, 251–252 STATICTEXT HTML page, inserting line tree structure, 253–254 break in, 317 LISTBOX command (Liberty command, 203 STEP command, 136 wrap, 65 BASIC), 209–211 STR function, 109 LINK attribute (HTML), 319, LOC command (Liberty SUB command, 151 system requirement, 61 320–321 BASIC), 188 TAN function, 100 linked list. See list, linked LOG function (Liberty text wrap, 65 linker, 42 TEXTBOX command, Linux BASIC), 100, 101 logic 207–208 BASIC, running on, 62 TRACE command, 221–222 compiler, 375, 377 error, 215, 219–220 trapclose command, 165 GNOME project, 368 pseudocode, outlining in, TRIM function, 105–106 interpreter, 52, 62 open source movement, 43–44, 45 LOGO, 378 role in, 48, 368 programming for, 62, 375 Web site, 368
406 Beginning Programming For Dummies, 3rd Edition looping marketing your •N• array, in, 228–229 software, 370 commenting loop NAME command (HTML), structure, 130 Massachusetts Institute of 327, 331, 333 counter, 134, 135–137 Technology Computer described, 129–130 Graphics Society, 363 naming endless loop, 130, 132–133 anchor link, 327 exiting loop, 131–132, 137 mathematics. See array, 226 FOR NEXT statement, calculation, BASIC program file, 66 using, 134–137, 145, mathematical button, 201, 335 183–184, 229, 303 function, 155 nesting loop, 304 memory graphic box, 162 optimizing, 303–304 array, needed for, 232, list box, 209 random-access file, 241, 247 subprogram, 148 through, 184 C, considerations when text box, 207, 331 readability of code, 145 using, 24, 243 text file, 176 search operation, list, linked, 243, 244 variable, 80–81, 97, using in, 291 optimizing, 299, 305 217–218 sort operation, using in, pointer memory address, 272–273 243, 244 National Security Agency sound, 173 (NSA), 364 text file, through, 179 menu WHILE-WEND statement, JavaScript, creating NCCA (National Centre using, 130–133, 145, in, 349 for Computer 179–180, 229 pop-up, 198–200 Animation), 363 pull-down, 195–198 LOWER function (Liberty .NET framework BASIC), 104 MENU command (Liberty mixing languages in BASIC), 195–198 same program, using LPRINT command (Liberty when, 42 BASIC), 76–77 method, 258, 262–263 Visual Basic .NET, 227, 373 Metrowerks CodeWarrior Visual C# .NET, 373 •M• Visual C++ .NET, 372, 373 compiler, 353, 362, machine language, 20, 21, 373, 374 Network Associates Web 22, 50–51 MID function (Liberty site, 367 BASIC), 106–107 Macintosh minus sign (–) BASIC sub- neural network, 254 BASIC, programming for, traction operator, 96 newsgroup, 382–383 61, 374, 377 MIT (Massachusetts nil value, 242 compiler, 50, 51–52, Institute of NOMAINWIN command 374–375 Technology) Computer Windows emulation, 61 Graphics Society, 363 (Liberty BASIC), 72, 75 MOD command, 292 North American MacPerl (on the CD), 391 modular programming, main 147–150 Cryptography mouse Archives, 365 command (C/C++), 73 event handling, 331, 333 NORTH command (Liberty window (Liberty BASIC), input from, 72, BASIC), 163 209–210, 331 NOT operator (Liberty 65, 72, 75 Mozilla project, 368 BASIC), 119 maintenance cycle, 45–46 multiplication, 82, 85, Notice dialog box (Liberty 95–96, 98, 347 BASIC), 75, 85
Index 407 NS BASIC (on the CD), exposing data, 261 data type, via choosing 376, 387 hiding data, 261 appropriate, 304–305 inheritance, 259, 265 NSA (National Security isolating data, 259–260 described, 299 Agency), 364 JavaScript, 341 FOR-NEXT statement, 303 language support, 24, 255, goal, 299 number IF THEN ELSEIF array, 226 265–266 comparison, 112–117, method, 258, 262–263 statement, 302 122–125 private data, 261 looping, 303–304 data type, 83, 108–110, property, 258 memory, 299, 305 304–305 protected data, 261 SELECT CASE statement, random, creating, 288, public data, 261, 262 294–295 reliability, improving 302–303 size of program, 299 •O• using, 258 sort operation, 300–301 open command speed, for, 299, 306–308 object OR operator (Liberty class relation to, 262 (JavaScript), 348 creating, 261–262, 263–264 OPEN command (Liberty BASIC), 116–117 described, 258, 265 OrbWorks Web site, 376 file, 42 BASIC) output JavaScript, in, 341 file, opening using, 176, reusing, 258, 260–261 binary file, to, 187 variable, representing 177–178, 182, 186 introduced, 13–14 in, 263 window, opening using, printer, to, 72, 76–77 random-access file, to, object oriented 162, 192–193 programming. See OOP open source movement, 183–184 screen, to, 72–73, 157 OL tag (HTML), 323 48, 368 sound, 72, 172–174 onAbort event (HTML), 330 Open Source Web site, 367 text file, to, 176–178 onBlur event (HTML), 330 operating system, targeting onChange event •P• specific, 37, 38–39 (HTML), 330 operator P tag (HTML), 316–317 onClick event (HTML), Palm OS programming, Boolean, 114–119 330, 333 mathematical, 96–98 374, 375 onFocus event (HTML), postfix, 305 parameter list, 152 precedence, 97–98 parentheses ( ) BASIC 330, 332 prefix, 305 onMouseOut event relational, 112–113, operator delimiters, 99 Pascal (HTML), 330 125–127 onMouseOver event optimization BASIC compared, 25 BEGIN command, 247 (HTML), 330 array, 300 case sensitivity, 80 onSelect event Boolean expression, compiler, 377–378 constant support, 91 (HTML), 330 301–302 TYPE command, 244–245 OOP (object oriented command, via using built- VAR command, 244, 245 password, prompting for, programming) in, 306 class, 261–262 compiler, 307–308 145, 150 described, 257 condition testing, 301–303 patch, 46 encapsulation, 259, 265 data structure, via choos- ing appropriate, 300
408 Beginning Programming For Dummies, 3rd Edition p-code, 51–53, 351, 352 POPUPMENU command programmer, hiring Perl (on the CD), 368, 391 (Liberty BASIC), freelance, 40 PGP (Pretty Good 198–200 Programmer’s Paradise Privacy), 365 portability, 21, 23–24, 26, Web site, 381 picture. See graphic 31, 39 Pixar Animation “Programming in Python” positioning bonus chapter (on the Studios, 363 button, 201, 202 CD), 391 Pizza Server Corewar Web check box, 204 file pointer, 188 Programs ➪ Liberty site, 384 list box, 209 BASIC ➪ Liberty PLACE command (Liberty printing start position, 76 BASIC, 64 text box, 208 BASIC), 163, 170 text, static, 203 Prolog, 41, 378 Planet Source Code Web window, 193–194 prompt command site, 381 postfix operator (JavaScript), 344–345 planning (C/C++), 305 PROMPT command (Liberty importance of, 141–142 POSXY command (Liberty BASIC), 75, 86–87 logic, outlining in BASIC), 163 prototyping, 41, 42, 306 pseudocode, 43–44, 45 pseudocode, 43–44, 45 PowerBasic compiler, public data, 261, 262 prototyping, 41, 42, 306 376–377 PUT command (Liberty top-down approach, 44 user, identifying, 38, 45 PowerBuilder programming BASIC), 184 variable, 80, 88 language, 380 Python programming PLAYWAVE command PowerPoint Office language (on the CD), (Liberty BASIC), Assistant, 55–56 391–392 173–174 Please Confirm dialog box prefix operator (C/C++), 305 •Q• (Liberty BASIC), 67, 68 Pretty Good Privacy plus sign (+) QBASIC, 62–63, 236 BASIC addition (PGP), 365 queue (linked list type), operator, 96 PRINT command (Liberty BASIC concatenation 252–253 operator, 103 BASIC) Quicksort algorithm, JavaScript concatenation button input, retrieving operator, 342 280–283 JavaScript variable using, 206 quotation marks, double prefix, 342 check box input, pMARS software (on the (“ ”) CD), 387 retrieving using, 205 BASIC string delimiters, 72 Pocket C programming file, printing to using, HTML command language, 376 pointer 176–177, 187 delimiters, 332 dangling, 250 list box input, retrieving quotation marks, single (‘ ’) file, 187–188 list, linked, 242–243, using, 209–210 HTML command 244, 250 screen, printing to using, delimiters, 332 memory address, 243, 244 72–73, 208 •R• text box input, retrieving RAD (rapid application using, 208 development), printing 27–29, 373 file, to, 176–177, 187 radio button, creating, printer, to, 72, 76–77 205–207, 335–337 screen, to, 72–73 private data, 261
Index 409 random-access file, 180–185 Robocode software (on the coding shortcut, language- readability of code CD), 391 specific, 305–306 assembly language, 22 robot programming, desktop icon, creating, 64 C/C++, 23, 305 384–385 menu shortcut, HTML, 312 importance of, 146 RPN (Reverse Polish creating, 196 loop structure, 145 Notation), 251 showstopper bug, 216 REALbasic (on the CD), 27, SIN function (Liberty RSA Security Web site, 365 39, 48, 374, 387 Ruby software (on BASIC), 100 record SIZE the CD), 392 adding data to, 237–238 Run ➪ Debug (Liberty HTML attribute, 331 array, using with, 239–240 Liberty BASIC creating, 236–237 BASIC), 220 described, 235 run-time error, 215, 218–219 command, 166 Liberty BASIC sizing •S• support, 236 array, 227, 230–231, linked list record, 243, screen, outputting to, 232–233, 300 72–73, 157 244–245, 247 button, 201 random-access file record, script tag (HTML), 340 check box, 204 scripting language, list box, 209 180, 182, 183, 184 list, linked, 241, 242 retrieving data from, 30–32, 392 text box, 208, 331 scroll bar, displaying using text, static, 203 238–239 window, 193–194, 349, user-defined data type, JavaScript, 349 searching 354–355 as, 236 slash (/) variable, relation to, array, 288–289, 291, 292–296 BASIC division 235–236 operator, 96 recursion, 281 binary, 289–292, 297 Red-Green-Blue (RGB) hashing, using, 292–297 HTML end tag suffix, 312 loop, using in, 291 SmallTalk programming color, 320 sequential, 287–289, 297 REDIM command (Liberty sorting prior to, 287, 289 language, 266 string within another SNOBOL programming BASIC), 233 relational operator, string, 107–108 language, 41 security Softronics Web site, 378 112–113, 125–127 Sophos Web site, 367 reliability, 256, 258 career in, choosing, SORT command (Liberty REM command (Liberty 364–365, 366–367 BASIC), 284–285 BASIC), 92–93 Java applet, 354 sorting RETURN command (Liberty SEEK command (Liberty algorithm, 269, 270, BASIC), 148, 149 BASIC), 188 300–301 return keyword SELECT CASE statement array, using in, (JavaScript), 346 C, 126 272–273, 284 Revolution software (on the Java, 126 Liberty BASIC, 121–127 bubble sort, 273–276, CD), 380, 387 optimizing, 302–303 283, 301 RGB (Red-Green-Blue) selling your software, 370 semicolon (;) BASIC SPACE insertion sort, 270–273, color, 320 283, 300 RIGHT function (Liberty function suffix, 77 shortcut language built-in BASIC), 106–107 functionality, 283–284
410 Beginning Programming For Dummies, 3rd Edition sorting (continued) STR function (Liberty HTML, working with in, looping, using in, 272–273 BASIC), 109 312, 315–320 optimizing, 300–301 Quicksort, 280–283 Strawberry Prolog, 378 JavaScript, working with search operation, prior to, string data type, 81, 83, in, 342, 347 287, 289 shell sort, 276–280, 283 101–103, 108–110. See length of string, returning, speed, 269, 270, 276, 300 also text 104–105 variable, storing data in structured programming, during, 272–273, 275 144–146 positioning, 203 SUB command (Liberty screen, outputting to, sound, outputting, 72, BASIC), 151 172–174 subprogram, 147–150, 72–73, 76 257–258, 259 searching for string within source code subroutine, 150–155, downloading, 381–382 158–160 another string, 107–108 introduced, 19 subtraction, 95–96, 98 sizing, 203 ownership, 40 Sun Microsystems Java space, deleting Web site, 356, 377 SPACE function (Liberty switch statement (C and leading/trailing, BASIC), 77, 106 Java), 126 105–106 Sybase Web site, 380 space, inserting, 106 spaghetti coding, 142 Symantec Web site, 367 static, 203 speed syntax error, 215, 216–218 string data type, 81, 83, system requirements 101–103, 108–110 compiler, 306–308 CD-ROM with this book, trimming string, 105–106 Internet connection, 34 387–388 window, displaying in, 203 language, of, 22, 24, 26, 50, Liberty BASIC, 61 wrap, 65 TEXT attribute (HTML), 306–307 •T• 319, 320 optimizing, 299, 306–308 TEXTBOX command (Liberty sorting, 269, 270, 276, 300 TAN function (Liberty BASIC), 207–208 SQR function (Liberty BASIC), 100 TextPad software (on the CD), 392 BASIC), 100 testing, 45, 46 time needed for square function text programming, 15, 26 toolbar, displaying using (JavaScript), 346, 347 array, string, 209, 226 JavaScript, 349 square root, 100, 101 box, creating, 207–208, top-down design, 44 SRC attribute (HTML), TRACE command (Liberty 329, 331–332, 349 BASIC), 221–222 328, 341 case, converting, 104 trapclose command stack (linked list type), character, removing from (Liberty BASIC), 165 tree 251–252 string, 106–107 binary, 253 Start menu (Liberty check box text, linked list, 253–254 Trend Micro Web site, 367 BASIC), 64 specifying, 204 trial-and-error STATICTEXT command color, 171–172, 319–320 programming, 256 concatenating, 84, trigonometry, 100 (Liberty BASIC), 203 TRIM function (Liberty Staz Software Future Basic, 103, 342 BASIC), 105–106 file, 175–181 61, 374, 391 graphic control, STEP command (Liberty displaying in, 171–172 BASIC), 136 stepping through code, 54, 219–220 StoryCraft software, 27–28
Index 411 True Basic, 61 VAR command (Pascal), value, displaying, 85 TT tag (HTML), 318 244, 245 values, comparing, TURN command (Liberty variable 113–114, 122–125 BASIC), 163 array, relation to, 226 VBA (Visual Basic for turtle graphic feature Boolean expression, using in, 113–114 Applications), 31 (Liberty BASIC), calculation result, VBScript, 51, 339 162–171 assigning to, 84–86, VBXtras Web site, 381 2600 Web site, 367 96–97 virtual machine (VM), 351 TYPE command C/C++, working with, 81, VirtualPC software, 61 HTML, 331, 332, 335 86, 90 virus protection, choosing Pascal, 244–245 counter, 134, 135–137 QBASIC, 236 creating, 81–83, 262 career in, 366–367 data type, assigning, Visual Basic, 27, 42, 49, •U• 81–83, 84–85, 87–90 declaring, 81–83, 84–85, 255, 306 U tag (HTML), 318 87–90, 102–103 Visual Basic for UL tag (HTML), 321 described, 79 underscore (_) BASIC line HTML, working with, 333, Applications (VBA), 31 336 Visual Basic .NET, 227, 373 continuation character, input, assigning to, 86–87, Visual C#, 27 166, 198 178–180, 192 Visual C# .NET, 373 UP command (Liberty Java applet, working with, Visual C++ .NET, 372, 373 BASIC), 163 354 Visual Help Pro software, 57 upgrade cycle, 46 JavaScript, working with, Visual Prolog, 378 UPPER function (Liberty 342, 345, 347 VLINK attribute (HTML), BASIC), 104 linked list pointer UpperLeftX command variable, 244, 245 319, 320–321 (Liberty BASIC), 193 naming, 80–81, 97, VM (virtual machine), 351 UpperLeftY command 217–218 void command (Liberty BASIC), 193 object, representing Usenet newsgroup, 382–383 in, 263 (C/C++), 264 user parameter list, 152 VSPACE attribute (Java group, 382 planning, 80, 88 identifying, 38, 45 record, relation to, applet), 356–357 input, prompting for, 65, 235–236 71, 75, 145, 344–345 reusing, 79 •W• input, waiting for, 192 SELECT CASE statement, interface, 74, 191, 329–337 using in, 122 WAIT command (Liberty sort operation, using in, BASIC), 192 •V• 272–273, 275 subroutine, using in, 152 watchpoint, 54–55 VAL function (Liberty syntax error, 217–218 WAV files, 173–174 BASIC), 109–110 value, assigning, 81, 82, Web Jobs USA Web site, 366 83–87 Web programming, 32–34, VALUE command (HTML), value, default, 83 332, 333, 336 51, 339. See also specific language WHILE-WEND statement (Liberty BASIC), 130–133, 145, 179–180, 229 WIDTH attribute (Java applet), 354–355
412 Beginning Programming For Dummies, 3rd Edition Wiley Product Technical sizing, 193–194, 349, WinRAR software (on the Support, 393 354–355 CD), 392 WinAce software (on the text, displaying in, 203 WinZip software, 370 CD), 392 title bar, 192, 194 WindowHeight command •X• window closing, 192, 193, 347–350 (Liberty BASIC), 193 XOR operator (Liberty color, 194–195 Windows BASIC), 117–118 creating, 162, 192–193 described, 191 CE programming, 376 •Y• graphic, 161–162 desktop icon, creating, 64 Java applet window, Liberty BASIC, running on, YABASIC (Yet Another controlling, 354–355, BASIC) interpreter, 62 356–357 62–63 opening, 162, 192–193, Macintosh, emulation 347–350 positioning, 193–194 software for, 61 WindowWidth command (Liberty BASIC), 193
Wiley Publishing, Inc. End-User License Agreement READ THIS. You should carefully read these terms and conditions before opening the software packet(s) included with this book “Book”. This is a license agreement “Agreement” between you and Wiley Publishing, Inc.,“WPI”. By opening the accompanying software packet(s), you acknowl- edge that you have read and accept the following terms and conditions. If you do not agree and do not want to be bound by such terms and conditions, promptly return the Book and the unopened software packet(s) to the place you obtained them for a full refund. 1. License Grant. WPI grants to you (either an individual or entity) a nonexclusive license to use one copy of the enclosed software program(s) (collectively, the “Software” solely for your own personal or business purposes on a single computer (whether a standard computer or a workstation component of a multi-user network). The Software is in use on a computer when it is loaded into temporary memory (RAM) or installed into permanent memory (hard disk, CD-ROM, or other storage device). WPI reserves all rights not expressly granted herein. 2. Ownership. WPI is the owner of all right, title, and interest, including copyright, in and to the compilation of the Software recorded on the disk(s) or CD-ROM “Software Media”. Copyright to the individual programs recorded on the Software Media is owned by the author or other authorized copyright owner of each program. Ownership of the Software and all proprietary rights relating thereto remain with WPI and its licensers. 3. Restrictions On Use and Transfer. (a) You may only (i) make one copy of the Software for backup or archival purposes, or (ii) transfer the Software to a single hard disk, provided that you keep the original for backup or archival purposes. You may not (i) rent or lease the Software, (ii) copy or reproduce the Software through a LAN or other network system or through any computer subscriber system or bulletin- board system, or (iii) modify, adapt, or create derivative works based on the Software. (b) You may not reverse engineer, decompile, or disassemble the Software. You may transfer the Software and user documentation on a permanent basis, provided that the transferee agrees to accept the terms and conditions of this Agreement and you retain no copies. If the Software is an update or has been updated, any transfer must include the most recent update and all prior versions. 4. Restrictions on Use of Individual Programs. You must follow the individual requirements and restrictions detailed for each individual program in the About the CD-ROM appendix of this Book. These limitations are also contained in the individual license agreements recorded on the Software Media. These limitations may include a requirement that after using the program for a specified period of time, the user must pay a registration fee or discontinue use. By open- ing the Software packet(s), you will be agreeing to abide by the licenses and restrictions for these individual programs that are detailed in the About the CD-ROM appendix and on the Software Media. None of the material on this Software Media or listed in this Book may ever be redistributed, in original or modified form, for commercial purposes.
5. Limited Warranty. (a) WPI warrants that the Software and Software Media are free from defects in materials and workmanship under normal use for a period of sixty (60) days from the date of purchase of this Book. If WPI receives notification within the warranty period of defects in materials or workmanship, WPI will replace the defective Software Media. (b) WPI AND THE AUTHOR OF THE BOOK DISCLAIM ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION IMPLIED WARRANTIES OF MERCHANTABIL- ITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE SOFTWARE, THE PROGRAMS, THE SOURCE CODE CONTAINED THEREIN, AND/OR THE TECHNIQUES DESCRIBED IN THIS BOOK. WPI DOES NOT WARRANT THAT THE FUNCTIONS CON- TAINED IN THE SOFTWARE WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION OF THE SOFTWARE WILL BE ERROR FREE. (c) This limited warranty gives you specific legal rights, and you may have other rights that vary from jurisdiction to jurisdiction. 6. Remedies. (a) WPI’s entire liability and your exclusive remedy for defects in materials and workman- ship shall be limited to replacement of the Software Media, which may be returned to WPI with a copy of your receipt at the following address: Software Media Fulfillment Department, Attn.: Beginning Programming For Dummies, 3rd Edition, Wiley Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, or call 1-800-762-2974. Please allow four to six weeks for delivery. This Limited Warranty is void if failure of the Software Media has resulted from accident, abuse, or misapplication. Any replacement Software Media will be warranted for the remainder of the original warranty period or thirty (30) days, whichever is longer. (b) In no event shall WPI or the author be liable for any damages whatsoever (including without limitation damages for loss of business profits, business interruption, loss of business information, or any other pecuniary loss) arising from the use of or inability to use the Book or the Software, even if WPI has been advised of the possibility of such damages. (c) Because some jurisdictions do not allow the exclusion or limitation of liability for conse- quential or incidental damages, the above limitation or exclusion may not apply to you. 7. U.S. Government Restricted Rights. Use, duplication, or disclosure of the Software for or on behalf of the United States of America, its agencies and/or instrumentalities “U.S. Government” is subject to restrictions as stated in paragraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause of DFARS 252.227-7013, or subparagraphs (c) (1) and (2) of the Commercial Computer Software - Restricted Rights clause at FAR 52.227-19, and in similar clauses in the NASA FAR supplement, as applicable. 8. General. This Agreement constitutes the entire understanding of the parties and revokes and supersedes all prior agreements, oral or written, between them and may not be modified or amended except in a writing signed by both parties hereto that specifically refers to this Agreement. This Agreement shall take precedence over any other documents that may be in conflict herewith. If any one or more provisions contained in this Agreement are held by any court or tribunal to be invalid, illegal, or otherwise unenforceable, each and every other pro- vision shall remain in full force and effect.
Search
Read the Text Version
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433