Basic Basic
Chapter 2 - Variables and INPUT

---
author's note

Sorry it's been so long since I wrote an installment in my book, but I've had to much going on in the past six months! However, I finally sat down and wrote a rather long chapter that explains a LOT of stuff that's really useful. If you need help with specific commands, be sure to write me!

David Zohrob
mallard@qbasic.com
1/11/1996




Welcome! In this chapter, we will cover the following commands:


DIM
FOR...NEXT
STEP
GOTO
IF...THEN
COLOR


As of right now, you know about variable types, PRINT, INPUT, and LET. These are the most basic parts of the BASIC environment. We now have to move into a more complex area.

Numbers are used in every application, no matter what kind of program it is. That's why variables are so important in BASIC. However, when dealing with large amounts of numbers and strings, hundreds of variable names would get too complex and unreadable. This is where ARRAYS come in.

Think of an array as a big box in the computer's memory seperated by dividers into smaller boxes. You can put different things in the small boxes, but organize them into one big box. This is exactly what an array does. An array is an area in the computer's memory seperated into smaller parts for different variables.

To create an array, you use the DIM command:


DIM ArrayName(?)$ (number)


ArrayName(?) is the name of the array, followed by a variable type ($, !, etc.) The number in parentheses is the amount of smaller "boxes" in the array.

To use an array, you assign values to the array using the LET command just as you would a regular variable. However, this time you have to specify which part of the array you are assigning the value to. For example,


DIM Day$(7)

LET Day$(1) = "Sunday"
LET Day$(2) = "Monday"


and so on. To PRINT one of these variables in the array, you would do so just like a regular variable:


PRINT "Today is "; Day$(1); "."


And, accordingly, to get a value from the keyboard into the array, you use the INPUT command:


INPUT "What is Player 1's name"; players$(1)
INPUT "What is Player 2's name"; players$(2)


You can use an array element just as you would use a variable in any statement. Using arrays, you can manage hundreds of names, values, strings, dollar amounts, and much more.

So now you can use arrays. But wouldn't it be tedious, say, if you wanted to print the 100 different values of an array named players$? It obviously would be wasteful to have 100 different print commands. This is where LOOPS come in.

A loop is a set of instructions that are repeated either a certain number of times, until a condition is met, or infinitely. The first loop command (or set or commands, really) we will study is the FOR...NEXT loop. It repeats the commands between the FOR and NEXT commands a certain number of times. Its syntax is simple:


FOR i = 1 TO 100
PRINT i
NEXT i


The program would print the numbers from one to a hundred. Why did we name the variable "i"? It's just a standard - one that has been in place for several decades. You can call it anything you want - "bob," "sam," "linda," or "z." You just have to adjust the code above. You can also change the lower and upper values of i - for example,


FOR i = 6 TO 371
PRINT "The magic number could be:"; i
NEXT i


Another way to change how the FOR...NEXT loop increments is by using the STEP command. If you omit the STEP command (as in a regular FOR...NEXT loop), "i" increases by one every time the commands in the loop are completed. With the use of the STEP command, you can change this to any number you desire. For example:


FOR i = 100 TO 300 STEP 2
PRINT "The magic number might be:"; i
NEXT i


This would print all the even numbers from 100 to 300. You could also make "i" go backwards, as in this example:


FOR i = 300 TO 100 STEP -2
PRINT "The nifty numeral is now:"; i
NEXT i


FOR...NEXT loops can be used for just about anything. In the next chapter, I will talk about two other kinds of loops that keep going until a certain condition is met. But until then, (it won't be six months this time!) fool around with this loop.

The last command I'll talk about in this installment is the GOTO command. If you don't know about it, GOTO is a very simple yet extremely powerful command that lets you split up your program into smaller parts. Here's how you use it. You have to "label" lines that you want to go to using the GOTO command by assigning them numbers or names. For example:


topofprogram: CLS
PRINT "This is an infinite loop"
GOTO topofprogram


Or, this:


1 CLS
PRINT "Hello world!"
GOTO 1


And that's GOTO. Very simple, yet powerful. So how can it be useful? It's not very important to be able to just GOTO in a program without some reason to. GOTO becomes very useful when used in conjunction with the IF...THEN statement, which allows logical progression of your program based on a condition.

IF...THEN does exactly what its commands say. IF this is true, THEN do this. You can use it to create some type of menu, like this: PRINT "My Menu"
PRINT "Press 1 to clear the screen, or 2 to say 'Hello'!"


INPUT "What do you want to do"; choice
IF choice = 1 THEN GOTO clrscr
IF choice = 2 THEN GOTO hello
clrscr: CLS
PRINT "Done."
END
hello: PRINT "Hello, hello, hello!"
END


You can change the GOTO after the THEN.. statement to any valid QBasic command, like LET, PRINT, or INPUT. Or, you can replace the "=" with any mathematical symbol (like greater than(>), less than(<), or not equal(<>)) Here's a couple of examples in one program:


PRINT "Program Example #1"
PRINT "Try to guess the number I am thinking of between 1 and 10."
PRINT "You get 3 chances."
INPUT "First chance"; number
IF number = 3 THEN GOTO gotit
PRINT "Sorry!"
INPUT "Second chance"; number
IF number = 3 THEN GOTO gotit
PRINT "Ooh!"
INPUT "Last chance"; number
IF number = 3 THEN GOTO gotit
PRINT "Sorry! The number was 3!"
END
gotit: PRINT "You win! Good job!"


And that's your basic IF...THEN statement. The last thing we'll deal with in this chapter is a cosmetic command that will let you change the color of the text on the screen. It is the COLOR command, and lets you change the color of the text to one of 16 colors (including black, the background color). You use it in this form:


COLOR 13
PRINT "Magenta!"
COLOR 7
PRINT "Grey!"


The number after the COLOR statement is one of these color codes:


00 - black 08 - dark grey
01 - dark blue 09 - light blue
02 - dark green 10 - light green
03 - dark cyan 11 - light cyan
04 - dark red 12 - light red
05 - dark purple 13 - magenta
06 - orange brown 14 - yellow
07 - grey 15 - bright white


That ends our discussion of the COLOR statement and our chapter. This chapter introduced a lot of new material that will allow you to accomplish a lot more in your QBasic programs. Good luck, and keep bugging Mallard to write a fourth installment in this series!

Exercises:

1. Write a guessing-game program that gives you three chances to guess a pre-determined number between 1 and 10. After each guess, if the guess is incorrect, have the program tell the user whether (s)he is too high or too low. If the user guesses correctly, give them a colorful "winner" message.

2. Create an array that stores all the months of the year, then create an array with all the days of the year. Write a program that displays all the months and days in a colorful form using a FOR...NEXT loop.

3. Fool around with all the commands in this chapter.

4. Have fun with programming and keep checking The QBasic Page for programs, tutorials, and QBasic fun!


Have a wonderful day.
Peace! -David Zohrob


MallardChapterThree - page last edited 2003-08-01 08:24:04 by 81.203.197.39 (home) (edit)
Blast WIKI - by RoboticBoy - edited and tweaked for our evil purposes by Hexadecimal Disaster